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
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/cvs-all
To unsubscribe, send any mail to "[EMAIL PROTECTED]"