Messages in this thread | | | Date | Tue, 27 Jan 2009 07:40:48 +0000 | From | Jarek Poplawski <> | Subject | Re: [PATCH v2] tcp: splice as many packets as possible at once |
| |
On Mon, Jan 26, 2009 at 10:10:56PM -0800, David Miller wrote: > From: Evgeniy Polyakov <zbr@ioremap.net> > Date: Tue, 27 Jan 2009 00:21:30 +0300 > > > Hi Jarek. > > > > On Mon, Jan 26, 2009 at 08:20:36AM +0000, Jarek Poplawski (jarkao2@gmail.com) wrote: > > > > 1. Network (tree) allocator > > > > http://www.ioremap.net/projects/nta > > > > > > I looked at this a bit, but alas I didn't find much for this Herbert's > > > idea of payload in fragments/pages. Maybe some kind of API RFC is > > > needed before this resurrection? > > > > Basic idea is to steal some (probably a lot) pages from the slab > > allocator and put network buffers there without strict need for > > power-of-two alignment and possible wraps when we add skb_shared_info at > > the end, so that old e1000 driver required order-4 allocations for the > > jumbo frames. We can do that in alloc_skb() and friends and put returned > > buffers into skb's fraglist and updated reference counters for those > > pages; and with additional copy of the network headers into skb->head.
I think the main problem is to respect put_page() more, and maybe you mean to add this to your allocator too, but using slab pages for this looks a bit complex to me, but I can miss something.
> We are going back and forth saying the same thing, I think :-) > (BTW, I think NTA is cool and we might do something like that > eventually) > > The basic thing we have to do is make the drivers receive into > pages, and then slide the network headers (only) into the linear > SKB data area.
As a matter of fact, I wonder if these headers should be always separated. Their "chunk" could be refcounted as well, I guess.
Jarek P.
| |