[SRU][J/K][PATCH 0/1] Ice ethernet driver fails to alloc MSI-X on high cpu count systems

Luke Nowakowski-Krijger luke.nowakowskikrijger at canonical.com
Fri Apr 14 21:29:52 UTC 2023


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

SRU Justification:

[Impact]

There is a user reporting errors in setup with their Intel E810 NIC with
error messages saying that the driver cannot allocate enough MSI-X vectors
on their 256 cpu-count system. 

It seems the ICE ethernet driver has an all or nothing approach to
allocating MSI-X vectors and could request more MSI-X vectors than it
finds available, which could lead to the driver failing to initialize and
start.

[Fix]

The patch that fixes this allocates as many MSI-X vectors as it can to continue
functionality by reducing the number of requested MSI-X vectors if it does
not have enough to do full allocation.

[Backport]

In Jammy we do not carry patches for switchdev support in the driver so do not
allocate the switchdev MSI-X vector for it. Also in Jammy use the older
way of checking RDMA support by testing the RDMA bit is set as opposed to the newer
ice_is_rdma_ena that the patch uses.

[Test Plan]

Install and startup Ice driver with an Intel 800 series NIC and check that we
do not have the failure:

Not enough device MSI-X vectors, requested = 260, available = 253

and check that everything works as expected.

The backported patch for Jammy has been tested by the original user who
submited the bug report with their high cpu count system and confirmed no errors.

[Where problems could occur]

There could be problems with the logic of reducing the MSI-X vector
usage leading to more errors in the driver, but otherwise minimal 
regression potential as the code is mostly refactoring initial MSI-X
setup. 


Tony Nguyen (1):
  ice: Allow operation with reduced device MSI-X

 drivers/net/ethernet/intel/ice/ice_main.c | 185 ++++++++++++----------
 1 file changed, 100 insertions(+), 85 deletions(-)

-- 
2.34.1




More information about the kernel-team mailing list