
On an ARM64 system with a SMMUv3 implementation that fully supports Broadcast TLB Maintenance(BTM) feature as part of the Distributed Virtual Memory(DVM) protocol, the CPU TLB invalidate instructions are received by SMMUv3. This is very useful when the SMMUv3 shares the page tables with the CPU(eg: Guest SVA use case). For this to work, the SMMUv3 must use the same VMID that is allocated by KVM to configure the nested stage 2(S2) translations. Jean-Philippe Brucker (1): iommu/arm-smmu-v3: Enable broadcast TLB maintenance Kunkun Jiang (1): vfio: Fix kabi breakage due to closing VFIO_CONTAINER Shameer Kolothum (6): KVM: Add generic infrastructure to support pinned VMIDs KVM: arm64: Introduce support to pin VMIDs KVM: arm64: Add interfaces for pinned VMID support iommufd: Associate kvm pointer to iommufd ctx iommu: Pass in kvm pointer to domain_alloc_user iommu/arm-smmu-v3: Use KVM VMID for s2 stage arch/arm64/include/asm/kvm_host.h | 3 + arch/arm64/kvm/Kconfig | 1 + arch/arm64/kvm/arm.c | 14 ++++ arch/arm64/kvm/vmid.c | 84 ++++++++++++++++++++- drivers/iommu/amd/iommu.c | 1 + drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 46 +++++++++-- drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h | 1 + drivers/iommu/intel/iommu.c | 1 + drivers/iommu/iommufd/hw_pagetable.c | 5 +- drivers/iommu/iommufd/iommufd_private.h | 3 + drivers/iommu/iommufd/main.c | 14 ++++ drivers/iommu/iommufd/selftest.c | 1 + drivers/vfio/device_cdev.c | 3 + drivers/vfio/vfio.h | 2 + include/linux/iommu.h | 9 ++- include/linux/iommufd.h | 7 ++ include/linux/kvm_host.h | 18 +++++ virt/kvm/Kconfig | 3 + virt/kvm/kvm_main.c | 23 ++++++ 19 files changed, 225 insertions(+), 14 deletions(-) -- 2.33.0