httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Justin Erenkrantz <>
Subject Re: AP_MODE_EATCRLF considered indigestible
Date Fri, 15 Apr 2005 20:15:56 GMT
On Fri, Apr 15, 2005 at 03:46:37PM -0400, Greg Ames wrote:
> it is sounding better all the time as far as performance.  if I understand 
> you correctly I think this one eliminates the extra trips down the input 
> and output filter chains.  but unfortunately we still have the extra read() 
> compared to 1.3, and what about data stashed in the input filter chain?

Well, I think the extra read() is required if we want to see if there is a
pending request in the pipeline (heh).  I wouldn't see a way to know that
without that read() - note that if we've already read the data from the socket
(in our previous core input filter reads), we won't have to go to the network
as the brigade contains the previously read() data in a heap bucket ('stashed
away').  But, in the common case where there isn't a request in the pipeline,
then it would call read() - albeit nonblocking.  I'm guessing 1.3 just didn't
even bother doing a read() on the socket...which sort ofbegs the question, why
are we doing that in 2.x then?

But, moving it to a request output filter triggered by EOS presence does
eliminate one round trip through the filter chain which can save CPU cycles.

So, I guess what we should do is let Rici finish up the patch to implement
EATCRLF entirely via speculative reads - ensure that works and then we can
move around that code as necessary.  -- justin

View raw message