From: "Chris Leech" <chris.leech@gmail.com>
To: "Arnd Hannemann" <arnd@arndnet.de>
Cc: "Evgeniy Polyakov" <johnpol@2ka.mipt.ru>,
"Krzysztof Oledzki" <olel@ans.pl>,
linux-kernel@vger.kernel.org, netdev@vger.kernel.org
Subject: Re: problems with e1000 and jumboframes
Date: Thu, 3 Aug 2006 13:34:12 -0700 [thread overview]
Message-ID: <41b516cb0608031334s6e159e99tb749240f44ae608d@mail.gmail.com> (raw)
In-Reply-To: <44D22350.5070709@arndnet.de>
On 8/3/06, Arnd Hannemann <arnd@arndnet.de> wrote:
> Well you say "if a single buffer per frame is going to be used". Well,
> if I understood you correctly i could set the MTU to, lets say 4000.
> Then the driver would enable the "jumbo frame bit" of the hardware, and
> allocate only a 4k rx buffer, right? (and allocate 16k, because of
> skb_shinfo)
> Now if a new 9k frame arrives the hardware will accept it regardless of
> the 2k MTU and will split it into 3x 4k rx buffers?
> Does the current driver work in this way? That would be great.
>
> Perhaps then one should change the driver in a way that the MTU can
> changed independently of the buffer size?
Yes, e1000 devices will spill over and use multiple buffers for a
single frame. We've been trying to find a good way to use multiple
buffers to take care of these allocation problems. The structure of
the sk_buff does not make it easy. Or should I say that it's the
limitation that drivers are not allowed to chain together multiple
sk_buffs to represent a single frame that does not make it easy.
PCI-Express e1000 devices support a feature called header split, where
the protocol headers go into a different buffer from the payload. We
use that today to put headers into the kmalloc() allocated skb->data
area, and payload into one or more skb->frags[] pages. You don't ever
have multiple page allocations from the driver in this mode.
We could try and only use page allocations for older e1000 devices,
putting headers and payload into skb->frags and copying the headers
out into the skb->data area as needed for processing. That would do
away with large allocations, but in Jesse's experiments calling
alloc_page() is slower than kmalloc(), so there can actually be a
performance hit from trying to use page allocations all the time.
It's an interesting problem.
- Chris
next prev parent reply other threads:[~2006-08-03 20:34 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-08-03 13:48 Arnd Hannemann
2006-08-03 13:59 ` Evgeniy Polyakov
2006-08-03 14:37 ` Arnd Hannemann
2006-08-03 15:03 ` Evgeniy Polyakov
2006-08-03 15:08 ` Krzysztof Oledzki
2006-08-03 15:16 ` Evgeniy Polyakov
2006-08-03 15:37 ` Arnd Hannemann
2006-08-03 15:43 ` Evgeniy Polyakov
2006-08-03 15:41 ` Evgeniy Polyakov
2006-08-03 18:09 ` Arnd Hannemann
2006-08-03 18:29 ` Evgeniy Polyakov
2006-08-03 21:40 ` Arnd Hannemann
2006-08-03 15:57 ` Chris Leech
2006-08-03 16:10 ` Evgeniy Polyakov
2006-08-03 20:32 ` Chris Leech
2006-08-04 6:20 ` Evgeniy Polyakov
2006-08-04 15:16 ` Chris Leech
2006-08-03 16:24 ` Arnd Hannemann
2006-08-03 20:34 ` Chris Leech [this message]
2006-08-04 5:59 ` Herbert Xu
2006-08-04 6:15 ` Evgeniy Polyakov
2006-08-04 15:34 ` Chris Leech
2006-08-04 19:42 ` Evgeniy Polyakov
2006-08-04 21:02 ` Jesse Brandeburg
2006-08-05 9:58 ` Evgeniy Polyakov
2006-08-05 10:09 ` Herbert Xu
2006-08-05 10:24 ` Evgeniy Polyakov
2006-08-05 10:33 ` Herbert Xu
2006-08-05 10:41 ` Evgeniy Polyakov
2006-08-03 15:23 ` Evgeniy Polyakov
2006-08-04 5:52 ` Herbert Xu
2006-08-04 5:55 ` David Miller
2006-08-04 5:58 ` Evgeniy Polyakov
2006-08-03 14:24 ` Benjamin LaHaise
2006-08-03 14:49 ` Krzysztof Oledzki
2006-08-03 14:52 ` Benjamin LaHaise
2006-08-03 15:04 ` Krzysztof Oledzki
2006-08-03 15:32 ` Arnd Hannemann
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=41b516cb0608031334s6e159e99tb749240f44ae608d@mail.gmail.com \
--to=chris.leech@gmail.com \
--cc=arnd@arndnet.de \
--cc=johnpol@2ka.mipt.ru \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=olel@ans.pl \
/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
all inboxes | Powered by JetHome®