** Description changed: - System Configuration - OS: Ubuntu 22.04 LTS - Kernel: 5.15.0-25-generic - CPUs: 256 - NIC: Intel E810 NIC with 512 MSIx vectors each function + 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. + ---------------------------------- + + System Configuration + OS: Ubuntu 22.04 LTS + Kernel: 5.15.0-25-generic + CPUs: 256 + NIC: Intel E810 NIC with 512 MSIx vectors each function + Errors - Not enough device MSI-X vectors, requested = 260, available = 253 - + Not enough device MSI-X vectors, requested = 260, available = 253 Findings - (1) the current ice kernel driver (ice_main.c) will pre-allocate all required number of msix (even it's not enough for big core CPUs) - (2) the commit https://github.com/torvalds/linux/commit/ce4626131112e1d0066a890371e14d8091323f99 has improved this logic, and it seems merged into kernel version from v6.1 + (1) the current ice kernel driver (ice_main.c) will pre-allocate all required number of msix (even it's not enough for big core CPUs) + (2) the commit https://github.com/torvalds/linux/commit/ce4626131112e1d0066a890371e14d8091323f99 has improved this logic, and it seems merged into kernel version from v6.1 - - So for supporting the new CPUs with more than 252 vCPUs, will Ubuntu kernel backport above patch to the current kernel (v5.15) ? + So for supporting the new CPUs with more than 252 vCPUs, will Ubuntu + kernel backport above patch to the current kernel (v5.15) ?
-- You received this bug notification because you are a member of Kernel Packages, which is subscribed to linux in Ubuntu. https://bugs.launchpad.net/bugs/2012335 Title: Ubuntu 22.04 raise abnormal NIC MSI-X requests with larger CPU cores (256) Status in linux package in Ubuntu: Fix Released Status in linux source package in Jammy: In Progress Status in linux source package in Kinetic: In Progress Bug description: 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. ---------------------------------- System Configuration OS: Ubuntu 22.04 LTS Kernel: 5.15.0-25-generic CPUs: 256 NIC: Intel E810 NIC with 512 MSIx vectors each function Errors Not enough device MSI-X vectors, requested = 260, available = 253 Findings (1) the current ice kernel driver (ice_main.c) will pre-allocate all required number of msix (even it's not enough for big core CPUs) (2) the commit https://github.com/torvalds/linux/commit/ce4626131112e1d0066a890371e14d8091323f99 has improved this logic, and it seems merged into kernel version from v6.1 So for supporting the new CPUs with more than 252 vCPUs, will Ubuntu kernel backport above patch to the current kernel (v5.15) ? To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2012335/+subscriptions -- Mailing list: https://launchpad.net/~kernel-packages Post to : kernel-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~kernel-packages More help : https://help.launchpad.net/ListHelp