From: Sabrina Dubroca <sd@queasysnail.net>
To: Paolo Abeni <pabeni@redhat.com>
Cc: Hangbin Liu <liuhangbin@gmail.com>,
netdev@vger.kernel.org, Jay Vosburgh <jv@jvosburgh.net>,
Andrew Lunn <andrew+netdev@lunn.ch>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Jiri Pirko <jiri@resnulli.us>,
Simon Horman <horms@kernel.org>, Ido Schimmel <idosch@nvidia.com>,
Shuah Khan <shuah@kernel.org>,
Stanislav Fomichev <sdf@fomichev.me>,
Stanislav Fomichev <stfomichev@gmail.com>,
Kuniyuki Iwashima <kuniyu@google.com>,
Alexander Lobakin <aleksander.lobakin@intel.com>,
bridge@lists.linux.dev
Subject: Re: [PATCHv6 net-next 1/4] net: add a common function to compute features for upper devices
Date: Tue, 21 Oct 2025 18:52:51 +0200 [thread overview]
Message-ID: <aPe6Y86R0vqc3a-R@krikkit> (raw)
In-Reply-To: <a2e85a2b-58b0-4460-ae7a-b1ea01e4d7e4@redhat.com>
2025-10-21, 10:46:22 +0200, Paolo Abeni wrote:
> On 10/20/25 11:10 AM, Sabrina Dubroca wrote:
> > 2025-10-17, 03:41:52 +0000, Hangbin Liu wrote:
> >> Some high level software drivers need to compute features from lower
> >> devices. But each has their own implementations and may lost some
> >> feature compute. Let's use one common function to compute features
> >> for kinds of these devices.
> >>
> >> The new helper uses the current bond implementation as the reference
> >> one, as the latter already handles all the relevant aspects: netdev
> >> features, TSO limits and dst retention.
> >>
> >> Suggested-by: Paolo Abeni <pabeni@redhat.com>
> >> Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
> >
> > No objection to this patch/series, just a nit and some discussion below, so:
> >
> > Reviewed-by: Sabrina Dubroca <sd@queasysnail.net>
> >
> >
> > [...]
> >> +/**
> >> + * netdev_compute_master_upper_features - compute feature from lowers
> >
> > nit: I'm slightly annoyed (that's not quite the right word, sorry)
> > that we're adding a new function to "compute features" that doesn't
> > touch netdev->features, but I can't come up with a better name
> > (the best I got was "compute extra features" and it doesn't help).
>
> I'm not the right person to ask a good name, and I'm ok with the current
> one, but since the question is pending... what about:
>
> netdev_{compute,update}_offloads_from_lower()
>
> ?
>
> As it actually updates (some of) the offloads available to the (upper)
> device?
(and the DST_RELEASE flags. at least the tso_max_* kind of fits into "offloads")
I think we can keep the current name. It's more "it kind of bothers
the pedantic part of me" than "annoyed", and we can't find a better
name, so let's ignore the pedantic part. Sorry for the noise.
> >> + * @dev: the upper device
> >> + * @update_header: whether to update upper device's header_len/headroom/tailroom
> >> + *
> >> + * Recompute the upper device's feature based on all lower devices.
> >> + */
> >> +void netdev_compute_master_upper_features(struct net_device *dev, bool update_header)
> >> +{
> > [...]
> >> + netif_set_tso_max_segs(dev, tso_max_segs);
> >> + netif_set_tso_max_size(dev, tso_max_size);
> >> +
> >> + netdev_change_features(dev);
> >
> > Maybe a dumb idea: I'm wondering if we're doing this from the wrong
> > side.
> >
> > Right now we have:
> >
> > [some device op] -> [this new function] -> netdev_change_features -> __netdev_update_features -> ndo_fix_features
> >
> > Would it make more sense to go instead:
> >
> > [some device op] -> netdev_change_features -> __netdev_update_features -> ndo_fix_features -> [this new function]
> >
> > ?
>
> Uhmmm.... this function touches a few more things beyond dev->*features,
> calling it from ndo_fix_features() looks a bit out-of-scope.
True. And as Hangbin said, it's setting (so a bit more "update" than
"compute", as you wrote above) values whereas ndo_fix_features is just
returning a value.
So if we wanted to have this done by netdev_change_features, we'd
probably need a new ndo, or some kind of flag to tell
__netdev_update_features that this device needs the new function
called. Well, we have netif_is_bridge_master, netif_is_team_master,
netif_is_bond_master. But at this stage we don't know if update_header
should be true/false. So ndo would be cleaner, but a lot
heavier... it's probably not worth all this mess.
--
Sabrina
next prev parent reply other threads:[~2025-10-21 16:52 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-10-17 3:41 [PATCHv6 net-next 0/4] net: common feature compute for upper interface Hangbin Liu
2025-10-17 3:41 ` [PATCHv6 net-next 1/4] net: add a common function to compute features for upper devices Hangbin Liu
2025-10-20 9:10 ` Sabrina Dubroca
2025-10-21 4:03 ` Hangbin Liu
2025-10-21 8:46 ` Paolo Abeni
2025-10-21 10:05 ` Hangbin Liu
2025-10-21 16:52 ` Sabrina Dubroca [this message]
2025-10-17 3:41 ` [PATCHv6 net-next 2/4] bonding: use common function to compute the features Hangbin Liu
2025-10-20 9:10 ` Sabrina Dubroca
2025-10-17 3:41 ` [PATCHv6 net-next 3/4] team: " Hangbin Liu
2025-10-20 9:11 ` Sabrina Dubroca
2025-10-17 3:41 ` [PATCHv6 net-next 4/4] net: bridge: " Hangbin Liu
2025-10-20 9:17 ` Sabrina Dubroca
2025-10-17 9:58 ` [PATCHv6 net-next 0/4] net: common feature compute for upper interface Jiri Pirko
2025-10-22 1:30 ` patchwork-bot+netdevbpf
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=aPe6Y86R0vqc3a-R@krikkit \
--to=sd@queasysnail.net \
--cc=aleksander.lobakin@intel.com \
--cc=andrew+netdev@lunn.ch \
--cc=bridge@lists.linux.dev \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=horms@kernel.org \
--cc=idosch@nvidia.com \
--cc=jiri@resnulli.us \
--cc=jv@jvosburgh.net \
--cc=kuba@kernel.org \
--cc=kuniyu@google.com \
--cc=liuhangbin@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=sdf@fomichev.me \
--cc=shuah@kernel.org \
--cc=stfomichev@gmail.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 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.