cvs commit: src/sys/i386/i386 trap.c src/sys/kern lwkt_thread.c src/sys/sys globaldata.h

Matthew Dillon dillon at crater.dragonflybsd.org
Tue Jul 19 12:26:33 PDT 2005


dillon      2005/07/19 12:25:45 PDT

DragonFly src repository

  Modified files:
    sys/i386/i386        trap.c 
    sys/kern             lwkt_thread.c 
    sys/sys              globaldata.h 
  Log:
  If a fatal kernel trap occurs from an IPI or FAST interrupt on a cpu not
  holding the MP lock, the trap code will panic a second time when get_mplock()
  attempts to block due to an assertion in lwkt_switch().  Add a new globaldata
  field, gd_trap_nesting_level, that allows us to bypass this panic.
  
  If lwkt_switch() is called with a non-zero gd_intr_nesting_level or non-zero
  gd_trap_nesting_level, the two variables must be saved and then zero'd
  across the switch, and restored on resume.  Otherwise a normal switch in
  another thread will result in another panic.  This case only occurs during
  fatal traps, panics, or when operating from DDB.
  
  From-kernel-dumps-provided-by: David Rhodus <sdrhodus at xxxxxxxxx>
  
  Revision  Changes    Path
  1.60      +11 -1     src/sys/i386/i386/trap.c
  1.78      +24 -4     src/sys/kern/lwkt_thread.c
  1.37      +1 -1      src/sys/sys/globaldata.h


http://www.dragonflybsd.org/cvsweb/src/sys/i386/i386/trap.c.diff?r1=1.59&r2=1.60&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/lwkt_thread.c.diff?r1=1.77&r2=1.78&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/globaldata.h.diff?r1=1.36&r2=1.37&f=u





More information about the Commits mailing list