From: Ingo Molnar <mingo@elte.hu>
To: Christoph Hellwig <hch@caldera.de>
Cc: Rik van Riel <riel@conectiva.com.br>,
"David S. Miller" <davem@redhat.com>, <netdev@oss.sgi.com>,
<linux-kernel@vger.kernel.org>
Subject: Re: [PLEASE-TESTME] Zerocopy networking patch, 2.4.0-1
Date: Tue, 9 Jan 2001 12:05:59 +0100 (CET) [thread overview]
Message-ID: <Pine.LNX.4.30.0101091132520.1159-100000@e2> (raw)
In-Reply-To: <20010109113145.A28758@caldera.de>
On Tue, 9 Jan 2001, Christoph Hellwig wrote:
> > 2.4. In any case, the zerocopy code is 'kiovec in spirit' (uses
> > vectors of struct page *, offset, size entities),
> Yep. That is why I was so worried aboit the writepages file op.
i believe you misunderstand. kiovecs (in their current form) are simply
too bloated for networking purposes. Due to its nature and nonpersistency,
networking is very lightweight and memory-footprint-sensitive code (as
opposed to eg. block IO code), right now an 'struct skb_shared_info'
[which is roughly equivalent to a kiovec] is 12+4*6 == 36 bytes, which
includes support for 6 distinct fragments (each fragment can be on any
page, any offset, any size). A *single* kiobuf (which is roughly
equivalent to an skb fragment) is 52+16*4 == 116 bytes. 6 of these would
be 696 bytes, for a single TCP packet (!!!). This is simply not something
to be used for lightweight zero-copy networking.
so it's easy to say 'use kiovecs', but right now it's simply not
practical. kiobufs are a loaded concept, and i'm not sure whether it's
desirable at all to mix networking zero-copy concepts with
block-IO/filesystem zero-copy concepts. Just to make it even more clear:
although i do believe it to be desirable from an architectural point of
view, i'm not sure at all whether it's possible, based on the experience
we gathered while implementing TCP-zerocopy.
we talked (and are talking) to Stephen about this problem, but it's a
clealy 2.5 kernel issue. Merging to a finalized zero-copy framework will
be easy. (The overwhelming percentage of zero-copy code is in the
networking code itself and is insensitive to any kiovec issues.)
> It's rather hackish (only write, looks usefull only for networking)
> instead of the proposed rw_kiovec fop.
i'm not sure what you are trying to say. You mean we should remove
sendfile() as well? It's only write, looks useful mostly for networking. A
substantial percentage of kernel code is useful only for networking :-)
> > zerocopy sendfile() and zerocopy sendmsg(), the panacea of fileserver
> > (webserver) scalability - it can be used by Apache, Samba and other
> > fileservers. The new zerocopy networking code DMA-s straight out of the
> > The new zerocopy networking code DMA-s straight out of the
> > pagecache, natively supports hardware-checksumming and highmem (64-bit
> > DMA on 32-bit systems) zerocopy as well and multi-fragment DMA - no
> > limitations. We can saturate a gigabit link with TCP traffic, at about
> > 20% CPU usage on a 500 MHz x86 UP system. David and Alexey's patch is
> > cool - check it out!
> Yuck. A new file_opo just to get a few benchmarks right ...
no. As David said, it's direct sendfile() support. It's completely
isolated, it's 20 lines of code, it does not impact filesystems, it only
shows up in sendfile(). So i truly dont understand your point. This
interface has gone through several iterations and was actually further
simplified.
Ingo
ps1. "first they say it's impossible, then they ridicule you, then they
oppose you, finally they say it's self-evident". Looks like, after
many many years, zero-copy networking for Linux is now finally in
phase III. :-)
ps2. i'm joking :-)
-
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-09 11:06 UTC|newest]
Thread overview: 119+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-01-08 21:56 Jes Sorensen
2001-01-08 1:24 ` David S. Miller
2001-01-08 10:39 ` Christoph Hellwig
2001-01-08 10:34 ` David S. Miller
2001-01-08 18:05 ` Rik van Riel
2001-01-08 21:07 ` David S. Miller
2001-01-09 10:23 ` Ingo Molnar
2001-01-09 10:31 ` David S. Miller
2001-01-09 11:28 ` Christoph Hellwig
2001-01-09 12:04 ` Ingo Molnar
2001-01-09 14:25 ` Stephen C. Tweedie
2001-01-09 14:33 ` Alan Cox
2001-01-09 15:00 ` Ingo Molnar
2001-01-09 15:27 ` Stephen C. Tweedie
2001-01-09 16:16 ` Ingo Molnar
2001-01-09 16:37 ` Alan Cox
2001-01-09 16:48 ` Ingo Molnar
2001-01-09 17:29 ` Alan Cox
2001-01-09 17:38 ` Jens Axboe
2001-01-09 18:38 ` Ingo Molnar
2001-01-09 19:54 ` Andrea Arcangeli
2001-01-09 20:10 ` Ingo Molnar
2001-01-10 0:00 ` Andrea Arcangeli
2001-01-09 20:12 ` Jens Axboe
2001-01-09 23:20 ` Andrea Arcangeli
2001-01-09 23:34 ` Jens Axboe
2001-01-09 23:52 ` Andrea Arcangeli
2001-01-17 5:16 ` Rik van Riel
2001-01-09 17:56 ` Chris Evans
2001-01-09 18:41 ` Ingo Molnar
2001-01-09 22:58 ` [patch]: ac4 blk (was Re: [PLEASE-TESTME] Zerocopy networking patch, 2.4.0-1) Jens Axboe
2001-01-09 19:20 ` [PLEASE-TESTME] Zerocopy networking patch, 2.4.0-1 J Sloan
2001-01-09 18:10 ` Stephen C. Tweedie
2001-01-09 15:38 ` Benjamin C.R. LaHaise
2001-01-09 16:40 ` Ingo Molnar
2001-01-09 17:30 ` Benjamin C.R. LaHaise
2001-01-09 18:12 ` Stephen C. Tweedie
2001-01-09 18:35 ` Ingo Molnar
2001-01-09 17:53 ` Christoph Hellwig
2001-01-09 21:13 ` David S. Miller
2001-01-09 19:14 ` Linus Torvalds
2001-01-09 20:07 ` Ingo Molnar
2001-01-09 20:15 ` Linus Torvalds
2001-01-09 20:36 ` Christoph Hellwig
2001-01-09 20:55 ` Linus Torvalds
2001-01-09 21:12 ` Christoph Hellwig
2001-01-09 21:26 ` Linus Torvalds
2001-01-10 7:42 ` Christoph Hellwig
2001-01-10 8:05 ` Linus Torvalds
2001-01-10 8:33 ` Christoph Hellwig
2001-01-10 8:37 ` Andrew Morton
2001-01-10 23:32 ` Linus Torvalds
2001-01-19 15:55 ` Andrew Scott
2001-01-17 14:05 ` Rik van Riel
2001-01-18 0:53 ` Christoph Hellwig
2001-01-18 1:13 ` Linus Torvalds
2001-01-18 17:50 ` Christoph Hellwig
2001-01-18 18:04 ` Linus Torvalds
2001-01-18 21:12 ` Albert D. Cahalan
2001-01-19 1:52 ` 2.4.1-pre8 video/ohci1394 compile problem ebi4
2001-01-19 6:55 ` [PLEASE-TESTME] Zerocopy networking patch, 2.4.0-1 Linus Torvalds
2001-01-09 23:06 ` Benjamin C.R. LaHaise
2001-01-09 23:54 ` Linus Torvalds
2001-01-10 7:51 ` Gerd Knorr
2001-01-12 1:42 ` Stephen C. Tweedie
2001-01-09 11:42 ` David S. Miller
2001-01-09 10:31 ` Christoph Hellwig
2001-01-09 11:05 ` Ingo Molnar [this message]
2001-01-09 18:27 ` Christoph Hellwig
2001-01-09 19:19 ` Ingo Molnar
2001-01-09 14:18 ` Stephen C. Tweedie
2001-01-09 14:40 ` Ingo Molnar
2001-01-09 14:51 ` Alan Cox
2001-01-09 15:17 ` Stephen C. Tweedie
2001-01-09 15:37 ` Ingo Molnar
2001-01-09 22:25 ` Linus Torvalds
2001-01-10 15:21 ` Stephen C. Tweedie
2001-01-09 15:25 ` Stephen Frost
2001-01-09 15:40 ` Ingo Molnar
2001-01-09 15:48 ` Stephen Frost
2001-01-10 1:14 ` Dave Zarzycki
2001-01-10 1:14 ` David S. Miller
2001-01-10 2:18 ` Dave Zarzycki
2001-01-10 1:19 ` Ingo Molnar
2001-01-09 21:18 ` David S. Miller
2001-01-10 2:56 ` storage over IP (was Re: [PLEASE-TESTME] Zerocopy networking patch, 2.4.0-1) dean gaudet
2001-01-10 2:58 ` David S. Miller
2001-01-10 3:18 ` dean gaudet
2001-01-10 3:09 ` David S. Miller
2001-01-10 3:05 ` storage over IP (was Re: [PLEASE-TESTME] Zerocopy networking patch, Alan Cox
2001-01-08 21:48 ` [PLEASE-TESTME] Zerocopy networking patch, 2.4.0-1 David S. Miller
2001-01-08 22:32 ` Jes Sorensen
2001-01-08 22:37 ` David S. Miller
2001-01-08 22:43 ` Stephen Frost
2001-01-08 22:36 ` David S. Miller
2001-01-09 12:12 ` Ingo Molnar
2001-01-09 13:42 ` David S. Miller
2001-01-09 21:19 ` David S. Miller
2001-01-09 13:52 ` Trond Myklebust
2001-01-09 15:27 ` Trond Myklebust
2001-01-10 9:21 ` Trond Myklebust
2001-01-09 13:08 Stephen Landamore
2001-01-09 13:24 ` Ingo Molnar
2001-01-09 13:47 ` Andrew Morton
2001-01-09 19:15 ` Dan Hollis
2001-01-09 19:14 ` Dan Hollis
2001-01-09 22:03 ` David S. Miller
2001-01-09 22:58 ` Dan Hollis
2001-01-09 22:59 ` Ingo Molnar
2001-01-09 23:11 ` Dan Hollis
2001-01-10 3:24 ` Chris Wedgwood
2001-01-09 17:46 Manfred Spraul
2001-01-10 8:41 Manfred Spraul
2001-01-10 8:31 ` David S. Miller
2001-01-10 11:25 ` Ingo Molnar
2001-01-10 12:03 ` Manfred Spraul
2001-01-10 12:07 ` Ingo Molnar
2001-01-10 16:18 ` Jamie Lokier
2001-01-13 15:43 ` yodaiken
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=Pine.LNX.4.30.0101091132520.1159-100000@e2 \
--to=mingo@elte.hu \
--cc=davem@redhat.com \
--cc=hch@caldera.de \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@oss.sgi.com \
--cc=riel@conectiva.com.br \
/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
all inboxes | Powered by JetHome®