DragonFly commits List (threaded) for 2008-07
DragonFly BSD
DragonFly commits List (threaded) for 2008-07
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

cvs commit: src/sys/platform/pc32/i386 trap.c src/sys/platform/vkernel/i386 trap.c


From: Nicolas Thery <nth@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Sun, 13 Jul 2008 03:28:51 -0700 (PDT)

nth         2008/07/13 03:28:51 PDT

DragonFly src repository

  Modified files:
    sys/platform/pc32/i386 trap.c 
    sys/platform/vkernel/i386 trap.c 
  Log:
  Fix deadlock occuring when booting vkernel from gdb.  One lwp in the vkernel
  sends a signal to another one and is preempted by the signal receiving one in
  userexit().  As the vkernel is traced, the vkernel process is stopped and the
  receiving lwp stops too.  The emitting lwp then resumes and blocks later on a
  condition variable.  The gdb process sleeps on wait(2) which never completes
  because the emitting lwp is not stopped.
  
  To prevent this, stop lwps in userexit(), after lwkt_reschedule, if their
  owning process is stopped.
  
  Reported-by: Simon Schubert <corecode@fs.ei.tum.de>
  
  Revision  Changes    Path
  1.114     +11 -1     src/sys/platform/pc32/i386/trap.c
  1.34      +11 -1     src/sys/platform/vkernel/i386/trap.c


http://www.dragonflybsd.org/cvsweb/src/sys/platform/pc32/i386/trap.c.diff?r1=1.113&r2=1.114&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/platform/vkernel/i386/trap.c.diff?r1=1.33&r2=1.34&f=u



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]