Skip site navigation (1)Skip section navigation (2)
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>