Date: Thu, 31 May 2007 11:11:31 +1000 (EST) From: Bruce Evans <brde@optusnet.com.au> To: Julian Elischer <julian@elischer.org> Cc: freebsd-arch@freebsd.org Subject: Re: Updated rusage patch Message-ID: <20070531110004.H1221@besplex.bde.org> In-Reply-To: <465E189C.4000609@elischer.org> References: <20070529105856.L661@10.0.0.1> <200705291456.38515.jhb@freebsd.org> <20070529121653.P661@10.0.0.1> <20070530065423.H93410@delplex.bde.org> <20070529141342.D661@10.0.0.1> <20070530125553.G12128@besplex.bde.org> <20070529201255.X661@10.0.0.1> <20070529220936.W661@10.0.0.1> <20070530201618.T13220@besplex.bde.org> <20070530115752.F661@10.0.0.1> <20070531091419.S826@besplex.bde.org> <465E189C.4000609@elischer.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 30 May 2007, Julian Elischer wrote: > Bruce Evans wrote: > >> - RELENG_4: statclock() uses splhigh() but not interrupt atomicity. >> exit1() uses no locking and thus races with statclock(). >> above: statclock() still uses sched_lock but not interrupt atomicity. > > > sched_lock blocks interrupts > >> exit1() uses no locking and thus races with statclock(). ^^^^^^^^^^^^^^^^^^^^^^^ exit1() uses no locking and is thus unaffected by sched_lock. More precisely, it uses mounds of locking, but at the point that it races with statclock() it holds only PROC_LOCK(p). It acquires sched_lock for the first time much later. Bruce
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070531110004.H1221>