kernel - Improve regressions in usched_dfly (1)
authorMatthew Dillon <dillon@apollo.backplane.com>
Thu, 20 Sep 2012 07:31:43 +0000 (00:31 -0700)
committerMatthew Dillon <dillon@apollo.backplane.com>
Thu, 20 Sep 2012 07:31:43 +0000 (00:31 -0700)
commit2b07d9aafafed2c45a950d060e1f3f659d6b784b
treed3946f7cd84e19412d6de397dc546b6debb16a0b
parent9235da16e932b49b97c0dfdda35bf04cfc931f96
kernel - Improve regressions in usched_dfly (1)

* The new scheduler is MP locked at a very fine-grain.  The old scheduler
  had a global spinlock which effectively serialized competing cores during
  exit/wait sequences.

  With the new scheduler this serialization is gone and resulted in a
  vfork performance regression due to a fallback tsleep loop in the
  reaper.

* This fixes the problem with an explicit signal bit for tsleep/wakeup.
  The sequence is avoided if the reaper determines the thread has
  already completed its exit.
sys/kern/kern_exit.c
sys/kern/lwkt_thread.c
sys/sys/thread.h