Return-Path: Delivered-To: apmail-httpd-dev-archive@www.apache.org Received: (qmail 89488 invoked from network); 15 Apr 2005 20:16:27 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 15 Apr 2005 20:16:27 -0000 Received: (qmail 56385 invoked by uid 500); 15 Apr 2005 20:16:16 -0000 Delivered-To: apmail-httpd-dev-archive@httpd.apache.org Received: (qmail 56306 invoked by uid 500); 15 Apr 2005 20:16:14 -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: Delivered-To: mailing list dev@httpd.apache.org Received: (qmail 56276 invoked by uid 99); 15 Apr 2005 20:16:14 -0000 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received-SPF: neutral (hermes.apache.org: local policy) Received: from scotch.ics.uci.edu (HELO scotch.ics.uci.edu) (128.195.24.168) by apache.org (qpsmtpd/0.28) with ESMTP; Fri, 15 Apr 2005 13:16:11 -0700 Received: from scotch.ics.uci.edu (localhost [127.0.0.1]) by scotch.ics.uci.edu (8.12.11/8.12.11) with ESMTP id j3FKFuSk026589 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO) for ; Fri, 15 Apr 2005 13:15:56 -0700 (PDT) Received: (from jerenk@localhost) by scotch.ics.uci.edu (8.12.6/8.12.6/Submit) id j3FKFuXH026588 for dev@httpd.apache.org; Fri, 15 Apr 2005 13:15:56 -0700 (PDT) X-Authentication-Warning: scotch.ics.uci.edu: jerenk set sender to justin@erenkrantz.com using -f Date: Fri, 15 Apr 2005 13:15:56 -0700 From: Justin Erenkrantz To: dev@httpd.apache.org Subject: Re: AP_MODE_EATCRLF considered indigestible Message-ID: <20050415201555.GH29417@scotch.ics.uci.edu> Mail-Followup-To: Justin Erenkrantz , dev@httpd.apache.org References: <425FE436.6060709@remulak.net> <20050415170939.GD29417@scotch.ics.uci.edu> <20050415172932.GE29417@scotch.ics.uci.edu> <42601A1D.6000500@remulak.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <42601A1D.6000500@remulak.net> User-Agent: Mutt/1.5.8i X-Spam-Status: No, score=-2.8 required=5.0 tests=ALL_TRUSTED autolearn=no version=3.1.0-r156655 X-Spam-Checker-Version: SpamAssassin 3.1.0-r156655 (2005-03-09) on scotch.ics.uci.edu X-Virus-Checked: Checked X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N 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