Re: Is sendfile all that sexy?

Linus Torvalds (torvalds@transmeta.com)
15 Jan 2001 10:46:41 -0800


In article <14947.17050.127502.936533@leda.cam.zeus.com>,
Jonathan Thackray <jthackray@zeus.com> wrote:
>
>> how would sendpath() construct the Content-Length in the HTTP header?
>
>You'd still stat() the file to decide whether to use sendpath() to
>send it or not, if it was Last-Modified: etc. Of course, you'd cache
>stat() calls too for a few seconds. The main thing is that you save
>a valuable fd and open() is expensive, even more so than stat().

"open" expensive?

Maybe on HP-UX and other platforms. But give me numbers: I seriously
doubt that

int fd = open(..)
fstat(fd..);
sendfile(fd..);
close(fd);

is any slower than

.. cache stat() in user space based on name ..
sendpath(name, ..);

on any real load.

>> TCP_CORK is useful for FAR more than just sendfile() headers and
>> footers. it's arguably the most correct way to write server code.
>
>Agreed -- the hard-coded Nagle algorithm makes no sense these days.

The fact I dislike about the HP-UX implementation is that it is so
_obviously_ stupid.

And I have to say that I absolutely despise the BSD people. They did
sendfile() after both Linux and HP-UX had done it, and they must have
known about both implementations. And they chose the HP-UX braindamage,
and even brag about the fact that they were stupid and didn't understand
TCP_CORK (they don't say so in those exact words, of course - they just
show that they were stupid and clueless by the things they brag about).

Oh, well. Not everybody can be as goodlooking as me. It's a curse.

Linus
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/