Re: [net 0/2] rxfh with custom RSS fixes

From: Edward Cree
Date: Mon Jul 24 2023 - 15:27:51 EST


On 23/07/2023 16:06, Joe Damato wrote:
> Greetings:
>
> While attempting to get the RX flow hash key for a custom RSS context on
> my mlx5 NIC, I got an error:
>
> $ sudo ethtool -u eth1 rx-flow-hash tcp4 context 1
> Cannot get RX network flow hashing options: Invalid argument
>
> I dug into this a bit and noticed two things:
>
> 1. ETHTOOL_GRXFH supports custom RSS contexts, but ETHTOOL_SRXFH does
> not. I moved the copy logic out of ETHTOOL_GRXFH and into a helper so
> that both ETHTOOL_{G,S}RXFH now call it, which fixes ETHTOOL_SRXFH. This
> is patch 1/2.

As I see it, this is a new feature, not a fix, so belongs on net-next.
(No existing driver accepts FLOW_RSS in ETHTOOL_SRXFH's cmd->flow_type,
which is just as well as if they did this would be a uABI break.)

Going forward, ETHTOOL_SRXFH will hopefully be integrated into the new
RSS context kAPI I'm working on[1], so that we can have a new netlink
uAPI for RSS configuration that's all in one place instead of the
piecemeal-grown ethtool API with its backwards-compatible hacks.
But that will take a while, so I think this should go in even though
it's technically an extension to legacy ethtool; it was part of the
documented uAPI and userland implements it, it just never got
implemented on the kernel side (because the initial driver with
context support, sfc, didn't support SRXFH).

> 2. mlx5 defaulted to RSS context 0 for both ETHTOOL_{G,S}RXFH paths. I
> have modified the driver to support custom contexts for both paths. It
> is now possible to get and set the flow hash key for custom RSS contexts
> with mlx5. This is patch 2/2.

My feeling would be that this isn't a Fix either, but not my place to say.

-ed

[1]: https://lore.kernel.org/netdev/ecaae93a-d41d-4c3d-8e52-2800baa7080d@xxxxxxx/T/