kernel - Remove cache ping-pong on common scheduler operations
commitdd8be70aa00232616d8f186ad11e78fe9b1ca0fc
authorMatthew Dillon <dillon@apollo.backplane.com>
Mon, 23 Apr 2018 07:27:21 +0000 (23 00:27 -0700)
committerMatthew Dillon <dillon@apollo.backplane.com>
Mon, 23 Apr 2018 07:27:21 +0000 (23 00:27 -0700)
tree9595db8d6ec1624681d99102d4bd81532a7084d2
parent1725c9954ec0d2309af77c511ce91afe272b395c
kernel - Remove cache ping-pong on common scheduler operations

* Reflect dfly_curprocmask and dfly_rdyprocmask bits in the
  scheduler's pcpu structures.  This allows us to reduce global
  atomic ops that are virtually guaranteed to cause cache ping
  ponging.

* sched_yield and token-based yield operations no longer clear
  the bit in the curprocmask, since they are just yielding
  (XXX needs work, a later blocking op then might not pull a
  new process from another cpu).
sys/kern/lwkt_thread.c
sys/kern/lwkt_token.c
sys/kern/usched_dfly.c