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

cvs commit: src/sys/dev/acpica5 src/sys/i386/i386 src/sys/i386/include

From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Sat, 20 Nov 2004 12:50:36 -0800 (PST)

dillon      2004/11/20 12:50:36 PST

DragonFly src repository

  Modified files:
    sys/dev/acpica5      acpi_cpu.c 
    sys/i386/i386        machdep.c mplock.s 
    sys/i386/include     lock.h 
  Fix a number of SMP issues.
  * Add required pause instructions in code paths that skip running "HLT".  This
    occurs when e.g. cpu #1 is running code with the BGL while cpu #2's only
    runnable thread requires the BGL.  cpu #2's LWKT scheduler spins in that
    case.  Similar situations can occur when the only runnable threads on a
    cpu are waiting for a token.
  * Add required pause instructions to spin loops.  DragonFly has very few spin
    locks (e.g. things like com_lock()) but its a good idea anyway to avoid
    known livelock issues on Intel cpus.
  * Fix a pending interrupt / HLT race.  We were not atomically retiring
    pending interrupts prior to potentially HLTing the cpu.  This could
    result in an SMP machine's network locking up until a key is hit on
    the console, then magically resuming.
  Lockups-reported-by: Peter Avalos <pavalos@xxxxxxxxxxxx>
  Revision  Changes    Path
  1.7       +12 -1     src/sys/dev/acpica5/acpi_cpu.c
  1.68      +10 -1     src/sys/i386/i386/machdep.c
  1.15      +1 -0      src/sys/i386/i386/mplock.s
  1.10      +1 -0      src/sys/i386/include/lock.h


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