On Tue, Mar 04, 2025 at 02:17:15PM +0000, Suravee Suthikulpanit wrote: > Current amd-iommu model internally creates an AMDVI-PCI device. Here is > a snippet from info qtree: > > bus: main-system-bus > type System > dev: amd-iommu, id "" > xtsup = false > pci-id = "" > intremap = "on" > device-iotlb = false > pt = true > ... > dev: q35-pcihost, id "" > MCFG = -1 (0xffffffffffffffff) > pci-hole64-size = 34359738368 (32 GiB) > below-4g-mem-size = 134217728 (128 MiB) > above-4g-mem-size = 0 (0 B) > smm-ranges = true > x-pci-hole64-fix = true > x-config-reg-migration-enabled = true > bypass-iommu = false > bus: pcie.0 > type PCIE > dev: AMDVI-PCI, id "" > addr = 01.0 > romfile = "" > romsize = 4294967295 (0xffffffff) > rombar = -1 (0xffffffffffffffff) > multifunction = false > x-pcie-lnksta-dllla = true > x-pcie-extcap-init = true > failover_pair_id = "" > acpi-index = 0 (0x0) > x-pcie-err-unc-mask = true > x-pcie-ari-nextfn-1 = false > x-max-bounce-buffer-size = 4096 (4 KiB) > x-pcie-ext-tag = true > busnr = 0 (0x0) > class Class 0806, addr 00:01.0, pci id 1022:0000 (sub 1af4:1100) > ... > > This prohibits users from specifying the PCI topology for the amd-iommu > device, > which becomes a problem when trying to support VM migration since it does not > guarantee the same enumeration of AMD IOMMU device. > > Therfore, decouple the AMDVI-PCI from amd-iommu device and introduce pci-id > parameter to link between the two devices.
Suggest slightly rewording to make it clear this new approach is opt-in: Therefore, allow the 'AMDVI-PCI' device to optionally be pre-created and associated with a 'amd-iommu' device via a new 'pci-id' parameter on the latter. > > For example: > -device AMDVI-PCI,id=iommupci0,bus=pcie.0,addr=0x05 \ > -device amd-iommu,intremap=on,pt=on,xtsup=on,pci-id=iommupci0 \ > > For backward-compatibility, internally create the AMDVI-PCI device if not > specified on the CLI. > > Co-developed-by: Daniel P. Berrangé <berra...@redhat.com> > Signed-off-by: Suravee Suthikulpanit <suravee.suthikulpa...@amd.com> > --- > hw/i386/acpi-build.c | 8 +++---- > hw/i386/amd_iommu.c | 52 +++++++++++++++++++++++++++----------------- > hw/i386/amd_iommu.h | 3 ++- > 3 files changed, 38 insertions(+), 25 deletions(-) Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|