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

cvs commit: src/sys/kern lwkt_thread.c src/sys/platform/pc32/i386 machdep.c src/sys/platform/vkernel/i386 cpu_regs.c src/sys/sys systm.h


From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Sun, 1 Jul 2007 18:37:11 -0700 (PDT)

dillon      2007/07/01 18:37:11 PDT

DragonFly src repository

  Modified files:
    sys/kern             lwkt_thread.c 
    sys/platform/pc32/i386 machdep.c 
    sys/platform/vkernel/i386 cpu_regs.c 
    sys/sys              systm.h 
  Log:
  Implement an architecture function cpu_mplock_contested() which is
  called by the LWKT thread scheduler when the only thread(s) it can
  schedule need the MP lock and the scheduler was unable to acquire the
  MP lock.
  
  On real systems this function just executes the cpu 'pause' instruction,
  and on virtual systems this functions sleeps for a millisecond.
  
  Use umtx_sleep() instead of sigpause() in the virtual kernel's idle loop
  to interlock threads scheduled via a signal with the idle loop sleep.
  This fixes a race condition that caused the vkernel to stop scheduling
  (but there may be more issues, stay tuned).
  
  Revision  Changes    Path
  1.109     +5 -2      src/sys/kern/lwkt_thread.c
  1.126     +11 -0     src/sys/platform/pc32/i386/machdep.c
  1.19      +22 -9     src/sys/platform/vkernel/i386/cpu_regs.c
  1.72      +1 -0      src/sys/sys/systm.h


http://www.dragonflybsd.org/cvsweb/src/sys/kern/lwkt_thread.c.diff?r1=1.108&r2=1.109&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/platform/pc32/i386/machdep.c.diff?r1=1.125&r2=1.126&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/platform/vkernel/i386/cpu_regs.c.diff?r1=1.18&r2=1.19&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/systm.h.diff?r1=1.71&r2=1.72&f=u



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