From: Larry McVoy <lm@bitmover.com>
To: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: Thomas Ogrisegg <tom@rhadamanthys.org>,
"David S. Miller" <davem@redhat.com>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
lm@bitmover.com
Subject: Re: [PATCH] TCP Zero Copy for mmapped files
Date: Thu, 2 Jan 2003 17:27:26 -0800 [thread overview]
Message-ID: <20030103012726.GD6195@work.bitmover.com> (raw)
In-Reply-To: <1041558987.24809.114.camel@irongate.swansea.linux.org.uk>
On Fri, Jan 03, 2003 at 01:56:27AM +0000, Alan Cox wrote:
> On Fri, 2003-01-03 at 00:45, Thomas Ogrisegg wrote:
> > Unfortunately the linux-sendfile is not as good as the HP-UX
> > one. Under HP-UX you can define a "struct iovec" header to
> > be sent before the file is sent.
>
> Thats a design decision. With TCP_CORK and sensible syscall performance
> those kind of web specific hacks are not appropriate
Indeed. In case Alan's message wasn't clear: if your syscall overhead
is zero then many "optimizations" become superfluous. In fact, those
optimizations, one cache miss at a time, tend to be a big part of what
makes the syscall layer so heavyweight.
Linux is amazing in that it is basically the only real operating system
I know of that has stayed so focussed on making the syscall layer be
almost invisible. it's worth a "rah rah" because you can use the
operating system like it was libc, there is basically very little
cost in crossing in/out.
Here's the LMbench context switch benchmark running on a 1.6Ghz Athlon:
load free cach swap pgin pgou dk0 dk1 dk2 dk3 ipkt opkt int ctx usr sys idl
0.67 73M 577M 25M 0 0 0 0 0 0 4.0 2.0 107 548K 23 77 0
0.67 73M 577M 25M 0 0 0 0 0 0 2.0 2.0 105 549K 19 81 0
0.67 73M 577M 25M 0 0 0 0 0 0 4.0 2.0 107 549K 27 73 0
0.70 73M 577M 25M 0 0 0 0 0 0 2.0 2.0 105 548K 23 77 0
Yeah, that's more than a half a million context switchs/second and each
of those include 2 system calls. So Linux is doing 2 system calls and
a context switch in 1.8 microseconds.
When you can get in and out of the kernel that fast, your thinking should
change. You get to use the kernel more freely. And you certainly don't
want to do anything to screw that up. My hat is off to Linus and team
for working so hard to make these numbers be so good (and keep on working,
see the recent syscall discussion).
--
---
Larry McVoy lm at bitmover.com http://www.bitmover.com/lm
next prev parent reply other threads:[~2003-01-03 1:19 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-12-30 1:09 [PATCH] TCP Zero Copy for mmapped files Thomas Ogrisegg
2002-12-30 1:29 ` Larry McVoy
2003-01-02 6:37 ` David S. Miller
2003-01-02 22:12 ` Thomas Ogrisegg
2003-01-02 22:28 ` Larry McVoy
2003-01-02 23:20 ` Alan Cox
2003-01-02 23:16 ` David S. Miller
2003-01-03 0:56 ` Alan Cox
2003-01-03 2:40 ` David S. Miller
2003-01-03 2:41 ` Linus Torvalds
2003-01-02 23:13 ` David S. Miller
2003-01-03 0:45 ` Thomas Ogrisegg
2003-01-03 1:01 ` Larry McVoy
2003-01-03 1:59 ` Alan Cox
2003-01-06 14:36 ` Gianni Tedesco
2003-01-06 23:29 ` David S. Miller
2003-01-03 1:56 ` Alan Cox
2003-01-03 1:27 ` Larry McVoy [this message]
2003-01-03 2:42 ` David S. Miller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20030103012726.GD6195@work.bitmover.com \
--to=lm@bitmover.com \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=davem@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=tom@rhadamanthys.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox