From owner-freebsd-smp Thu Nov 16 13:26:32 2000 Delivered-To: freebsd-smp@freebsd.org Received: from pike.osd.bsdi.com (pike.osd.bsdi.com [204.216.28.222]) by hub.freebsd.org (Postfix) with ESMTP id 1472837B4D7 for ; Thu, 16 Nov 2000 13:26:30 -0800 (PST) Received: from laptop.baldwin.cx (john@jhb-laptop.osd.bsdi.com [204.216.28.241]) by pike.osd.bsdi.com (8.11.0/8.9.3) with ESMTP id eAGLQJB67356; Thu, 16 Nov 2000 13:26:19 -0800 (PST) (envelope-from jhb@FreeBSD.org) Message-ID: X-Mailer: XFMail 1.4.0 on FreeBSD X-Priority: 3 (Normal) Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 8bit MIME-Version: 1.0 In-Reply-To: <200011162120.NAA57277@freefall.freebsd.org> Date: Thu, 16 Nov 2000 13:26:57 -0800 (PST) From: John Baldwin To: smp@FreeBSD.org, cp@bsdi.com Subject: RE: cvs commit: src/sys/kern kern_timeout.c Sender: owner-freebsd-smp@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org On 16-Nov-00 John Baldwin wrote: > jhb 2000/11/16 13:20:53 PST > > Modified files: > sys/kern kern_timeout.c > Log: > The recent changes to msleep() and mawait() resulted in timeout() and > untimeout() not being called with Giant in those functions. For now, > use the sched_lock to protect the callout wheel in softclock() and in > the various timeout and callout functions. > > Noticed by: tegge Big Kudos to Tor for finding this! Using the sched_lock here is more or less a bandaid for now. A possible long-term solution might be to use a dedicated sleep lock to protect the callout wheel. However, if you do this, then you can't be holding a spinlock when you call into timeout and friends. If we add in a lock to protect teh sleep queues, then we might be able to push sched_lock further down into msleep() and mawait(), so that we don't need sched_lock until after we call timeout and before we call untimeout, but I'm still thinking about this. Does anyone else have any ideas? One thing I am worried about is whether the overhead of the extra locks involved (sleepqueue locks, probably process locks (but we will need those anyway), and a callout wheel lock) will end up negating the performance gain from not having sched_lock protect so many different things. -- John Baldwin -- http://www.FreeBSD.org/~jhb/ PGP Key: http://www.baldwin.cx/~john/pgpkey.asc "Power Users Use the Power to Serve!" - http://www.FreeBSD.org/ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-smp" in the body of the message