kernel - Don't call lwkt_user_yield() in uiomove() unless xfer is big

* Only call lwkt_user_yield() in uiomove() when the xfer is big.
kernel - Add lwkt_yield_quick()

* Add a quick version of lwkt_yield() which does not try to round-robin
  LWKT threads at the same priority.
kernel - Add usched_dfly algorith, set as default for now (8)

* Fix additional edge cases, in particular improving the process pairing
  algorithm to reduce flapping.

* Reorder conditionals in dd->uschedcp assignment to improve the hot path.

* Rewrite the balancing rover.  The rover will now move one process per
  tick from a very heavily loaded cpu queue to a lightly loaded cpu queue.
  Each cpu target is iterated by the rover, one target per tick.

* Reformulate dfly_chooseproc_locked() and friends.  Add a capability to
  choose the 'worst' process (from the end of the queue), which is used
  by the rover.

* When pulling a random thread we require the queue it is taken from to
  be MUCH more heavily loaded than our own queue, which avoids ping-ponging
  processes back and forth when the load is not balanced against the number
  of cpu cores (e.g. 6 servers, 4 cores).
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.
kernel - Add usched_dfly algorith, set as default for now (9)

* Code cleanup, remove bits that shouldn't matter any more.
wmesg - Increase to 8 chars from 7

* Increase top from 7 to 8 and use the WMESGLEN define in ps (previously 6).
Merge branch 'master' into gsocdrm_github
kernel - Include physical cpu in ktrace header

* Record which cpu the system call (etc) is running on
  in the ktrace header.
kdump - Add options to print physical cpu

* -c option adds the physical cpu to the output

* -a option humanform.  This options turns on -c and -R.
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.
nrelease: Remove the obsolete -scmgit-gui option from the build.

Its presence was breaking snapshot building.

It is no longer necessary to prevent gitk from being built along
with git using '-scmgit-gui', because pkgsrc now has a separate
scmgit-gitk package for it.

Since we used to build our GUI distribution without -scmgit-gui
(meaning with gitk), add scmgit-gitk to the GUI build.
Merge branch 'master' into gsocdrm_github
sysctl - Allow integers to use hex

* Allow integers to be specified in hex using a 0x or 0X prefix.
ps - Show cpu# even when process is sleeping

* Show the cpu# the process is scheduled on even when it is sleeping.

* Add a 'Q' flag for 'R'unnable processes, indicating that it is runnable
  but on the user scheduler runq and does not actually have cpu at the
  moment.
kdump - cleanup cpu-stamp formatting

* %2d instead of %d so columns align.
kernel - usched_dfly revamp

* NOTE: This introduces a few regressions at high loads.  They've been
  identified and will be fixed in another iteration.

  We've identified an issue with weight2.  When weight2 successfully
  schedules a process pair on the same cpu it can lead to inefficiencies
  elsewhere in the scheduler related to user-mode and kernel-mode
  priority switching.  In this situation testing pgbench/postgres pairs
  (e.g. -j $ncpus -c $ncpus) we sometimes see some serious regressions on
  multi-socket machines, and other times see remarkably high performance.

* Fix a reported panic.

* Revamp the weights and algorithms signficantly.  Fix algorithmic errors
  and improve the accuracy of weight3.  Add weight4 which basically tells
  the scheduler to try harder to find a free cpu to schedule the lwp on
  when the current cpu is busy doing something else.
kernel - Add vmmeter counter for token collisions

* Add vmmeter counter for token collisions.

* Add token collisions to systat -pv's display.
kernel - usched_dfly revamp (2), reduce token collisions

* Add wakeup_start_delayed() and wakeup_end_delayed().  These functions
  will attempt to delay any wakeup() calls made between them.

  Use the functions in the unix domain socket send code.

* This removes a lot of volatility from monster's 48:48 pgbench tests by
  delaying the wakeup()s related to a unix domain socket write until after
  the pool token has been released.

* Adjust usched_dfly parameters.  In particular, weight2 can be higher now.
Merge branch 'master' into gsocdrm_alter