** Description changed: + [ Impact ] + + Improve how s390 kernel discovers and organizes PCI devices, making it + more robust, predictable, and compatible with modern hardware and + virtualization scenarios. + + Previously, PCI functions were grouped based on firmware-provided order + and physical channel IDs (PCHIDs), leading to unstable device numbering + and incorrect grouping in complex setups. + + The new implementation explicitly sorts PCI functions by Requester ID + (RID) and uses Topology IDs (TIDs) to group multi-function devices, + ensuring deterministic and future-proof bus/domain creation. It fixes + SR-IOV behavior by properly grouping Physical Functions (PFs) and + Virtual Functions (VFs), allowing PFs initially in standby to form + shared domains and treating isolated VFs without a parent PF as + standalone devices. + + Parent PF detection has been refactored for consistency, and error + handling has been improved to prevent leaks and crashes when adding + devices dynamically. + + [ Fix ] + + Backport to Jammy the following commits: + 52c79e636a58da s390/pci: make better use of zpci_dbg() levels + 0467cdde8c4320 s390/pci: Sort PCI functions prior to creating virtual busses + 126034faaac5f3 s390/pci: Use topology ID for multi-function devices + fd1ae23b495b3a PCI: Prefer 'unsigned int' over bare 'unsigned' + c3df83e01a96ca PCI: Clean up pci_scan_slot() + fbed59ed8781d7 PCI: Split out next_ari_fn() from next_fn() + db360b1ea7faef PCI: Move jailhouse's isolated function handling to pci_scan_slot() + 189c6c33ff421d PCI: Extend isolated function probing to s390 + 960ac362648780 s390/pci: allow zPCI zbus without a function zero + 45e5f0c017e0d0 s390/pci: clean up left over special treatment for function zero + 25f39d3dcb48bb s390/pci: Ignore RID for isolated VFs + 48796104c864cf s390/pci: Fix leak of struct zpci_dev when zpci_add_device() fails + dc287e4c9149ab s390/pci: Fix SR-IOV for PFs initially in standby + 05793884a1f305 s390/pci: Pull search for parent PF out of zpci_iov_setup_virtfn() + 2844ddbd540fc8 s390/pci: Fix handling of isolated VFs + 8691abd3afaadd s390/pci: Fix zpci_bus_is_isolated_vf() for non-VFs + 42420c50c68f3e s390/pci: Fix missing check for zpci_create_device() error return + + [ Test Case ] + + Testing must be performed on an IBM z17 with Network Express adapters in + direct mode. + + Begin by attaching at least one adapter with two PFs, each mapped to a + separate port, and confirm that the kernel groups them correctly into + distinct domains without relying on PCHID ordering. + + Next, enable SR-IOV on each PF and verify that child VFs are discovered, + grouped with the correct PFs, and functional. Test with PFs initially in + standby to ensure that shared domains are created dynamically. Introduce + isolated VFs without a visible PF and confirm they enumerate as + standalone devices. + + Finally, perform hotplug and removal of both PFs and VFs, checking that + zpci_dev structures are cleaned up correctly without leaks or crashes. + + [ Regression Potential ] + + The patchset affects s390 PCI subsystem, in particular: + - device enumeration + - function grouping + - SR-IOV handling + An issue in this code may introduce problems such as incorrect grouping of PFs and VFs, unstable bus numbering, or failure to associate VFs with their parent PFs. + + [ Other Info ] + + The patchset has already been tested by IBM using the following PPA: + - https://launchpad.net/~mpellizzer/+archive/ubuntu/ibm-z + + --- + Description: PCHID per port toleration is required by the new IBM z17 machine. - This has already been included in Ubuntu 25.04 + This has already been included in Ubuntu 25.04 (see LP#2095480 : PCHID per Port Toleration). This toleration item is also needed in Noble and Jammy in order to support new hardware in both LTS releases.
-- 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/2119650 Title: [UBUNTU 22.04] PCHID per Port Toleration - IBM z17 Enablement Status in Ubuntu on IBM z Systems: In Progress Status in linux package in Ubuntu: Fix Committed Status in linux source package in Jammy: Triaged Status in linux source package in Noble: Fix Released Status in linux source package in Plucky: Fix Released Status in linux source package in Questing: Fix Committed Bug description: [ Impact ] Improve how s390 kernel discovers and organizes PCI devices, making it more robust, predictable, and compatible with modern hardware and virtualization scenarios. Previously, PCI functions were grouped based on firmware-provided order and physical channel IDs (PCHIDs), leading to unstable device numbering and incorrect grouping in complex setups. The new implementation explicitly sorts PCI functions by Requester ID (RID) and uses Topology IDs (TIDs) to group multi-function devices, ensuring deterministic and future-proof bus/domain creation. It fixes SR-IOV behavior by properly grouping Physical Functions (PFs) and Virtual Functions (VFs), allowing PFs initially in standby to form shared domains and treating isolated VFs without a parent PF as standalone devices. Parent PF detection has been refactored for consistency, and error handling has been improved to prevent leaks and crashes when adding devices dynamically. [ Fix ] Backport to Jammy the following commits: 52c79e636a58da s390/pci: make better use of zpci_dbg() levels 0467cdde8c4320 s390/pci: Sort PCI functions prior to creating virtual busses 126034faaac5f3 s390/pci: Use topology ID for multi-function devices fd1ae23b495b3a PCI: Prefer 'unsigned int' over bare 'unsigned' c3df83e01a96ca PCI: Clean up pci_scan_slot() fbed59ed8781d7 PCI: Split out next_ari_fn() from next_fn() db360b1ea7faef PCI: Move jailhouse's isolated function handling to pci_scan_slot() 189c6c33ff421d PCI: Extend isolated function probing to s390 960ac362648780 s390/pci: allow zPCI zbus without a function zero 45e5f0c017e0d0 s390/pci: clean up left over special treatment for function zero 25f39d3dcb48bb s390/pci: Ignore RID for isolated VFs 48796104c864cf s390/pci: Fix leak of struct zpci_dev when zpci_add_device() fails dc287e4c9149ab s390/pci: Fix SR-IOV for PFs initially in standby 05793884a1f305 s390/pci: Pull search for parent PF out of zpci_iov_setup_virtfn() 2844ddbd540fc8 s390/pci: Fix handling of isolated VFs 8691abd3afaadd s390/pci: Fix zpci_bus_is_isolated_vf() for non-VFs 42420c50c68f3e s390/pci: Fix missing check for zpci_create_device() error return [ Test Case ] Testing must be performed on an IBM z17 with Network Express adapters in direct mode. Begin by attaching at least one adapter with two PFs, each mapped to a separate port, and confirm that the kernel groups them correctly into distinct domains without relying on PCHID ordering. Next, enable SR-IOV on each PF and verify that child VFs are discovered, grouped with the correct PFs, and functional. Test with PFs initially in standby to ensure that shared domains are created dynamically. Introduce isolated VFs without a visible PF and confirm they enumerate as standalone devices. Finally, perform hotplug and removal of both PFs and VFs, checking that zpci_dev structures are cleaned up correctly without leaks or crashes. [ Regression Potential ] The patchset affects s390 PCI subsystem, in particular: - device enumeration - function grouping - SR-IOV handling An issue in this code may introduce problems such as incorrect grouping of PFs and VFs, unstable bus numbering, or failure to associate VFs with their parent PFs. [ Other Info ] The patchset has already been tested by IBM using the following PPA: - https://launchpad.net/~mpellizzer/+archive/ubuntu/ibm-z --- Description: PCHID per port toleration is required by the new IBM z17 machine. This has already been included in Ubuntu 25.04 (see LP#2095480 : PCHID per Port Toleration). This toleration item is also needed in Noble and Jammy in order to support new hardware in both LTS releases. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu-z-systems/+bug/2119650/+subscriptions -- Mailing list: https://launchpad.net/~kernel-packages Post to : [email protected] Unsubscribe : https://launchpad.net/~kernel-packages More help : https://help.launchpad.net/ListHelp

