From: Ming Zhang <mingz@ele.uri.edu>
To: Andi Kleen <ak@suse.de>
Cc: Jesse Brandeburg <jesse.brandeburg@intel.com>,
E1000 <e1000-devel@lists.sourceforge.net>,
iet-dev <iscsitarget-devel@lists.sourceforge.net>,
netdev@vger.kernel.org
Subject: Re: [E1000-devel] Page Allocation Failure with e1000 using jumboframe
Date: Fri, 19 Aug 2005 15:07:09 -0400 [thread overview]
Message-ID: <1124478429.5552.39.camel@localhost.localdomain> (raw)
In-Reply-To: <20050819180132.GO22993@wotan.suse.de>
I am sorry that the guy who found this problem is running suse linux,
but with vanilla kernel. so this is a generic problem, not suse
specific.
I am sorry for my insaneness at that time. :P
Ming
On Fri, 2005-08-19 at 20:01 +0200, Andi Kleen wrote:
> > I could certainly be mistaken. The difference I saw was that suse kernels
> > recycle the same skb pointers back to our driver, and the redhat kernels
> > seem to march through a much larger range before the values repeat. This
> > is all observation based, so I may be completely wrong on this issue.
>
> Maybe you're comparing 2.4 to 2.6 or different 2.6s. But I don't
> think there are any SUSE specific patches affecting this.
>
> >
> > >> the formula for the size that the current e1000 looks for is something
> > >> like
> > >>
> > >> a = MTU roundup to next power of 2
> > >> a += 2 (skb_reserve(NET_IP_ALIGN))
> > >> a += 16 (skb_reserve 16 by __dev_alloc_skb)
> > >>
> > >> so, a = 2048 + 2 + 16, or 2066
> > >> request (a) from slab, which does a power of 2 roundup
> > >> so the skb comes from the 4k (single page) slab for standard mtu.
> > >
> > >That's very suboptimal because you're wasting nearly 2k. It would
> > >be better if you allocated 4k or exactly 2k
> >
> > we have to give the full 2k to hardware, unfortunately. which means
> > mapping the full 2k. we do the skb reserve because of cache/alighment
> > effects which show a (big) hit in performance if we don't align the IP
> > header. Yes I know that dword unaligned DMA really hurts on some arches,
> > but thats why the arch can #def NET_IP_ALIGN 0.
>
> What is the requirement of your hardware? power of two alignment or
> power of two size? If the later does it really trash the data behind it?
>
> But surely it doesn't use all of the 2k for the 1.5k MTU, so it
> would be good if you could fit the header alignment in there
> and only get the exact needed amount from the underlying allocator.
>
>
> >
> > if thats the case, then we're left asking the question, who uses that 16
> > bytes that are skb_reserved by __dev_alloc_skb???
>
> Nothing, except maybe routing to a different class of link layer that
> needs bigger headers (e.g. PPP). Even then it's just a performance
> optimization to avoid a skb copy.
>
> I suppose it would be possible to keep track of the largest supported
> hard_header_len of all devices and if it's all identical don't add the
> 16 bytes.
>
> -Andi
-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
next prev parent reply other threads:[~2005-08-19 19:07 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1124326404.5546.215.camel@localhost.localdomain>
2005-08-19 16:51 ` [E1000-devel] Page Allocation Failure with e1000 using jumbo frame Jesse Brandeburg
2005-08-19 17:01 ` Ming Zhang
2005-08-19 17:33 ` Page Allocation Failure with e1000 using jumboframe Jesse Brandeburg
2005-08-19 17:42 ` [E1000-devel] " Andi Kleen
2005-08-19 17:51 ` Jesse Brandeburg
2005-08-19 18:01 ` Andi Kleen
2005-08-19 19:07 ` Ming Zhang [this message]
2005-08-19 21:10 ` Jesse Brandeburg
2005-08-19 17:52 ` Ming Zhang
2005-08-20 1:46 ` Michael Iatrou
2005-08-19 17:02 ` Page Allocation Failure with e1000 using jumbo frame Andi Kleen
2005-08-19 18:10 ` [E1000-devel] " Martin Josefsson
2005-08-19 17:03 ` Nivedita Singhvi
2005-08-20 1:43 ` [E1000-devel] " Michael Iatrou
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1124478429.5552.39.camel@localhost.localdomain \
--to=mingz@ele.uri.edu \
--cc=ak@suse.de \
--cc=e1000-devel@lists.sourceforge.net \
--cc=iscsitarget-devel@lists.sourceforge.net \
--cc=jesse.brandeburg@intel.com \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).