Re: problems with e1000 and jumboframes

From: Arnd Hannemann
Date: Thu Aug 03 2006 - 11:35:25 EST



Evgeniy Polyakov wrote:
> On Thu, Aug 03, 2006 at 05:08:51PM +0200, Krzysztof Oledzki (olel@xxxxxx) wrote:
>>>> Why? After your explanation that makes sense for me. The driver needs
>>>> one contiguous chunk for those 9k packet buffer and thus requests a
>>>> 3-order page of 16k. Or do i still do not understand this?
>>> Correct, except that it wants 32k.
>>> e1000 logic is following:
>>> align frame size to power-of-two,
>> 16K?
>
> Yep.
>
>>> then skb_alloc adds a little
>>> (sizeof(struct skb_shared_info)) at the end, and this ends up
>>> in 32k request just for 9k jumbo frame.
>> Strange, why this skb_shared_info cannon be added before first alignment?
>> And what about smaller frames like 1500, does this driver behave similar
>> (first align then add)?
>
> It can be.
> Could attached (completely untested) patch help?

I will try this in a minute. However is there any way to see which
allocation e1000 does without triggering allocation failures? ;-)

Thanks,
Arnd Hannemann


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/