net: RPS: Enable hardware acceleration of RFS

Allow drivers for multiqueue hardware with flow filter tables to
accelerate RFS.  The driver must:

1. Set net_device::rx_cpu_rmap to a cpu_rmap of the RX completion
IRQs (in queue order).  This will provide a mapping from CPUs to the
queues for which completions are handled nearest to them.

2. Implement net_device_ops::ndo_rx_flow_steer.  This operation adds
or replaces a filter steering the given flow to the given RX queue, if
possible.

3. Periodically remove filters for which rps_may_expire_flow() returns
true.

Signed-off-by: Ben Hutchings <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
This commit is contained in:
Ben Hutchings 2011-01-19 11:03:53 +00:00 • committed by David S. Miller
commit c445477d74
3 changed files with 127 additions and 9 deletions

View file

@ -221,6 +221,12 @@ config RPS
depends on SMP && SYSFS && USE_GENERIC_SMP_HELPERS
default y
config RFS_ACCEL
boolean
depends on RPS && GENERIC_HARDIRQS
select CPU_RMAP
default y
config XPS
boolean
depends on SMP && SYSFS && USE_GENERIC_SMP_HELPERS