From: Andi Kleen <ak@suse.de>
To: Jesse Brandeburg <jesse.brandeburg@intel.com>
Cc: Andi Kleen <ak@suse.de>, Ming Zhang <mingz@ele.uri.edu>,
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 20:01:32 +0200 [thread overview]
Message-ID: <20050819180132.GO22993@wotan.suse.de> (raw)
In-Reply-To: <Pine.WNT.4.63.0508191043440.3796@jbrandeb-desk.amr.corp.intel.com>
> 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 18:01 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 [this message]
2005-08-19 19:07 ` Ming Zhang
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=20050819180132.GO22993@wotan.suse.de \
--to=ak@suse.de \
--cc=e1000-devel@lists.sourceforge.net \
--cc=iscsitarget-devel@lists.sourceforge.net \
--cc=jesse.brandeburg@intel.com \
--cc=mingz@ele.uri.edu \
--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).