Apparently this was already known and identified (to an extent). Here's the code and commit log: src/sys/kern_synch.c:390 if ((p->p_sflag & PS_INMEM) == 0) { if ((p->p_sflag & PS_SWAPPINGIN) == 0) { p->p_sflag |= PS_SWAPINREQ; #ifndef SMP /* * XXX: Disabled on SMP due to a LOR between * sched_lock and the sleepqueue chain locks. */ wakeup(&proc0); #endif } Revision 1.256 / (download) - annotate - [select for diffs], Wed Aug 4 20:24:40 2004 UTC (2 months ago) by jhb Branch: MAIN Changes since 1.255: +6 -0 lines Diff to previous 1.255 (colored) Workaround a possible deadlock on SMP due to a spin lock LOR by disabling the immediate awakening of proc0 (scheduler kproc, controls swapping processes in and out). The scheduler process periodically awakens already, so this will not result in processes not being swapped in, there will just be more latency in between a thread being made runnable and the scheduler waking up to swap the affected process back in.Received on Sat Oct 09 2004 - 02:13:11 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:16 UTC