Re: [PLEASE-TESTME] Zerocopy networking patch, 2.4.0-1

Gerd Knorr (kraxel@bytesex.org)
10 Jan 2001 07:51:11 GMT


> > Please tell me what you think the right interface is that provides a hook
> > on io completion and is asynchronous.
>
> Suggested fix to kiovec's: get rid of them. Immediately. Replace them with
> kiobuf's that can handle scatter-gather pages. kiobuf's have 90% of that
> support already.
>
> Never EVER have a "struct page **" interface. It is never the valid thing
> to do.

Hmm, /me is quite happy with it. It's fine for *big* chunks of memory like
video frames: I just need a large number of pages, length and offset. If
someone wants to have a look: a rewritten bttv version which uses kiobufs
is available at http://www.strusel007.de/linux/bttv/bttv-0.8.8.tar.gz

It does _not_ use kiovecs throuth (to be exact: kiovecs with just one single
kiobuf in there).

> You should have
>
> struct fragment {
> struct page *page;
> __u16 offset, length;
> }

What happens with big memory blocks? Do all pages but the first and last
get offset=0 and length=PAGE_SIZE then?

Gerd

-- 
Get back there in front of the computer NOW. Christmas can wait.
	-- Linus "the Grinch" Torvalds,  24 Dec 2000 on linux-kernel
-
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/