On 2023-10-29 06:48, Gal Pressman wrote:
On 29/10/2023 14:42, Ahmed Zaki wrote:
On 2023-10-29 06:25, Gal Pressman wrote:
On 21/10/2023 3:00, Ahmed Zaki wrote:
On 2023-10-20 17:49, Jakub Kicinski wrote:
On Fri, 20 Oct 2023 17:14:11 -0600 Ahmed Zaki wrote:
I replied to that here:
https://lore.kernel.org/all/afb4a06f-cfba-47ba-adb3-09bea7cb5f00@xxxxxxxxx/
I am kind of confused now so please bear with me. ethtool either sends
"ethtool_rxfh" or "ethtool_rxnfc". AFAIK "ethtool_rxfh" is the
interface
for "ethtool -X" which is used to set the RSS algorithm. But we
kind of
agreed to go with "ethtool -U|-N" for symmetric-xor, and that uses
"ethtool_rxnfc" (as implemented in this series).
I have no strong preference. Sounds like Alex prefers to keep it closer
to algo, which is "ethtool_rxfh".
Do you mean use "ethtool_rxfh" instead of "ethtool_rxnfc"? how would
that work on the ethtool user interface?
I don't know what you're asking of us. If you find the code to
confusing
maybe someone at Intel can help you :|
The code is straightforward. I am confused by the requirements: don't
add a new algorithm but use "ethtool_rxfh".
I'll see if I can get more help, may be I am missing something.
What was the decision here?
Is this going to be exposed through ethtool -N or -X?
I am working on a new version that uses "ethtool_rxfh" to set the
symmetric-xor. The user will set per-device via:
ethtool -X eth0 hfunc toeplitz symmetric-xor
then specify the per-flow type RSS fields as usual:
ethtool -N|-U eth0 rx-flow-hash <flow_type> s|d|f|n
The downside is that all flow-types will have to be either symmetric or
asymmetric.
Why are we making the interface less flexible than it can be with -N?
Alexander Duyck prefers to implement the "symmetric-xor" interface as an
algorithm or extension (please refer to previous messages), but ethtool
does not provide flowtype/RSS fields setting via "-X". The above was the
best solution that we (at Intel) could think of.
Another solution would be to add a similar flowtype interface to "-X":
ethtool -X eth0 hfunc toeplitz [symmetric-xor rx-flow-hash <flow_type>]
which will allow the user to set "symmetric-xor" per flow-type. IMHO
such approach is confusing; consider if the user sets:
ethtool -X eth0 ALG-1 symmetric-xor rx-flow-hash tcp4
and then:
ethtool -X eth0 ALG-2
should we switch tcp4 to ALG-2? Also, just the idea of replicating
"rx-flow-hash" did not sound good overall to me.
Anyway, we thought that, if we are using "-X", then limiting all
flow-types to whatever is set with "-X" is cleaner and works best with
the current ethtool design. Any other suggestions are welcome of course.