cvs commit: src/sys/kern subr_sleepqueue.c
Jeff Roberson
jroberson at chesapeake.net
Thu Mar 20 01:53:12 PDT 2008
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
>
>>
>> Regards,
>> David Xu
>>
>>
>
More information about the cvs-src
mailing list