git: DragonFly_RELEASE_4_6 kernel - Fix excessive ipiq recursion (4)

Matthew Dillon dillon at crater.dragonflybsd.org
Fri Jul 22 22:04:41 PDT 2016


commit d5b1e1b2262237814815a265277a415bc2dedf43
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Fri Jul 22 21:58:59 2016 -0700

    kernel - Fix excessive ipiq recursion (4)
    
    * Possibly the smoking gun.  There was a case where the lwkt_switch()
      code could wind up looping excessively calling lwkt_getalltokens()
      if td_contended went negative, and td_contended on interrupt threads
      could in-fact go negative.
    
      This stopped IPIs in their tracks.
    
    * Fix by making td_contended unsigned, causing the comparions to work
      in all situations.  And add a missing assignment to 0 for the
      preempted thread case.

Summary of changes:
 sys/kern/lwkt_thread.c | 11 ++++++-----
 sys/sys/thread.h       |  2 +-
 2 files changed, 7 insertions(+), 6 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/d5b1e1b2262237814815a265277a415bc2dedf43


-- 
DragonFly BSD source repository



More information about the Commits mailing list