Re: problems with e1000 and jumboframes
From: Jesse Brandeburg
Date: Fri Aug 04 2006 - 17:00:41 EST
On 8/4/06, Evgeniy Polyakov <johnpol@xxxxxxxxxxx> wrote:
On Fri, Aug 04, 2006 at 08:34:46AM -0700, Chris Leech (chris.leech@xxxxxxxxx) wrote:
> So how many skb allocation schemes do you code into a single driver?
> Kmalloc everything, page alloc everything, combination of kmalloc and
> page buffers for hardware that does header split? That's three
> versions of the drivers receive processing and skb allocation that
> need to be maintained.
At least try to create scheme which will not end up in 32k allocation in
atomic context. Generally I would recommend to use frag_list as much as
possible (or you can reuse skb list).
this is exactly what we ran into, you can't use skb list because the
ip fragmentation reassembly code overwrites it. If someone is feeling
particularly miffed by this i would love to see a patch that used
alloc_page() for all of our receive buffers for the legacy receive
path (e1000_clean_rx_irq) then we would be able to use nr_frags and
frag_list for receives.
Oh, except that eth_type_trans can't handle the entire packet in the
frag_list (it wants the header in the skb->data)
anyway, this is not as easy a problem to solve as it would seem on the surface.
Jesse
-
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/