git: kernel - Fix excessive ipiq recursion (4)

Matthew Dillon dillon at crater.dragonflybsd.org
Fri Jul 22 22:00:42 PDT 2016


commit 7fb451cb3c27563ba7a952e347f9a12cc68a9a9c
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/7fb451cb3c27563ba7a952e347f9a12cc68a9a9c


-- 
DragonFly BSD source repository


More information about the Commits mailing list