[PATCH v4 0/6] x86/iommu: improve setup time of hwdom IOMMU

Roger Pau Monne posted 6 patches 4 months, 2 weeks ago
Failed in applying to current master (apply log)
There is a newer version of this series
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/x86/iommu.c         | 271 +++++++++++++-------
11 files changed, 262 insertions(+), 181 deletions(-)
[PATCH v4 0/6] x86/iommu: improve setup time of hwdom IOMMU
Posted by Roger Pau Monne 4 months, 2 weeks ago
Hello,

The aim of the series is to reduce boot time setup of IOMMU page tables
for dom0.

First and second 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 5/6 for performance figures.

Thanks, Roger.

Roger Pau Monne (6):
  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/x86/iommu.c         | 271 +++++++++++++-------
 11 files changed, 262 insertions(+), 181 deletions(-)

-- 
2.43.0
Re: [PATCH v4 0/6] x86/iommu: improve setup time of hwdom IOMMU
Posted by Jan Beulich 3 months, 3 weeks ago
On 20.12.2023 14:43, Roger Pau Monne wrote:
> Hello,
> 
> The aim of the series is to reduce boot time setup of IOMMU page tables
> for dom0.
> 
> First and second 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 5/6 for performance figures.
> 
> Thanks, Roger.
> 
> Roger Pau Monne (6):
>   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 +-

Paul,

for the changes to this file, any chance of an ack for patches 4 and 6?

Thanks, Jan

>  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/x86/iommu.c         | 271 +++++++++++++-------
>  11 files changed, 262 insertions(+), 181 deletions(-)
>