You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Jeff Trawick <tr...@gmail.com> on 2009/03/02 22:45:30 UTC

Re: svn commit: r749438 - in /httpd/httpd/trunk: CHANGES support/ab.c

On Mon, Mar 2, 2009 at 4:17 PM, <tr...@apache.org> wrote:

> Author: trawick
> Date: Mon Mar  2 21:17:43 2009
> New Revision: 749438
>
> URL: http://svn.apache.org/viewvc?rev=749438&view=rev
> Log:
> ab: Fix maintenance of the pollset to resolve EINPROGRESS errors
> with kqueue (BSD/OS X) and excessive CPU with event ports (Solaris).


I tested with APR trunk on Linux and OpenSolaris, and APR 1.4.x on OS X.

Slightly more CPU is now consumed with the select() backend on Linux and
OpenSolaris (not surprising, since that backend didn't need the pollset to
be so carefully maintained).  There's probably similar degradation with
poll(), but it seemed a tossup in my casual checks of system and user space
CPU.

It looked to me that less CPU is now used with the epoll backend.

The former "excessive" CPU with event ports was so by a factor of 4 or 5,
almost all in user space.

Thanks to Mladen for drastically reducing the number of required builds for
testing different pollset backends!

I get a small percentage of length mismatches on OS X with keepalive mode,
but that happens for me with the 2.0.x branch on OS X as well.  I also see
an occasional timeout failure on OS X.

https was only lightly tested.

(I don't really like ab beyond the fact that it is always in reach, but it
was a nice pollset testcase.)