kernel - Improve regressions in usched_dfly (2)
authorMatthew Dillon <dillon@apollo.backplane.com>
Thu, 20 Sep 2012 18:35:21 +0000 (11:35 -0700)
committerMatthew Dillon <dillon@apollo.backplane.com>
Thu, 20 Sep 2012 18:35:21 +0000 (11:35 -0700)
commit76568a7ceba9ae2af1d1a9b0f75699b1e1ef5e4b
treef2f9351a9bb32fd0fe6ac331f516751d49f3c49f
parent91a87936fea695d5a2e506c4fa46c4abeebc10de
kernel - Improve regressions in usched_dfly (2)

* Allow various fork() behaviors to be supported via
  kern.usched_dfly.features.

* Set the default to place the newly forked process on
  a random cpu instead of the current cpu.

  The bsd4 scheduler had a global queue and could just signal
  a random helper to pick up the thread.  The dfly scheduler
  has per-cpu queues and must actually enqueue the thread to
  another cpu.

  The bsd4 scheduler is still slightly superior here because
  if the parent running on the current cpu immediately waits
  for the child, the child is able to run on the current cpu.
  However, randomization works quite well and this removes
  nearly all of the make -j N regression.
sys/kern/usched_dfly.c