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