Date: Thu, 20 Mar 2008 17:34:06 +0800 From: David Xu <davidxu@FreeBSD.org> To: Jeff Roberson <jroberson@chesapeake.net> Cc: cvs-src@FreeBSD.org, Jeff Roberson <jeff@FreeBSD.org>, src-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/kern subr_sleepqueue.c Message-ID: <47E22F8E.90703@freebsd.org> In-Reply-To: <20080319225243.G910@desktop> References: <200803190735.m2J7ZEhO000502@repoman.freebsd.org> <47E0C49D.8010807@freebsd.org> <20080318220908.R910@desktop> <20080319225243.G910@desktop>
next in thread | previous in thread | raw e-mail | index | archive | help
Jeff Roberson wrote: > > On Tue, 18 Mar 2008, Jeff Roberson wrote: > >> On Wed, 19 Mar 2008, David Xu wrote: >> >>> Jeff Roberson wrote: >>>> jeff 2008-03-19 07:35:14 UTC >>>> >>>> FreeBSD src repository >>>> >>>> Modified files: >>>> sys/kern subr_sleepqueue.c Log: >>>> - At the top of sleepq_catch_signals() lock the thread and check >>>> TDF_NEEDSIGCHK >>>> before doing the very expensive cursig() and related locking. >>>> NEEDSIGCHK >>>> is updated whenever our signal mask change or when a signal is >>>> delivered and >>>> should be sufficient to avoid the more expensive tests. This >>>> eliminates >>>> another source of PROC_LOCK contention in multithreaded programs. >>>> Revision Changes Path >>>> 1.50 +12 -4 src/sys/kern/subr_sleepqueue.c >>>> >>> >>> This may break process suspension, a more completed patch is here: >>> (though it is outdated): >>> >>> http://people.freebsd.org/~davidxu/patch/PCATCH_optimize.patch >>> >>> In one word, process suspending may be in progress, and the thread >>> should check it. >> >> Thanks Xu. I will add your NEEDSUSPCHECK flag and check that as well. > > http://people.freebsd.org/~jeff/suspchk.diff > > Can you review this diff? I rely on ast() to check and clear the flag > as we do with NEEDSIGCHK. I removed the check from userret() as we > don't need to do it every time now. > > Thanks, > Jeff > It looks okay to me, the code looks more clean than KSE time. Regards, David Xu
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?47E22F8E.90703>