net: RPS: Enable hardware acceleration of RFS
authorBen Hutchings <bhutchings@solarflare.com>
Wed, 19 Jan 2011 11:03:53 +0000 (11:03 +0000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 24 Jan 2011 22:53:01 +0000 (14:53 -0800)
commitc445477d74ab3779d1386ab797fbb9b628eb9f64
tree3ee70b7748c6c63a688f367e5ffd83fde21b87e3
parentc39649c331c70952700f99832b03f87e9d7f5b4b
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 <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/netdevice.h
net/Kconfig
net/core/dev.c