Noticable Delays Since Beta 3 (possible cause)

Sam Lawrance boris at
Fri Oct 8 21:13:11 PDT 2004

Apparently this was already known and identified (to an extent). Here's
the code and commit log:

        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.

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.

More information about the freebsd-current mailing list