[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250325122706.5287774d@kmaincent-XPS-13-7390>
Date: Tue, 25 Mar 2025 12:27:06 +0100
From: Kory Maincent <kory.maincent@...tlin.com>
To: Maxime Chevallier <maxime.chevallier@...tlin.com>
Cc: davem@...emloft.net, Andrew Lunn <andrew@...n.ch>, Jakub Kicinski
<kuba@...nel.org>, Eric Dumazet <edumazet@...gle.com>, Paolo Abeni
<pabeni@...hat.com>, Heiner Kallweit <hkallweit1@...il.com>,
netdev@...r.kernel.org, linux-kernel@...r.kernel.org,
thomas.petazzoni@...tlin.com, linux-arm-kernel@...ts.infradead.org,
Christophe Leroy <christophe.leroy@...roup.eu>, Herve Codina
<herve.codina@...tlin.com>, Florian Fainelli <f.fainelli@...il.com>,
Russell King <linux@...linux.org.uk>, Vladimir Oltean
<vladimir.oltean@....com>, Oleksij Rempel <o.rempel@...gutronix.de>, Simon
Horman <horms@...nel.org>, Romain Gantois <romain.gantois@...tlin.com>,
Piergiorgio Beruto <piergiorgio.beruto@...il.com>
Subject: Re: [PATCH net-next v4 2/8] net: ethtool: netlink: Allow
per-netdevice DUMP operations
On Mon, 24 Mar 2025 11:40:04 +0100
Maxime Chevallier <maxime.chevallier@...tlin.com> wrote:
> We have a number of netlink commands in the ethnl family that may have
> multiple objects to dump even for a single net_device, including :
>
> - PLCA, PSE-PD, phy: one message per PHY device
> - tsinfo: one message per timestamp source (netdev + phys)
> - rss: One per RSS context
>
> To get this behaviour, these netlink commands need to roll a custom
> ->dumpit().
>
> To prepare making per-netdev DUMP more generic in ethnl, introduce a
> member in the ethnl ops to indicate if a given command may allow
> pernetdev DUMPs (also referred to as filtered DUMPs).
...
> +
> /* generic ->start() handler for GET requests */
> static int ethnl_default_start(struct netlink_callback *cb)
> {
> @@ -636,10 +659,10 @@ static int ethnl_default_start(struct netlink_callback
> *cb) }
>
> ret = ethnl_default_parse(req_info, &info->info, ops, false);
> - if (req_info->dev) {
> - /* We ignore device specification in dump requests but as the
> - * same parser as for non-dump (doit) requests is used, it
> - * would take reference to the device if it finds one
> + if (req_info->dev && !ops->allow_pernetdev_dump) {
> + /* We ignore device specification in unfiltered dump requests
> + * but as the same parser as for non-dump (doit) requests is
> + * used, it would take reference to the device if it finds
This means the dump will have a different behavior in case of filtered dump
(allow_pernetdev_dump) or standard dump.
The standard dump will drop the interface device so it will dump all interfaces
even if one is specified.
The filtered dump will dump only the specified interface.
Maybe it would be nice to have the same behavior for the dump for all the
ethtool command.
Even if this change modify the behavior of the dump for all the ethtool commands
it won't be an issue as the filtered dump did not exist before, so I suppose it
won't break anything. IMHO it is safer to do it now than later, if existing
ethtool command adds support for filtered dump.
We should find another way to know the parser is called from dump or doit.
Regards,
--
Köry Maincent, Bootlin
Embedded Linux and kernel engineering
https://bootlin.com
Powered by blists - more mailing lists