[PATCH 0/2][SRU][B] i40e: xps management broken when > 64 queues/cpus

Nivedita Singhvi nivedita.singhvi at canonical.com
Tue Mar 26 08:30:46 UTC 2019


BugLink: https://bugs.launchpad.net/bugs/1820948

[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

It requires the following commit as well: 

i40e: Do not allow use more TC queue pairs than MSI-X vectors exist
Commit:	1563f2d2e01242f05dd523ffd56fe104bc1afd58


[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
echo $?
0
cat /sys/class/net/eth2/queues/tx-63/xps_cpus
00,00000000,ffffffff

  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
cat: /sys/class/net/eth2/queues/tx-64/xps_cpus: Invalid argument


Amritha Nambiar (1):
  i40e: Fix the number of queues available to be mapped for use

Paweł Jabłoński (1):
  i40e: Do not allow use more TC queue pairs than MSI-X vectors exist

 drivers/net/ethernet/intel/i40e/i40e_main.c | 29 ++++++++++++---------
 1 file changed, 17 insertions(+), 12 deletions(-)

-- 
2.17.1




More information about the kernel-team mailing list