mbox series

[v2,0/6] x86/iommu: improve setup time of hwdom IOMMU

Message ID 20231204094305.59267-1-roger.pau@citrix.com (mailing list archive)
Headers show
Series x86/iommu: improve setup time of hwdom IOMMU | expand

Message

Roger Pau Monne Dec. 4, 2023, 9:42 a.m. UTC
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 patch is 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 5/6 for performance figures.

Thanks, Roger.

Roger Pau Monne (6):
  iommu/vt-d: do not assume page table levels for quarantine domain
  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/hvm/io.c                       |  16 ++
 xen/arch/x86/include/asm/hvm/io.h           |   4 +-
 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         | 279 +++++++++++++-------
 8 files changed, 248 insertions(+), 158 deletions(-)