public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@caldera.de>
To: Ingo Molnar <mingo@elte.hu>
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 19:27:07 +0100	[thread overview]
Message-ID: <20010109192707.A20536@caldera.de> (raw)
In-Reply-To: <20010109113145.A28758@caldera.de> <Pine.LNX.4.30.0101091132520.1159-100000@e2>
In-Reply-To: <Pine.LNX.4.30.0101091132520.1159-100000@e2>; from mingo@elte.hu on Tue, Jan 09, 2001 at 12:05:59PM +0100

On Tue, Jan 09, 2001 at 12:05:59PM +0100, Ingo Molnar wrote:
> 
> 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.

Stop.  I NEVER said you should use them internally.
My concern is too use a file operation with a kiobuf ** as main argument
instead of page *.  With a little more bloat it allows you to do the same
you do now.  But it also offers a real advantage:  you don't have to call
into the network stack for every single page, and this fits easily in Ben's
AIO stuff, so your stuff is very well integrated into the (futur) asynch IO
framework. (he latter was my main concern).

You pay 116 bytes and a few cycles for a _lot_ more abstraction and
integration.  Exactly such a design principle (design vs speed) is the cause
why UNIX survived so long.


> 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.

This doesn't matter, because rw_kiovec can easily take only one kiobuf,
and you don't really need the different fragments there.

> 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.

I didn't wnat to suggest that - I'm to clueless concerning networking to
even consider an internal design for network zero-copy IO.
I'm just talking about the VFS interface to the rest of the kernel.

> 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.)

Agreed.

> > 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 :-)

No.  But it looks like a recvmsg syscall wouldn't too bad either ...

	Christoph

-- 
Whip me.  Beat me.  Make me maintain AIX.
-
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/

  reply	other threads:[~2001-01-09 18:28 UTC|newest]

Thread overview: 119+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-01-08  1:24 [PLEASE-TESTME] Zerocopy networking patch, 2.4.0-1 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         ` Christoph Hellwig
2001-01-09 10:31           ` David S. Miller
2001-01-09 11:28             ` Christoph Hellwig
2001-01-09 11:42               ` David S. Miller
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:05           ` Ingo Molnar
2001-01-09 18:27             ` Christoph Hellwig [this message]
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 21:18               ` David S. Miller
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-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:56 ` [PLEASE-TESTME] Zerocopy networking patch, 2.4.0-1 Jes Sorensen
2001-01-08 21:48   ` David S. Miller
2001-01-08 22:32     ` Jes Sorensen
2001-01-08 22:36       ` David S. Miller
2001-01-09 12:12         ` Ingo Molnar
2001-01-08 22:43       ` Stephen Frost
2001-01-08 22:37         ` David S. Miller
2001-01-09 13:52 ` Trond Myklebust
2001-01-09 13:42   ` David S. Miller
2001-01-09 15:27     ` Trond Myklebust
2001-01-09 21:19       ` David S. Miller
2001-01-10  9:21         ` Trond Myklebust
  -- strict thread matches above, loose matches on Subject: below --
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=20010109192707.A20536@caldera.de \
    --to=hch@caldera.de \
    --cc=davem@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --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