On Tue, Dec 02, 2025 at 08:36:53PM +0400, Chris Li wrote:
On Tue, Dec 2, 2025 at 6:59 PM Jason Gunthorpe jgg@nvidia.com wrote:
The device is active during KHO, you CAN NOT do any resource reassignment, not bus numbers, not mmio. It must be fully disabled.
I agree with Jason. The bus number is used in the low level hardware to do the DMA transfer. The bus number can not change for a device during livedupate with pending DMA transfer. The BDF MUST remain the same as the liveupdate with DMA transfer requirement.
Thank you both for the explanation.
Another point is that, on the same machine it can have multiple PCI host bridges. Each PCI host bridge bus number is acquired from the ACPI table walk. I am not aware of any way to get the slot number of the PCI host bridge. Lukas, do you know how to get the PCI host bridge slot number to form a path?
Host bridges are identified by the segment number. On ACPI-based systems, it's retrieved by acpi_pci_root_add() through invocation of the _SEG method.
Thanks,
Lukas