From: Ion Badulescu <ionut@moisil.cs.columbia.edu>
To: Andrew Morton <andrewm@uow.edu.au>
Cc: lkml <linux-kernel@vger.kernel.org>,
"netdev@oss.sgi.com" <netdev@oss.sgi.com>
Subject: Re: sendfile+zerocopy: fairly sexy (nothing to do with ECN)
Date: Sat, 27 Jan 2001 02:05:13 -0800 [thread overview]
Message-ID: <200101271005.f0RA5DX04357@moisil.dev.hydraweb.com> (raw)
In-Reply-To: <3A726087.764CC02E@uow.edu.au>
On Sat, 27 Jan 2001 16:45:43 +1100, Andrew Morton <andrewm@uow.edu.au> wrote:
> The client is a 650 MHz PIII. The NIC is a 3CCFE575CT Cardbus 3com.
> It supports Scatter/Gather and hardware checksums. The NIC's interrupt
> is shared with the Cardbus controller, so this will impact throughput
> slightly.
>
> The kernels which were tested were 2.4.1-pre10 with and without the
> zerocopy patch. We only look at client load (the TCP sender).
>
> The link throughput was 11.5 mbytes/sec at all times (saturated 100baseT)
>
> 2.4.1-pre10-vanilla, using sendfile(): 29.6% CPU
> 2.4.1-pre10-vanilla, using read()/write(): 34.5% CPU
>
> 2.4.1-pre10+zercopy, using sendfile(): 18.2% CPU
> 2.4.1-pre10+zercopy, using read()/write(): 38.1% CPU
>
> 2.4.1-pre10+zercopy, using sendfile(): 22.9% CPU * hardware tx checksums disabled
> 2.4.1-pre10+zercopy, using read()/write(): 39.2% CPU * hardware tx checksums disabled
750MHz PIII, Adaptec Starfire NIC, driver modified to use hardware sg+csum
(both Tx/Rx), and Intel i82559 (eepro100), no hardware csum support,
vanilla driver.
The box has 512MB of RAM, and I'm using a 100MB file, so it's entirely cached.
starfire:
2.4.1-pre10+zerocopy, using sendfile(): 9.6% CPU
2.4.1-pre10+zerocopy, using read()/write(): 18.3%-29.6% CPU * why so much variance?
2.4.1-pre10+zerocopy, using sendfile(): 17.4% CPU * hardware csum disabled
2.4.1-pre10+zerocopy, using read()/write(): 16.5%-26.8% CPU * idem, again why so much variance?
2.4.1-pre10-vanilla, using sendfile(): 16.5% CPU
2.4.1-pre10-vanilla, using read()/write(): 14.5%-24.5% CPU * high variance again
eepro100:
2.4.1-pre10+zerocopy, using sendfile(): 16.0% CPU
2.4.1-pre10+zerocopy, using read()/write(): 15.0%-24.5% CPU * why so much variance?
2.4.1-pre10-vanilla, using sendfile(): 16.7% CPU
2.4.1-pre10-vanilla, using read()/write(): 14.5%-24.6% CPU * high variance again
The read+write case is really weird. I'm getting results like this:
CPU load: 27.9491
CPU load: 25.4763
CPU load: 15.8544
CPU load: 25.455
CPU load: 25.2072
CPU load: 15.8677
CPU load: 25.4896
CPU load: 25.2791
CPU load: 15.8837
i.e. 2 slow, 1 fast, 2 slow, 1 fast, and so on so forth.
> What can we conclude?
>
> - sendfile is 10% cheaper than read()-then-write() on 2.4.1-pre10.
Hard to tell, with such inconclusive results...
> - sendfile() with the zerocopy patch is 40% cheaper than
> sendfile() without the zerocopy patch.
Indeed. Close to 50% in fact.
> - hardware Tx checksums don't make much difference. hmm...
Actually it makes all the difference in the world for the starfire.
Interesting...
> Bear in mind that the 3c59x driver uses a one-interrupt-per-packet
> algorithm. Mitigation reduces this to 0.3 ints/packet.
> So we're absorbing 4,500 interrupts/sec while processing
> 12,000 packets/sec. gigE NICs do much better mitigation than
> this and the relative benefits of zerocopy will be much higher
> for these. Hopefully Jamal can do some testing.
Hmm.. the starfire also has quite advanced interrupt mitigation,
but I have not played with it. Maybe tomorrow. So these results
are with one-interrupt-per-packet.
P.S. The starfire still doesn't like tinygrams (skb's with 1-byte
fragments). Fortunately your test program doesn't seem to generate
them. :-)
Ion
--
It is better to keep your mouth shut and be thought a fool,
than to open it and remove all doubt.
-
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/
next prev parent reply other threads:[~2001-01-27 10:05 UTC|newest]
Thread overview: 59+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-01-27 5:45 sendfile+zerocopy: fairly sexy (nothing to do with ECN) Andrew Morton
2001-01-27 6:20 ` Aaron Lehmann
2001-01-27 8:19 ` Andrew Morton
2001-01-27 10:09 ` Ion Badulescu
2001-01-27 10:45 ` Andrew Morton
2001-01-30 6:00 ` David S. Miller
2001-01-30 12:44 ` Andrew Morton
2001-01-30 12:52 ` David S. Miller
2001-01-30 14:58 ` Andrew Morton
2001-01-30 17:49 ` Chris Wedgwood
2001-01-30 22:17 ` David S. Miller
2001-01-31 0:31 ` Chris Wedgwood
2001-01-31 0:45 ` David S. Miller
2001-01-30 22:28 ` David S. Miller
2001-01-30 23:34 ` Andrew Morton
2001-02-02 10:12 ` Andrew Morton
2001-02-02 12:14 ` Trond Myklebust
2001-02-02 17:51 ` David Lang
2001-02-02 22:46 ` David S. Miller
2001-02-02 22:57 ` David Lang
2001-02-02 23:09 ` David S. Miller
2001-02-02 23:13 ` David Lang
2001-02-02 23:28 ` Jeff Barrow
2001-02-02 23:31 ` David S. Miller
2001-02-03 2:27 ` James Sutherland
2001-01-27 10:05 ` Ion Badulescu [this message]
2001-01-27 10:39 ` Andrew Morton
2001-01-27 12:49 ` jamal
2001-01-30 1:06 ` Ion Badulescu
2001-01-30 2:48 ` jamal
2001-01-30 3:26 ` Ion Badulescu
2001-01-31 0:53 ` Still not sexy! (Re: " jamal
2001-01-31 0:59 ` Ingo Molnar
2001-01-31 1:04 ` jamal
2001-01-31 1:14 ` Ingo Molnar
2001-01-31 1:39 ` jamal
2001-01-31 11:21 ` Malcolm Beattie
2001-01-31 11:24 ` Ingo Molnar
2001-01-31 1:10 ` Still not sexy! (Re: sendfile+zerocopy: fairly sexy (nothing to dowith ECN) Rick Jones
2001-01-31 1:45 ` jamal
2001-01-31 2:25 ` Still not sexy! (Re: sendfile+zerocopy: fairly sexy (nothing todowith ECN) Rick Jones
2001-02-04 19:48 ` jamal
2001-02-05 5:13 ` David S. Miller
2001-02-05 18:51 ` Rick Jones
2001-01-27 12:43 ` sendfile+zerocopy: fairly sexy (nothing to do with ECN) jamal
2001-01-27 13:29 ` Andrew Morton
2001-01-27 14:15 ` jamal
2001-01-28 16:05 ` Andrew Morton
2001-01-29 18:50 ` Rick Jones
[not found] ` <200101271854.VAA02845@ms2.inr.ac.ru>
2001-01-28 5:34 ` Andrew Morton
2001-01-28 13:37 ` Felix von Leitner
2001-01-28 14:11 ` Dan Hollis
2001-01-28 14:27 ` Andi Kleen
2001-01-29 21:50 ` Pavel Machek
2001-01-28 19:43 ` Gregory Maxwell
2001-01-28 19:48 ` Choosing Linux NICs (was: Re: sendfile+zerocopy: fairly sexy (nothing to do with ECN)) Felix von Leitner
-- strict thread matches above, loose matches on Subject: below --
2001-01-29 16:16 sendfile+zerocopy: fairly sexy (nothing to do with ECN) Jonathan Earle
2001-01-29 16:34 ` Antonin Kral
2001-01-31 1:49 Bernd Eckenfels
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=200101271005.f0RA5DX04357@moisil.dev.hydraweb.com \
--to=ionut@moisil.cs.columbia.edu \
--cc=andrewm@uow.edu.au \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@oss.sgi.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.