e69dff491d
instead of a PCPU field for curthread. This averts a race on SMP systems with a high interrupt rate where the thread looking up the value of curthread could be preempted and migrated between obtaining the PCPU pointer and reading the value of pc_curthread, resulting in curthread being observed to be the current thread on the thread's original CPU. This played merry havoc with the system, in particular with mutexes. Many thanks to jhb for helping me work this one out. Note that Book-E is in principle susceptible to the same problem, but has not been modified yet due to lack of Book-E hardware. MFC after: 2 weeks |
||
---|---|---|
.. | ||
clock.c | ||
copyinout.c | ||
interrupt.c | ||
locore32.S | ||
locore64.S | ||
locore.S | ||
machdep.c | ||
mmu_oea64.c | ||
mmu_oea64.h | ||
mmu_oea.c | ||
moea64_if.m | ||
moea64_native.c | ||
mp_cpudep.c | ||
nexus.c | ||
slb.c | ||
swtch32.S | ||
swtch64.S | ||
trap_subr32.S | ||
trap_subr64.S | ||
trap.c | ||
uma_machdep.c | ||
vm_machdep.c |