On Tue, Jan 09, 2001 at 01:04:49PM +0100, Ingo Molnar wrote:
> On Tue, 9 Jan 2001, Christoph Hellwig wrote:
> please study the networking portions of the zerocopy patch and you'll see
> why this is not desirable. An alloc_kiovec()/free_kiovec() is exactly the
> thing we cannot afford in a sendfile() operation. sendfile() is
> lightweight, the setup times of kiovecs are not.
Right. However, kiobufs can be kept around for as long as you want
and can be reused easily, and even if allocating and freeing them is
more work than you want, populating an existing kiobuf is _very_
> another, more theoretical issue is that i think the kernel should not be
> littered with multi-page interfaces, we should keep the one "struct page *
> at a time" interfaces.
Bad bad bad. We already have SCSI devices optimised for bandwidth
which don't approach decent performance until you are passing them 1MB
IOs, and even in networking the 1.5K packet limit kills us in some
cases and we need an interface capable of generating jumbograms.
Perhaps tcp can merge internal 4K requests, but if you're doing udp
jumbograms (or STP or VIA), you do need an interface which can give
the networking stack more than one page at once.