The sfc driver module parameter rss_numa_local
will restrict RSS to only use CPU cores or hypterthreads (if hyperthreading is enabled) on the NUMA node local to the network adapter.
rss_numa_local
does NOT restrict the number of RSS channels created by the driver – it instead works by restricting the RSS spreading so only the channels on the local NUMA node will receive kernel driver traffic.
In the default case (where rss_cpus=cores
), one RSS channel is created per CPU core. However, the driver adjusts the RSS settings such that only the RSS channels affinitized to the local CPU socket receive traffic. It therefore has no effect on the Onload allocation and use of receive queues and interrupts.
The following figure identifies the receive queue interrupts spread when rss_cpus=4
and rss_numa_local=1
. In this machine adapter 1 is attached to the PCIe bus on socket #0 with adapter #2 attached to the PCIe bus on socket #1.