From: Liping Zhang <zlpnob...@gmail.com> On our 4-core system, sometimes I can enable all CPUs to process packets. But sometimes I can't, if all the CPUs become offline except core 0, I will get the following result, which is really annoying for my script: # echo f > /sys/class/net/eth0/queues/rx-0/rps_cpus # cat /sys/class/net/eth0/queues/rx-0/rps_cpus 1
Since we won't steer the packets to these offline cpus, it's reasonable to enable all configed cpus to the rps_map, even if they are offline for the time being. Signed-off-by: Liping Zhang <zlpnob...@gmail.com> --- net/core/net-sysfs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/core/net-sysfs.c b/net/core/net-sysfs.c index 65ea0ff..8adb36d 100644 --- a/net/core/net-sysfs.c +++ b/net/core/net-sysfs.c @@ -731,7 +731,7 @@ static ssize_t store_rps_map(struct netdev_rx_queue *queue, } i = 0; - for_each_cpu_and(cpu, mask, cpu_online_mask) + for_each_cpu_and(cpu, mask, cpu_possible_mask) map->cpus[i++] = cpu; if (i) -- 2.9.3