![]() | |||||||||||
Messages in this thread
|
On 5/4/07, Peter Zijlstra <a.p.zijlstra@chello.nl> wrote: > Change the skb allocation api to indicate RX usage and use this to fall back to > the reserve when needed. Skbs allocated from the reserve are tagged in > skb->emergency. > > Teach all other skb ops about emergency skbs and the reserve accounting. > > Use the (new) packet split API to allocate and track fragment pages from the > emergency reserve. Do this using an atomic counter in page->index. This is > needed because the fragments have a different sharing semantic than that > indicated by skb_shinfo()->dataref. > > (NOTE the extra atomic overhead is only for those pages allocated from the > reserves - it does not affect the normal fast path.) > > Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> > --- > include/linux/skbuff.h | 22 +++++- > net/core/skbuff.c | 161 ++++++++++++++++++++++++++++++++++++++++++------- > 2 files changed, 157 insertions(+), 26 deletions(-) > > +#define skb_alloc_rx(skb) (skb_emergency(skb) ? SKB_ALLOC_RX : 0) skb_alloc_rx seems to imply "alloc an skb for rx", not "gimme the right flags to allocate a skb for rx". Can this be changed to "skb_alloc_rx_flag(skb)", similar to the existing sock_flag() for socks? - Arnaldo - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ | ||||||||||
| Last update: 2007-05-04 16:09 [from the cache] ©2003-2008 | |||||||||||