DragonFly-2.3.0.527.g33bb5 master sys/platform/pc32/i386 db_interface.c sys/platform/pc64/amd64 db_interface.c sys/platform/vkernel/i386 db_interface.c
    Matthew Dillon 
    dillon at crater.dragonflybsd.org
       
    Sat Mar 28 22:15:00 PDT 2009
    
    
  
commit 33bb509e5814f0892d0a83ad8dcbfb850e8551eb
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Sat Mar 28 22:07:42 2009 -0700
    Fix an IPI messaging lockup which can occur while in DDB.
    
    When entering DDB on a SMP system we must also enter a critical section
    prior to stopping the other cpus.  If we do not interrupts may generate
    calls to sched_ithd() instead of just flagging the interrupt in ipending
    and returning.  This, in turn, may attempt to send an IPI to another
    cpu.  These IPIs will not be processed while the target cpu is stopped.
    If the IPI FIFO then fills up the lwkt_send_ipiq*() function will hard-loop
    and the system will lock-up.
    
    Resizing the window a vkernel is running in while the vkernel is in DDB
    exercises the bug.  The bug is more easily demonstrated simply by sending
    a stream of SIGWINCH signals via a while(1)/kill loop to the vkernel.
    
    The bug is potentially an issue on all architectures so fix all
    architectures.
    
    Reported-by: Joe Talbott <josepht at cstone.net>
    With-help-from: YONETANI Tomokazu <qhwt+dfly at les.ath.cx>
Summary of changes:
 sys/platform/pc32/i386/db_interface.c    |    5 +++++
 sys/platform/pc64/amd64/db_interface.c   |    5 +++++
 sys/platform/vkernel/i386/db_interface.c |    5 +++++
 3 files changed, 15 insertions(+), 0 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/33bb509e5814f0892d0a83ad8dcbfb850e8551eb
-- 
DragonFly BSD source repository
    
    
More information about the Commits
mailing list