git: kernel - Remove cache ping-pong on common scheduler operations
Matthew Dillon
dillon at crater.dragonflybsd.org
Mon Apr 23 00:33:24 PDT 2018
commit dd8be70aa00232616d8f186ad11e78fe9b1ca0fc
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date: Mon Apr 23 00:27:21 2018 -0700
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).
Summary of changes:
sys/kern/lwkt_thread.c | 4 ++-
sys/kern/lwkt_token.c | 4 ++-
sys/kern/usched_dfly.c | 77 +++++++++++++++++++++++++++++++++++++++++---------
3 files changed, 69 insertions(+), 16 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/dd8be70aa00232616d8f186ad11e78fe9b1ca0fc
--
DragonFly BSD source repository
More information about the Commits
mailing list