Re: mac80211 truesize bugs

Johannes Berg
2008-05-04T08:47:41Z

[-- Attachment #1: Type: text/plain, Size: 1158 bytes --]

On Sun, 2008-05-04 at 11:16 +0800, Herbert Xu wrote:
> On Sun, May 04, 2008 at 04:22:20AM +0200, Johannes Berg wrote:
> >
> > 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.
>
> How did you test it?

I stuck a WARN_ON((nhead || ntail) && skb->sk) into pskb_expand_head
(which never triggered except from mac80211). And mac80211 has code that
calculates the required header length and only calls pskb_expand_head()
from that place when it needs more header space (or the skb is cloned. I
should repeat this test)

> > What's wrong with, instead, doing skb_orphan() and then
> > pskb_expand_head()? That seems to have the same effect.
>
> If you packet sticks around for long enough then this skews the
> accounting. In any case, thinking too much about optimising this
> part is a waste of time because we should be thinking about having
> enough head room in the packet so that we don't have to expand
> it in the first place except for the odd packet.

Very true. How about tail length? :)