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