From owner-cvs-src@FreeBSD.ORG Thu Mar 20 08:53:12 2008 Return-Path: Delivered-To: cvs-src@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6C3391065673; Thu, 20 Mar 2008 08:53:12 +0000 (UTC) (envelope-from jroberson@chesapeake.net) Received: from webaccess-cl.virtdom.com (webaccess-cl.virtdom.com [216.240.101.25]) by mx1.freebsd.org (Postfix) with ESMTP id 3A6978FC2B; Thu, 20 Mar 2008 08:53:12 +0000 (UTC) (envelope-from jroberson@chesapeake.net) Received: from [192.168.1.107] (cpe-24-94-75-93.hawaii.res.rr.com [24.94.75.93]) (authenticated bits=0) by webaccess-cl.virtdom.com (8.13.6/8.13.6) with ESMTP id m2K8r6qX065246; Thu, 20 Mar 2008 04:53:07 -0400 (EDT) (envelope-from jroberson@chesapeake.net) Date: Wed, 19 Mar 2008 22:54:04 -1000 (HST) From: Jeff Roberson X-X-Sender: jroberson@desktop To: David Xu In-Reply-To: <20080318220908.R910@desktop> Message-ID: <20080319225243.G910@desktop> References: <200803190735.m2J7ZEhO000502@repoman.freebsd.org> <47E0C49D.8010807@freebsd.org> <20080318220908.R910@desktop> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: cvs-src@FreeBSD.org, Jeff Roberson , src-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/kern subr_sleepqueue.c X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Mar 2008 08:53:12 -0000 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 >> >> >