Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 1 Feb 2001 18:00:10 +0000
From:      Tony Finch <dot@dotat.at>
To:        Kris Kennaway <kris@obsecurity.org>
Cc:        bsddiy <bsddiy@163.net>, freebsd-net@FreeBSD.ORG
Subject:   Re: sendfile()
Message-ID:  <20010201180010.Q70673@hand.dotat.at>
In-Reply-To: <20010201023825.A71975@xor.obsecurity.org>
References:  <1217774688.20010201133139@163.net> <20010201023825.A71975@xor.obsecurity.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Kris Kennaway <kris@obsecurity.org> wrote:
>On Thu, Feb 01, 2001 at 01:31:39PM +0800, bsddiy wrote:
>
>> I don't want to bring flame war, but the following Linus' words may
>> be right:
>
>Did you have a point to make here? If so, I missed it.

I've been discussing this with a few people recently (fortunately I
didn't lose the mail from Linus when my laptop was stolen) after I
stumbled across the TCP_NOPUSH option, which is superficially similar
to TCP_CORK.

Linus's argument against the HP/UX and BSD sendfile() is that, for
example, in the presence of pipelined HTTP requests it isn't possible
to avoid poor packet boundaries between responses. TCP_NOPUSH does
help to solve this problem (it was designed to hack around problems
with the interaction between mbuf sizes and sosend and tcp_output) but
it introduces a new problem: at the end of a chain of HTTP responses
you want the last segment to go out quickly rather than waiting for
more data to fill the segment. For this reason turning off TCP_CORK
pushes out queued data, but this isn't the case for TCP_NOPUSH.

Tony.
-- 
f.a.n.finch    fanf@covalent.net    dot@dotat.at
"And remember my friend, future events such
as these will affect you in the future."


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-net" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010201180010.Q70673>