From: Eric Dumazet <eric.dumazet@gmail.com>
To: Yuval Mintz <yuvalmin@broadcom.com>
Cc: davem@davemloft.net, netdev@vger.kernel.org, eilong@broadcom.com,
ariele@broadcom.com
Subject: Re: [PATCH net-next 09/10] bnx2x: Added FW GRO bridging support
Date: Tue, 15 Jan 2013 06:39:12 -0800 [thread overview]
Message-ID: <1358260752.8744.5677.camel@edumazet-glaptop> (raw)
In-Reply-To: <50F50537.3030608@broadcom.com>
On Tue, 2013-01-15 at 09:28 +0200, Yuval Mintz wrote:
> On 01/14/2013 08:44 PM, Eric Dumazet wrote:
> > On Mon, 2013-01-14 at 09:22 -0800, Eric Dumazet wrote:
> >
> > What is the value of gso_segs ?
> >
> > The reason I am pointing this out is the recent change in commit
> > 1def9238d4aa2146924994aa4b7dc861f03b9362
> > (net_sched: more precise pkt_len computation)
> >
> > bnx2x not setting gso_segs means that qdisc accounting on ingress is
> > completely wrong.
>
> Hi Eric,
>
> First I just want to state that you're totally correct about the gso_segs -
> bnx2x is not setting it correctly (it's currently totally omitted), and so
> it would incorrectly affect the accounting.
>
> However, notice this behaviour was not introduced in this patch -
> Since 621b4d6 bnx2x is using FW GRO, overriding the kernel's GRO implementation:
> As the bnx2x driver is supplied with the aggregated packet from its FW,
> the bnx2x passes a value in the `gso_size' field of its skb, causing
> `skb_is_gso' to return `true'.
> This will cause the aggregated skb to override the GRO machinations
> (in `dev_gro_receive'), overriding all calls to `gro_receive' and thus also
> the call to `skb_gro_receive' which whould have incremented `gso_segs'.
>
> This patch actually tries to correct said behaviour, obviously failing
> with the gso_segs but still improving the current state of bnx2x GRO
> in bridging scenarios.
>
> >> This looks weird to me. This should be called by GRO stack only.
>
> I think this is the main question - we could try and implement this
> inside the network-core itself, but as said behaviour is unique to the
> bnx2x driver (correct me if I'm wrong, but I'm unaware of any other
> driver which does GRO without the kernel GRO implementation), the
> solution is specially tailored for the bnx2x driver.
>
> We could either:
> 1. Continue with this patch, later sending a patch correcting gso_segs,
> as this is not a new issue.
> 2. Send a V2 patch-series which will also set gso_segs correctly.
> 3. Send a V2 patch-series which omits this patch, and later send an RFC
> for some kernel implementation which fixes the issue.
>
> Your thoughts on this matter will be greatly appreciated.
I am fine with any solution, as long as we fix the problem.
If GRO is done by the FW/driver instead of core network stack, we should
make sure :
- transport_header is set correctly (your patch seems to do that)
- gso_segs is computed (this could be done in core network, but this
adds yet another conditional test in th fast path, and it seems only
bnx2x would need this)
Thanks
next prev parent reply other threads:[~2013-01-15 14:39 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-01-14 15:11 [PATCH net-next 0/10] bnx2x: patch series Yuval Mintz
2013-01-14 15:11 ` [PATCH net-next 01/10] bnx2x: Clear dirty status when booting after UNDI Yuval Mintz
2013-01-14 15:11 ` [PATCH net-next 02/10] bnx2x: Add an additional fatal hw assertion - BRB_HW_INTERRUPT Yuval Mintz
2013-01-14 15:11 ` [PATCH net-next 03/10] bnx2x: use SAN Mac for FCoE Yuval Mintz
2013-01-14 15:11 ` [PATCH net-next 04/10] bnx2x: Fix rare self-test failures Yuval Mintz
2013-01-14 15:11 ` [PATCH net-next 05/10] bnx2x: Added nvram personalities support Yuval Mintz
2013-01-14 15:11 ` [PATCH net-next 06/10] bnx2x: add `ethtool -w' support Yuval Mintz
2013-01-14 15:11 ` [PATCH net-next 07/10] bnx2x: improve stop-on-error Yuval Mintz
2013-01-14 15:11 ` [PATCH net-next 08/10] bnx2x: Clean previous IGU status before ack Yuval Mintz
2013-01-14 15:11 ` [PATCH net-next 09/10] bnx2x: Added FW GRO bridging support Yuval Mintz
2013-01-14 17:22 ` Eric Dumazet
2013-01-14 18:44 ` Eric Dumazet
2013-01-15 7:28 ` Yuval Mintz
2013-01-15 14:39 ` Eric Dumazet [this message]
2013-01-15 14:02 ` Yuval Mintz
2013-01-15 15:07 ` Eric Dumazet
2013-01-15 20:09 ` David Miller
2013-01-16 4:56 ` Eric Dumazet
2013-01-16 5:37 ` [PATCH net-next] bnx2x: fix GRO parameters Eric Dumazet
2013-01-16 7:01 ` Yuval Mintz
2013-01-16 15:29 ` Eric Dumazet
2013-01-16 14:38 ` Yuval Mintz
2013-01-16 16:50 ` Eric Dumazet
2013-01-17 7:16 ` Yuval Mintz
2013-01-14 15:11 ` [PATCH net-next 10/10] bnx2x: Introduce 2013 and advance version to 1.78.02 Yuval Mintz
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=1358260752.8744.5677.camel@edumazet-glaptop \
--to=eric.dumazet@gmail.com \
--cc=ariele@broadcom.com \
--cc=davem@davemloft.net \
--cc=eilong@broadcom.com \
--cc=netdev@vger.kernel.org \
--cc=yuvalmin@broadcom.com \
/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