git: kernel - Handle spinlock indefinite wait edge case

Matthew Dillon dillon at crater.dragonflybsd.org
Wed Apr 18 21:14:17 PDT 2018


commit 97cfa33012a9985f27056b9b9fe3c2040ca4bb67
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Wed Apr 18 11:38:30 2018 -0700

    kernel - Handle spinlock indefinite wait edge case
    
    * The spinlock exclusive priority mechanism can cause an indefinite
      wait situation for shared locks to arise when a large number of cpu
      cores are cycling the same spinlock both shared and exclusive.
    
      This situation just won't happen for any real workload, but it
      can come up in benchmarks.
    
    * Introduce a quick hack to ensure that this situation does not lead
      to a panic.  The exclusive priority mechanism is ignored once a
      shared spinlock has spun for greater than one second.

Summary of changes:
 sys/kern/kern_spinlock.c | 28 ++++++++++++++++++++++------
 1 file changed, 22 insertions(+), 6 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/97cfa33012a9985f27056b9b9fe3c2040ca4bb67


-- 
DragonFly BSD source repository



More information about the Commits mailing list