[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20100829095951.GA3153@del.dom.local>
Date: Sun, 29 Aug 2010 11:59:51 +0200
From: Jarek Poplawski <jarkao2@...il.com>
To: David Miller <davem@...emloft.net>
Cc: shemminger@...tta.com, eric.dumazet@...il.com,
herbert@...dor.apana.org.au, netdev@...r.kernel.org
Subject: Re: [RFC] gro: Is it ok to share a single napi from several devs ?
On Sat, Aug 28, 2010 at 02:41:30PM -0700, David Miller wrote:
> From: Stephen Hemminger <shemminger@...tta.com>
> Date: Sat, 28 Aug 2010 10:14:24 -0700
>
> > The Marvell Yukon2 hardware supports two interfaces sharing a common interrupt.
> > Therfore the sky2 driver has up to two net devices and a single NAPI per board.
> > It is possible in a single invocation of the poll loop to process frames
> > for both ports. GRO works by combining received packets from identical
> > flows over one NAPI interval. It is possible on sky2 that one packet
> > could be processed for the first port, and the next packet processed was for
> > second port and the two packets were related so that GRO would combine them.
> > The check for the same dev is required to prevent this. Yes it is an unlikely
> > corner case, but the purpose of GRO is to do aggregation but preserve the
> > flow characteristics of the incoming traffic.
>
> If that is true then GRO is going to refuse to merge every single
> frame that arrives on the second port of a SKY2 device. :-)
>
> This is because for the two ports, you allocate and register one NAPI
> instance which uses only the first port's netdev pointer.
>
> Therefore, when GRO compares napi->dev to skb->dev it will always not
Actually, when GRO compares napi->dev to skb->dev?
Jarek P.
> match for packets coming from the second port since the netdev pointer
> in skb->dev will be different.
>
> Since netpoll does similar things, this means both NAPI and netpoll
> cannot function properly with SKY2's second port. It will only work
> right on the first port.
>
>
--
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