Subject: Re: problems with e1000 and jumboframes

From: Evgeniy Polyakov <[email-masked]>
Date: Thu, 3 Aug 2006 22:29:11 +0400

On Thu, Aug 03, 2006 at 08:09:07PM +0200, Arnd Hannemann ([email-masked]) wrote:
> Evgeniy Polyakov schrieb:
> > On Thu, Aug 03, 2006 at 07:16:31PM +0400, Evgeniy Polyakov ([email-masked]) wrote:
> >>>> 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?
> > 
> > Actually this patch will not help, this new one could.
> > 
> 
> I applied the attached pachted. And got this output:
> 
> > Intel(R) PRO/1000 Network Driver - bufsz 13762
> > Intel(R) PRO/1000 Network Driver - bufsz 16222
> > Intel(R) PRO/1000 Network Driver - bufsz 16058
> > Intel(R) PRO/1000 Network Driver - bufsz 15894
> > Intel(R) PRO/1000 Network Driver - bufsz 15730
> > Intel(R) PRO/1000 Network Driver - bufsz 15566
> > Intel(R) PRO/1000 Network Driver - bufsz 15402
> > Intel(R) PRO/1000 Network Driver - bufsz 15238
> > Intel(R) PRO/1000 Network Driver - bufsz 15074
> > Intel(R) PRO/1000 Network Driver - bufsz 14910
> > Intel(R) PRO/1000 Network Driver - bufsz 14746
> > Intel(R) PRO/1000 Network Driver - bufsz 14582
> > Intel(R) PRO/1000 Network Driver - bufsz 14418
> > Intel(R) PRO/1000 Network Driver - bufsz 14254
> > Intel(R) PRO/1000 Network Driver - bufsz 14090
> > Intel(R) PRO/1000 Network Driver - bufsz 13926
> > Intel(R) PRO/1000 Network Driver - bufsz 13762
> > Intel(R) PRO/1000 Network Driver - bufsz 16222
> > Intel(R) PRO/1000 Network Driver - bufsz 16058
> > Intel(R) PRO/1000 Network Driver - bufsz 15894
> > Intel(R) PRO/1000 Network Driver - bufsz 15730
> > Intel(R) PRO/1000 Network Driver - bufsz 15566
> > Intel(R) PRO/1000 Network Driver - bufsz 15402
> > Intel(R) PRO/1000 Network Driver - bufsz 15238
> > Intel(R) PRO/1000 Network Driver - bufsz 15074
> > Intel(R) PRO/1000 Network Driver - bufsz 14910
> > Intel(R) PRO/1000 Network Driver - bufsz 14746
> > Intel(R) PRO/1000 Network Driver - bufsz 14582
> > Intel(R) PRO/1000 Network Driver - bufsz 14418
> > Intel(R) PRO/1000 Network Driver - bufsz 16222
> > Intel(R) PRO/1000 Network Driver - bufsz 16222
> > Intel(R) PRO/1000 Network Driver - bufsz 16222
> > Intel(R) PRO/1000 Network Driver - bufsz 16222
> > Intel(R) PRO/1000 Network Driver - bufsz 16222
> > Intel(R) PRO/1000 Network Driver - bufsz 16222
> > Intel(R) PRO/1000 Network Driver - bufsz 16222
> > Intel(R) PRO/1000 Network Driver - bufsz 16222
> > Intel(R) PRO/1000 Network Driver - bufsz 16222
> > Intel(R) PRO/1000 Network Driver - bufsz 16222
> > Intel(R) PRO/1000 Network Driver - bufsz 16222
> 
> I'm a bit puzzled that there are so much allocations. However the patch
> seems to work. (at least not obviously breaks things for me yet)

Very strange output actually - comments in the code say that frame size
can not exceed 0x3f00, but in this log it is much more than 16128 and
that is after sizeof(struct skb_shared_info) has been removed...
Could you please remove debug output and run some network stress test in
parallel with high disk/memory activity to check if that does not break
your system and watch /proc/slabinfo for 16k and 32k sized pools.

> Best regards
> Arnd

-- 
	Evgeniy Polyakov