On Sat, Nov 29, 2025 at 7:51 PM Jason Gunthorpe jgg@nvidia.com wrote:
On Sat, Nov 29, 2025 at 11:34:49AM +0100, Lukas Wunner wrote:
On Wed, Nov 26, 2025 at 07:35:49PM +0000, David Matlack wrote:
Add an API to enable the PCI subsystem to track all devices that are preserved across a Live Update, including both incoming devices (passed from the previous kernel) and outgoing devices (passed to the next kernel).
Use PCI segment number and BDF to keep track of devices across Live Update. This means the kernel must keep both identifiers constant across a Live Update for any preserved device.
While bus numbers will *usually* stay the same across next and previous kernel, there are exceptions. E.g. if "pci=assign-busses" is specified on the command line, the kernel will re-assign bus numbers on every boot.
Stuff like this has to be disabled for this live update stuff, if the bus numbers are changed it will break the active use of the iommu across the kexec.
So while what you say is all technically true, I'm not sure this is necessary.
I agree. However, Lukas's comment made me wonder about the future: if we eventually need to preserve non-PCI devices (like a TPM), should we be designing a common identification mechanism for all buses now? Or should we settle on BDF for PCI and invent stable identifiers for other bus types as they become necessary?
Pasha
Jason