Hello,
The aim of the series is to reduce boot time setup of IOMMU page tables
for dom0.
The first patch is completely unrelated leftover work from XSA-445, just
included in the series because it's IOMMU code.
Second and third patches are a pre-req, as further patches can end up
attempting to create maps above the max RAM address, and hence without
properly setting the IOMMU page tables levels those attempts to map
would fail.
Last 4 patches rework the hardware domain IOMMU setup to use a rangeset
instead of iterating over all addresses up to the max RAM page. See
patch 6/7 for performance figures.
Thanks, Roger.
Roger Pau Monne (7):
iommu/vt-d: do not assume page table levels for quarantine domain
x86/p2m: move and rename paging_max_paddr_bits()
amd-vi: set IOMMU page table levels based on guest reported paddr
width
x86/iommu: introduce a rangeset to perform hwdom IOMMU setup
x86/iommu: remove regions not to be mapped
x86/iommu: switch hwdom IOMMU to use a rangeset
x86/iommu: cleanup unused functions
xen/arch/x86/cpu-policy.c | 2 +-
xen/arch/x86/domain.c | 21 ++
xen/arch/x86/hvm/io.c | 15 +-
xen/arch/x86/include/asm/domain.h | 3 +
xen/arch/x86/include/asm/hvm/io.h | 4 +-
xen/arch/x86/include/asm/paging.h | 22 --
xen/arch/x86/include/asm/setup.h | 2 +-
xen/arch/x86/setup.c | 81 +++---
xen/arch/x86/tboot.c | 2 +-
xen/drivers/passthrough/amd/pci_amd_iommu.c | 20 +-
xen/drivers/passthrough/vtd/iommu.c | 2 +-
xen/drivers/passthrough/x86/iommu.c | 277 +++++++++++++-------
12 files changed, 269 insertions(+), 182 deletions(-)
--
2.43.0