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]"

Reply via email to