commit d5b1e1b2262237814815a265277a415bc2dedf43
Author: Matthew Dillon <[email protected]>
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

Reply via email to