Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 19 Mar 2008 15:45:33 +0800
From:      David Xu <davidxu@FreeBSD.org>
To:        Jeff Roberson <jeff@FreeBSD.org>
Cc:        cvs-src@FreeBSD.org, src-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/sys/kern subr_sleepqueue.c
Message-ID:  <47E0C49D.8010807@freebsd.org>
In-Reply-To: <200803190735.m2J7ZEhO000502@repoman.freebsd.org>
References:  <200803190735.m2J7ZEhO000502@repoman.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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.

Regards,
David Xu





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?47E0C49D.8010807>