From: Eric Dumazet <eric.dumazet@gmail.com>
To: David Miller <davem@davemloft.net>, alexander.duyck@gmail.com
Cc: michael.chan@broadcom.com, netdev@vger.kernel.org,
Ariel.Elior@cavium.com, everest-linux-l2@cavium.com
Subject: Re: [PATCH net-next 1/4] net: Introduce NETIF_F_GRO_HW
Date: Mon, 04 Dec 2017 11:26:24 -0800 [thread overview]
Message-ID: <1512415584.19682.60.camel@gmail.com> (raw)
In-Reply-To: <20171204.135929.1654731726316874482.davem@davemloft.net>
On Mon, 2017-12-04 at 13:59 -0500, David Miller wrote:
> From: Alexander Duyck <alexander.duyck@gmail.com>
> Date: Mon, 4 Dec 2017 10:43:58 -0800
>
> > On Mon, Dec 4, 2017 at 10:23 AM, Michael Chan <michael.chan@broadco
> m.com> wrote:
> >> On Mon, Dec 4, 2017 at 8:47 AM, Alexander Duyck
> >> <alexander.duyck@gmail.com> wrote:
> >>> On Mon, Dec 4, 2017 at 3:12 AM, Michael Chan <michael.chan@broadc
> om.com> wrote:
> >>>> Introduce NETIF_F_GRO_HW feature flag for NICs that support
> hardware
> >>>> GRO. With this flag, we can now independently turn on or off
> hardware
> >>>> GRO when GRO is on. Hardware GRO guarantees that packets can be
> >>>> re-segmented by TSO/GSO to reconstruct the original packet
> stream.
> >>>>
> >>>> Cc: Ariel Elior <Ariel.Elior@cavium.com>
> >>>> Cc: everest-linux-l2@cavium.com
> >>>> Signed-off-by: Michael Chan <michael.chan@broadcom.com>
> >>>
> >>> Do we really need yet another feature bit for this? We already
> have
> >>> LRO and GRO and now we have to add something that isn't quite
> either
> >>> one?
> >>
> >> I think so, to be consistent with TSO/GSO on the transmit side.
> On
> >> the receive side, we have LRO/GRO_HW/GRO. There is difference
> between
> >> LRO/GRO_HW that we need to distinguish between the 2.
> >
> > I don't really see the difference. Your GRO_HW likely doens't do
> all
> > of the stuff GRO can do. Neither does LRO. Both occur in the
> hardware
> > normally. It would make sense to reuse the LRO flag for this
> instead
> > of coming up with a new feature flag that makes things confusing by
> > saying you are doing a software offload in hardware.
> >
> > I view LRO as a subset of what GRO can handle, that is performed in
> > hardware. From the stack perspective the only thing that really
> > matters is that the frames can be segmented back into what they
> were
> > before they were assembled. That is why I think it would be better
> to
> > add a flag indicating that the LRO is reversible instead of adding
> yet
> > another feature bit that the user has to toggle. That way if at
> some
> > point in the future an issue is found where your "GRO in hardware"
> > feature has a bug that isn't reversible it is just a matter of
> > clearing the privage flag bit and the mechanisms already in place
> for
> > dealing with assembly and routing can take over.
>
> I don't think they should use the LRO flag.
>
> If their HW GRO stream is fully reversible, which it is, then it's
> not
> LRO.
>
> LRO gets disabled when bridging or routing is enabled, and HW GRO
> should not take this penalty.
Also having separate flags means that one can decide to disable HW GRO
and enable (linux) GRO if he wants to. Or the opposite.
I definitely like this idea.
next prev parent reply other threads:[~2017-12-04 19:26 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-12-04 11:12 [PATCH net-next 0/4] Introduce NETIF_F_GRO_HW Michael Chan
2017-12-04 11:12 ` [PATCH net-next 1/4] net: " Michael Chan
2017-12-04 16:30 ` Or Gerlitz
2017-12-04 16:47 ` Alexander Duyck
2017-12-04 18:23 ` Michael Chan
2017-12-04 18:43 ` Alexander Duyck
2017-12-04 18:59 ` David Miller
2017-12-04 19:24 ` Alexander Duyck
2017-12-04 19:26 ` Eric Dumazet [this message]
2017-12-04 19:36 ` Alexander Duyck
2017-12-04 19:52 ` Michael Chan
2017-12-04 20:58 ` Alexander Duyck
2017-12-04 23:05 ` Michael Chan
2017-12-04 22:15 ` Yuval Mintz
2017-12-04 22:31 ` Michael Chan
2017-12-04 11:12 ` [PATCH net-next 2/4] bnxt_en: Use NETIF_F_GRO_HW Michael Chan
2017-12-04 16:35 ` Or Gerlitz
2017-12-04 18:11 ` Michael Chan
2017-12-04 21:06 ` Or Gerlitz
2017-12-04 22:00 ` Eric Dumazet
2017-12-05 0:07 ` Michael Chan
2017-12-05 18:10 ` Marcelo Ricardo Leitner
2017-12-06 21:04 ` Michael Chan
2017-12-04 11:12 ` [PATCH net-next 3/4] bnx2x: " Michael Chan
2017-12-04 11:12 ` [PATCH net-next 4/4] qede: " Michael Chan
2017-12-04 21:48 ` Yuval Mintz
2017-12-04 22:45 ` Michael Chan
2017-12-05 12:32 ` Chopra, Manish
2017-12-05 17:13 ` Michael Chan
2017-12-04 11:38 ` [PATCH net-next 0/4] Introduce NETIF_F_GRO_HW Elior, Ariel
2017-12-05 19:31 ` David Miller
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=1512415584.19682.60.camel@gmail.com \
--to=eric.dumazet@gmail.com \
--cc=Ariel.Elior@cavium.com \
--cc=alexander.duyck@gmail.com \
--cc=davem@davemloft.net \
--cc=everest-linux-l2@cavium.com \
--cc=michael.chan@broadcom.com \
--cc=netdev@vger.kernel.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.