Return-Path: X-Original-To: apmail-httpd-dev-archive@www.apache.org Delivered-To: apmail-httpd-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id B034E94E7 for ; Fri, 18 Nov 2011 21:38:47 +0000 (UTC) Received: (qmail 40690 invoked by uid 500); 18 Nov 2011 21:38:46 -0000 Delivered-To: apmail-httpd-dev-archive@httpd.apache.org Received: (qmail 40610 invoked by uid 500); 18 Nov 2011 21:38:46 -0000 Mailing-List: contact dev-help@httpd.apache.org; run by ezmlm Precedence: bulk Reply-To: dev@httpd.apache.org list-help: list-unsubscribe: List-Post: List-Id: Delivered-To: mailing list dev@httpd.apache.org Received: (qmail 40602 invoked by uid 99); 18 Nov 2011 21:38:46 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 18 Nov 2011 21:38:46 +0000 X-ASF-Spam-Status: No, hits=-0.7 required=5.0 tests=FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of trawick@gmail.com designates 209.85.214.45 as permitted sender) Received: from [209.85.214.45] (HELO mail-bw0-f45.google.com) (209.85.214.45) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 18 Nov 2011 21:38:40 +0000 Received: by bkbzu5 with SMTP id zu5so5433956bkb.18 for ; Fri, 18 Nov 2011 13:38:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; bh=129omuxSBXhI9WPZ27c8RGnIJgt9wXBguRmLAGubcuw=; b=KPOBQoEVhqrFzPmztT4xwVKKo70Q2vdWyNisw1jp0ShSLLitxd0v3CtutzVtueHieJ sxgJtocSFsFyNaU7WTAFGgjjTX9eSj7/1DplCIK1iE+yYGID6gXSK94Yw10goiPhl7KV jw5V8gRvILxEWU/DFD68i8RlLUJ9Q6w+WRQaM= MIME-Version: 1.0 Received: by 10.204.38.16 with SMTP id z16mr5141728bkd.66.1321652298963; Fri, 18 Nov 2011 13:38:18 -0800 (PST) Received: by 10.204.120.3 with HTTP; Fri, 18 Nov 2011 13:38:18 -0800 (PST) In-Reply-To: References: <20111115155104.39CA1238897F@eris.apache.org> Date: Fri, 18 Nov 2011 16:38:18 -0500 Message-ID: Subject: Re: svn commit: r1202257 - in /httpd/httpd/trunk/server/mpm/event: config3.m4 equeue.c equeue.h event.c From: Jeff Trawick To: dev@httpd.apache.org Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable On Fri, Nov 18, 2011 at 4:06 PM, Greg Ames wrote: > > > On Fri, Nov 18, 2011 at 3:48 PM, Jeff Trawick wrote: >> >> Try this: >> >> Index: server/mpm/event/event.c >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> --- server/mpm/event/event.c =A0 =A0(revision 1203816) >> +++ server/mpm/event/event.c =A0 =A0(working copy) >> @@ -1483,9 +1483,9 @@ >> =A0 =A0 =A0 =A0 rc =3D apr_pollset_poll(event_pollset, timeout_interval,= &num, >> &out_pfd); >> =A0 =A0 =A0 =A0 if (rc !=3D APR_SUCCESS) { >> =A0 =A0 =A0 =A0 =A0 =A0 if (APR_STATUS_IS_EINTR(rc)) { >> - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0continue; >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0/* continue; */ >> =A0 =A0 =A0 =A0 =A0 =A0 } >> - =A0 =A0 =A0 =A0 =A0 =A0if (!APR_STATUS_IS_TIMEUP(rc)) { >> + =A0 =A0 =A0 =A0 =A0 =A0else if (!APR_STATUS_IS_TIMEUP(rc)) { >> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 ap_log_error(APLOG_MARK, APLOG_CRIT, rc,= ap_server_conf, >> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0"apr_pollset_= poll failed. =A0Attempting to " >> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0"shutdown pro= cess gracefully"); >> >> As I read the docs, we get APR_EINTR back if apr_pollset_wakeup() was >> called. >> (It seems to fix it for me from an ab standpoint, but I haven't looked >> in detail.) > > yep, that takes care of the breakage.=A0 Thanks, Jeff. > > but my fears about the performance of the design seem to be confirmed.=A0= my > fastest run so far with trunk + this patch, > > Requests per second:=A0=A0=A0 7749.66 [#/sec] (mean) backing up to the prior state (with the mutex), it would seem trivial to implement mutex macros that would maintain a rough contention % by using trylock first when built with some debug flag??? now what is bad contention? that depends on the extra CPU usage for dispatch and latency and xxx??? no idea what that would be; ~1-2%? > >> 2.4's Event, same ab invocation: >> >> Requests per second:=A0=A0=A0 9410.79 [#/sec] (mean) >> >> worker from trunk: >> >> Requests per second:=A0=A0=A0 10401.39 [#/sec] (mean) > > Greg > --=20 Born in Roswell... married an alien...