[PATCH v5 0/5] iommu/s390: support additional table regions

Matthew Rosato posted 5 patches 8 months, 1 week ago
arch/s390/include/asm/pci_dma.h |   3 +
drivers/iommu/s390-iommu.c      | 345 ++++++++++++++++++++++++++++----
2 files changed, 314 insertions(+), 34 deletions(-)
[PATCH v5 0/5] iommu/s390: support additional table regions
Posted by Matthew Rosato 8 months, 1 week ago
The series extends the maximum table size allowed by s390-iommu by
increasing the number of table regions supported.  It also adds logic to
construct the table use the minimum number of regions based upon aperture
calculation.

Changes for v5:
- fix GFP_KERNEL under spinlock in patch 5

Changes for v4:
- rebase onto master/merge window
- convert patches 3 per Niklas to remove gotos
- convert patch 4 to also remove gotos
- add review tags

Changes for v3:
- rebase onto iommu-next
- move IOTA region type setting into s390-iommu
- remove origin_type and max_table_size from zdev
- adjust reserved region calculation to be dependent on the domain

Changes for v2:
- rebase onto 6.13
- remove 'iommu/s390: add basic routines for region 1st and 2nd tables'
  and put routines in first patch that uses each.  No functional change.

Matthew Rosato (5):
  iommu/s390: set appropriate IOTA region type
  iommu/s390: support cleanup of additional table regions
  iommu/s390: support iova_to_phys for additional table regions
  iommu/s390: support map/unmap for additional table regions
  iommu/s390: allow larger region tables

 arch/s390/include/asm/pci_dma.h |   3 +
 drivers/iommu/s390-iommu.c      | 345 ++++++++++++++++++++++++++++----
 2 files changed, 314 insertions(+), 34 deletions(-)

-- 
2.49.0
Re: [PATCH v5 0/5] iommu/s390: support additional table regions
Posted by Niklas Schnelle 8 months ago
On Fri, 2025-04-11 at 16:24 -0400, Matthew Rosato wrote:
> The series extends the maximum table size allowed by s390-iommu by
> increasing the number of table regions supported.  It also adds logic to
> construct the table use the minimum number of regions based upon aperture
> calculation.
> 
> Changes for v5:
> - fix GFP_KERNEL under spinlock in patch 5
> 
> Changes for v4:
> - rebase onto master/merge window
> - convert patches 3 per Niklas to remove gotos
> - convert patch 4 to also remove gotos
> - add review tags
> 
> Changes for v3:
> - rebase onto iommu-next
> - move IOTA region type setting into s390-iommu
> - remove origin_type and max_table_size from zdev
> - adjust reserved region calculation to be dependent on the domain
> 
> Changes for v2:
> - rebase onto 6.13
> - remove 'iommu/s390: add basic routines for region 1st and 2nd tables'
>   and put routines in first patch that uses each.  No functional change.
> 
> Matthew Rosato (5):
>   iommu/s390: set appropriate IOTA region type
>   iommu/s390: support cleanup of additional table regions
>   iommu/s390: support iova_to_phys for additional table regions
>   iommu/s390: support map/unmap for additional table regions
>   iommu/s390: allow larger region tables
> 
>  arch/s390/include/asm/pci_dma.h |   3 +
>  drivers/iommu/s390-iommu.c      | 345 ++++++++++++++++++++++++++++----
>  2 files changed, 314 insertions(+), 34 deletions(-)
> 

I gave this v5 another test run with it applied atop v6.15-rc2. I used
an LPAR with 11 TB of memory and 2 KVM guests each with 5 TB. The
guests use iommu.passthrough=1 and have NIC VFs from the same card
passed-through. With such large sizes we really need the newly
supported table types. For good measure, I also used the PCI transport
for the virtio-net NIC.

Traffic between the passed-through VFs works great. Feel free to add:

Tested-by: Niklas Schnelle <schnelle@linux.ibm.com>
Re: [PATCH v5 0/5] iommu/s390: support additional table regions
Posted by Joerg Roedel 8 months ago
On Fri, Apr 11, 2025 at 04:24:28PM -0400, Matthew Rosato wrote:
> Matthew Rosato (5):
>   iommu/s390: set appropriate IOTA region type
>   iommu/s390: support cleanup of additional table regions
>   iommu/s390: support iova_to_phys for additional table regions
>   iommu/s390: support map/unmap for additional table regions
>   iommu/s390: allow larger region tables
> 
>  arch/s390/include/asm/pci_dma.h |   3 +
>  drivers/iommu/s390-iommu.c      | 345 ++++++++++++++++++++++++++++----
>  2 files changed, 314 insertions(+), 34 deletions(-)

Applied, thanks.