Re: [PATCH v3 20/22] iommu/amd: Reserve translate-device-id for PCI requestor aliases
From: Suthikulpanit, Suravee
Date: Tue Jul 21 2026 - 05:43:17 EST
On 7/7/2026 9:39 PM, Jason Gunthorpe wrote:
On Mon, Jun 29, 2026 at 03:35:33PM +0000, Suravee Suthikulpanit wrote:
The per-segment translate-device-id (trans_devid) pool hands out numeric
device-table indices used by the AMD vIOMMU / iommufd path (e.g. mapping a
KVM file descriptor to a shared trans_devid).
Nothing to do with kvm
Noted. I'll update this in v4.
Introduce amd_iommu_trans_devid_reserve_pci_aliases() in trans_devid.c and
invoke it from amd_iommu_attach_device() immediately after the primary
amd_iommu_trans_devid_reserve() succeeds. For PCI devices the helper
reserves the IVRS alias when it differs from the device BDF, then walks
pci_for_each_dma_alias() and reserves each alias BDF. Repeated attach and
overlap with the primary BDF in the PCI walk are handled by the existing
idempotency of amd_iommu_trans_devid_reserve() (a second reserve of an
already-reserved id succeeds).
It would be so nice if the AMD driver could get fixed up to work more
like ARM with the alais devids.
ie on probe you allocate an array of all the alias dev ids, fill it in
with the information from PCI and then never touch the PCI again.
Then you'd just dump the whole array into the allocator in one clean
shot and this would all be simpler.
Instead we have these endless pci walks every where :\
But its fine like this I suppose
I agree. Let me look into this in following this series, and propose change.
Thanks,
Suravee