diff options
| author | Eric Dumazet <[email protected]> | 2025-03-21 17:13:09 +0000 |
|---|---|---|
| committer | Jakub Kicinski <[email protected]> | 2025-03-25 15:24:13 +0000 |
| commit | f3483c8e1da62993fe0f57af23b925de7661adaa (patch) | |
| tree | 3d864c054b3ebe3c8eecda735e3b235851214994 /tools/testing/selftests/net/lib/py/netns.py | |
| parent | Merge tag 'wireless-next-2025-03-20' of https://git.kernel.org/pub/scm/linux/... (diff) | |
| download | kernel-f3483c8e1da62993fe0f57af23b925de7661adaa.tar.gz kernel-f3483c8e1da62993fe0f57af23b925de7661adaa.zip | |
net: rfs: hash function change
RFS is using two kinds of hash tables.
First one is controlled by /proc/sys/net/core/rps_sock_flow_entries = 2^N
and using the N low order bits of the l4 hash is good enough.
Then each RX queue has its own hash table, controlled by
/sys/class/net/eth1/queues/rx-$q/rps_flow_cnt = 2^X
Current hash function, using the X low order bits is suboptimal,
because RSS is usually using Func(hash) = (hash % power_of_two);
For example, with 32 RX queues, 6 low order bits have no entropy
for a given queue.
Switch this hash function to hash_32(hash, log) to increase
chances to use all possible slots and reduce collisions.
Signed-off-by: Eric Dumazet <[email protected]>
Cc: Tom Herbert <[email protected]>
Reviewed-by: Simon Horman <[email protected]>
Link: https://patch.msgid.link/[email protected]
Signed-off-by: Jakub Kicinski <[email protected]>
Diffstat (limited to 'tools/testing/selftests/net/lib/py/netns.py')
0 files changed, 0 insertions, 0 deletions
