From owner-freebsd-current@FreeBSD.ORG Sat Oct 9 04:13:11 2004 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 01DD316A4CF for ; Sat, 9 Oct 2004 04:13:11 +0000 (GMT) Received: from bloodwood.hunterlink.net.au (smtp-local.hunterlink.net.au [203.12.144.17]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2307843D2D for ; Sat, 9 Oct 2004 04:13:09 +0000 (GMT) (envelope-from boris@brooknet.com.au) Received: from ppp2164.dyn.pacific.net.au (ppp2164.dyn.pacific.net.au [61.8.33.100])i994ADql010126 for ; Sat, 9 Oct 2004 14:10:14 +1000 From: Sam Lawrance To: freebsd-current@freebsd.org In-Reply-To: <200410082346.16570.marc.ramirez@bluecirclesoft.com> References: <4164BFA4.80105@unisa.edu.au> <41657D63.1050605@FreeBSD.org> <1097290576.836.20.camel@dirk.no.domain> <200410082346.16570.marc.ramirez@bluecirclesoft.com> Content-Type: text/plain Date: Sat, 09 Oct 2004 14:15:23 +1000 Message-Id: <1097295323.836.28.camel@dirk.no.domain> Mime-Version: 1.0 X-Mailer: Evolution 2.0.1FreeBSD GNOME Team Port Content-Transfer-Encoding: 7bit Subject: Re: Noticable Delays Since Beta 3 (possible cause) X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 09 Oct 2004 04:13:11 -0000 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.