[Impact]
Transmit packet steering (xps) settings don't work when
the number of queues (cpus) is higher than 64. This is
currently still an issue on the 4.15 kernel (Xenial -hwe
and Bionic kernels).
It was fixed in Intel's i40e driver version 2.7.11 and
in 4.16-rc1 mainline Linux (i.e. Cosmic, Disco have fix).
Fix
-----
The following commit fixes this issue (as identified
by Lihong Yang in discussion with Intel i40e team):
"i40e: Fix the number of queues available to be mapped for use"
Commit: bc6d33c8d93f5999920e97a8c6330b8910053d4f
[Test Case]
1. Kernel version: Bionic/Xenial -hwe: any 4.15 kernel
i40e driver version: 2.1.14-k
Any system with > 64 CPUs
[Impact]
Transmit packet steering (xps) settings don't work when
the number of queues (cpus) is higher than 64. This is
currently still an issue on the 4.15 kernel (Xenial -hwe
and Bionic kernels).
It was fixed in Intel's i40e driver version 2.7.11 and
in 4.16-rc1 mainline Linux (i.e. Cosmic, Disco have fix).
Fix
-----
The following commit fixes this issue (as identified
by Lihong Yang in discussion with Intel i40e team):
"i40e: Fix the number of queues available to be mapped for use" 9920e97a8c6330b 8910053d4f
Commit: bc6d33c8d93f599
[Test Case]
1. Kernel version: Bionic/Xenial -hwe: any 4.15 kernel
i40e driver version: 2.1.14-k
Any system with > 64 CPUs
2. For any queue 0 - 63, you can read/set tx xps:
echo ffffffff > /sys/class/ net/eth2/ queues/ tx-63/xps_ cpus net/eth2/ queues/ tx-63/xps_ cpus ffffffff
echo $?
0
cat /sys/class/
00,00000000,
But for any queue number > 63, we see this error:
echo ffffffff > /sys/class/ net/eth2/ queues/ tx-64/xps_ cpus
echo: write error: Invalid argument
cat /sys/class/ net/eth2/ queues/ tx-64/xps_ cpus net/eth2/ queues/ tx-64/xps_ cpus: Invalid argument
cat: /sys/class/