On Sun, 2008-05-04 at 10:12 +0800, Herbert Xu wrote: > On Sun, May 04, 2008 at 04:08:36AM +0200, Johannes Berg wrote: > > > > So, what is mac80211 supposed to do? It needs up to 54 bytes of > > available headroom (for an encrypted mesh packet which currently can't > > really happen, but anyway) yet it cannot pskb_expand_head() either. > > Cloning each packet seems even more expensive, and just like skb_orphan > > subverts the purpose of the socket accounting. > > If all/the majority of your packets need the space then put it in > LL_MAX_HEADER. Yes, wireless always needs at least 24 bytes, but more likely 34 (encryption+QoS). However, I just increased LL_MAX_HEADER to 54 and that doesn't seem to have helped. > In any case, you should always expand the packet > if necessary in your output routine since LL_MAX_HEADER is just a > hint. Yes cloning is expensive compared to not having to do it, > but as long as this is only done for the exception then it's > irrelevant. What's wrong with, instead, doing skb_orphan() and then pskb_expand_head()? That seems to have the same effect. johannes
Attachment:
signature.asc
Description: This is a digitally signed message part