From owner-freebsd-stable@FreeBSD.ORG Mon Nov 14 21:59:22 2011 Return-Path: Delivered-To: freebsd-stable@freebsd.org Received: from mx2.freebsd.org (mx2.freebsd.org [IPv6:2001:4f8:fff6::35]) by hub.freebsd.org (Postfix) with ESMTP id 209A2106566C; Mon, 14 Nov 2011 21:59:22 +0000 (UTC) (envelope-from dougb@FreeBSD.org) Received: from 172-17-198-245.globalsuite.net (hub.freebsd.org [IPv6:2001:4f8:fff6::36]) by mx2.freebsd.org (Postfix) with ESMTP id A0266151080; Mon, 14 Nov 2011 21:59:04 +0000 (UTC) Message-ID: <4EC18F28.20307@FreeBSD.org> Date: Mon, 14 Nov 2011 13:59:04 -0800 From: Doug Barton Organization: http://SupersetSolutions.com/ User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:8.0) Gecko/20111110 Thunderbird/8.0 MIME-Version: 1.0 To: John Baldwin References: <4EC17AAF.9050807@FreeBSD.org> <201111141556.13295.jhb@freebsd.org> In-Reply-To: <201111141556.13295.jhb@freebsd.org> X-Enigmail-Version: undefined OpenPGP: id=1A1ABC84 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: Konstantin Belousov , Daniil Cherednik , freebsd-stable@freebsd.org Subject: Re: 8.2 + apache == a LOT of sigprocmask X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Nov 2011 21:59:22 -0000 On 11/14/2011 12:56, John Baldwin wrote: > On Monday, November 14, 2011 3:31:43 pm Doug Barton wrote: >> Trying to track down a load problem we're seeing on 8.2-RELEASE-p4 i386 >> in a busy web hosting environment I came across the following post: >> >> http://lists.freebsd.org/pipermail/freebsd-questions/2011- > October/234520.html >> >> That basically describes what we're seeing as well, including the >> "doesn't happen on Linux" part. >> >> Does anyone have any ideas about this? >> >> With incredibly similar stuff running on 7.x we didn't see this problem, >> so it seems to be something new in 8. > > I suspect it has to do with some of the changes to rtld such that it now > always blocks signals while resolving symbols (or something along those > lines IIRC). It makes throwing exceptions slow as well. The calls to sigprocmask() in rtld seem to be doing what you suggest here, but they involve setting and restoring the mask. In my followup post I pasted what we're seeing, which is different, and much more voluminous. For example, 13,500 calls in 30 seconds from a single apache worker process. Although this does seem to explain why our test cases have more calls when compiled with C++ than they do when compiled with C. :) Thanks for the response in any case. Doug -- "We could put the whole Internet into a book." "Too practical." Breadth of IT experience, and depth of knowledge in the DNS. Yours for the right price. :) http://SupersetSolutions.com/