[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20090112125607.GA6370@gondor.apana.org.au>
Date: Mon, 12 Jan 2009 23:56:07 +1100
From: Herbert Xu <herbert@...dor.apana.org.au>
To: Evgeniy Polyakov <zbr@...emap.net>
Cc: Jarek Poplawski <jarkao2@...il.com>,
"David S. Miller" <davem@...emloft.net>,
Jens Axboe <jens.axboe@...cle.com>, Willy Tarreau <w@....eu>,
Changli Gao <xiaosuo@...il.com>, linux-kernel@...r.kernel.org,
netdev@...r.kernel.org
Subject: Re: Data corruption issue with splice() on 2.6.27.10
On Mon, Jan 12, 2009 at 03:45:46PM +0300, Evgeniy Polyakov wrote:
>
> As a long-term solution this sounds as the best case, but introduces
> quite heavy overhead for the allocators. Right now we allocate
> 1500+shared_info rounded up to the nearest power of the two (2k), but
> then we will either need to have own network allocator (I have one :) or
> allocate PAGE_SIZE+shared_info rounded up to the pwoer of the two (i.e.
> 8k), which is unfeasible.
No that's not what I was suggesting. The page split model allocates
an skb with a very small head that accomodates only the headers.
All payload is stored in the frags structure.
For 1500-byte packets, we can manage the payload area efficiently
by dividing each allocated page into 2K chunks. The page will
then be automatically freed once all the 2K chunks on it have been
freed through the page ref count mechanism.
Cheers,
--
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <herbert@...dor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists