[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1349956833.21172.8841.camel@edumazet-glaptop>
Date: Thu, 11 Oct 2012 14:00:33 +0200
From: Eric Dumazet <eric.dumazet@...il.com>
To: mbizon@...ebox.fr
Cc: Måns Rullgård <mans@...sr.com>,
Russell King - ARM Linux <linux@....linux.org.uk>,
netdev@...r.kernel.org, David Laight <David.Laight@...LAB.COM>,
Jon Masters <jonathan@...masters.org>,
linux-arm-kernel@...ts.infradead.org
Subject: Re: alignment faults in 3.6
On Thu, 2012-10-11 at 13:54 +0200, Eric Dumazet wrote:
> On Thu, 2012-10-11 at 13:47 +0200, Maxime Bizon wrote:
> > On Thu, 2012-10-11 at 13:28 +0200, Eric Dumazet wrote:
> >
> > > You probably are aware that a driver can use :
> > >
> > > - a fragment to hold the frame given by the hardware, with whatever
> > > alignment is needed by the hardware.
> > >
> > > Then allocate an skb with enough room (128 bytes) to pull the headers as
> > > needed later.
> > >
> > > skb = netdev_alloc_skb_ip_align(dev, 128);
> >
> > What happen at tx time, supposing that same hardware cannot do SG ?
> >
> > Aren't we going to memcpy the data into the head ?
> >
>
> Of course, if you use a forwarding setup, and the tx driver is not SG
> capable, performance will be bad (You have to copy the data into a
> single skb (linearize the skb))
By the way, if said driver also has alignments issues, it will probably
copy the packet given by the stack. (Think you added an IPIP
encapsulation)
It would be better for such driver to still pretend it can do SG,
and it does the copy itself, avoiding the prior copies in core stack.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists