Tested this series of patches v3 with virtio-net regression tests, everything works fine.
Tested-by: Lei Yang <[email protected]> On Mon, Sep 15, 2025 at 6:47 PM Breno Leitao <[email protected]> wrote: > > This patchset introduces a new dedicated ethtool_ops callback, > .get_rx_ring_count, which enables drivers to provide the number of RX > rings directly, improving efficiency and clarity in RX ring queries and > RSS configuration. > > Number of drivers implements .get_rxnfc callback just to report the ring > count, so, having a proper callback makes sense and simplify .get_rxnfc > (in some cases remove it completely). > > This has been suggested by Jakub, and follow the same idea as RXFH > driver callbacks [1]. > > This also port virtio_net to this new callback. Once there is consensus > on this approach, I can start moving the drivers to this new callback. > > Link: https://lore.kernel.org/all/[email protected]/ > [1] > > Suggested-by: Jakub Kicinski <[email protected]> > Signed-off-by: Breno Leitao <[email protected]> > Tested-by: Lei Yang <[email protected]> > --- > Changes in v3: > - Make ethtool_get_rx_ring_count() non static and use it in > rss_set_prep_indir() > - Check return function of ethtool_get_rx_ring_count() in > ethtool_get_rx_ring_count() (Jakub) > - Link to v2: > https://lore.kernel.org/r/[email protected] > > Changes in v2: > - rename get_num_rxrings() to ethtool_get_rx_ring_count() (Jakub) > - initialize struct ethtool_rxnfc() (Jakub) > - Link to v1: > https://lore.kernel.org/r/[email protected] > --- > Changes v1 from RFC: > - Renaming and changing the return type of .get_rxrings() callback (Jakub) > - Add the docstring format for the new callback (Simon) > - Remove the unecessary WARN_ONCE() (Jakub) > - Link to RFC: > https://lore.kernel.org/r/[email protected] > > --- > Breno Leitao (8): > net: ethtool: pass the num of RX rings directly to > ethtool_copy_validate_indir > net: ethtool: add support for ETHTOOL_GRXRINGS ioctl > net: ethtool: remove the duplicated handling from ethtool_get_rxrings > net: ethtool: add get_rx_ring_count callback to optimize RX ring queries > net: ethtool: update set_rxfh to use ethtool_get_rx_ring_count helper > net: ethtool: update set_rxfh_indir to use ethtool_get_rx_ring_count > helper > net: ethtool: use the new helper in rss_set_prep_indir() > net: virtio_net: add get_rxrings ethtool callback for RX ring queries > > drivers/net/virtio_net.c | 15 ++------- > include/linux/ethtool.h | 2 ++ > net/ethtool/common.h | 2 ++ > net/ethtool/ioctl.c | 88 > ++++++++++++++++++++++++++++++++++++++---------- > net/ethtool/rss.c | 15 ++++----- > 5 files changed, 84 insertions(+), 38 deletions(-) > --- > base-commit: 5b5ba63a54cc7cb050fa734dbf495ffd63f9cbf7 > change-id: 20250905-gxrings-a2ec22ee2aec > > Best regards, > -- > Breno Leitao <[email protected]> >

