[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20221109142903.4080275-1-schnelle@linux.ibm.com>
Date: Wed, 9 Nov 2022 15:28:58 +0100
From: Niklas Schnelle <schnelle@...ux.ibm.com>
To: Matthew Rosato <mjrosato@...ux.ibm.com>, iommu@...ts.linux.dev,
Joerg Roedel <joro@...tes.org>, Will Deacon <will@...nel.org>,
Robin Murphy <robin.murphy@....com>,
Jason Gunthorpe <jgg@...dia.com>
Cc: Gerd Bayer <gbayer@...ux.ibm.com>,
Pierre Morel <pmorel@...ux.ibm.com>,
linux-s390@...r.kernel.org, borntraeger@...ux.ibm.com,
hca@...ux.ibm.com, gor@...ux.ibm.com,
gerald.schaefer@...ux.ibm.com, agordeev@...ux.ibm.com,
svens@...ux.ibm.com, linux-kernel@...r.kernel.org
Subject: [PATCH v2 0/5] iommu/s390: Further improvements
Hi All,
This series of patches improves the s390 IOMMU driver. These improvements help
existing IOMMU users, mainly vfio-pci, but at the same time are also in
preparation of converting s390 to use the common DMA API implementation in
drivers/iommu/dma-iommu.c instead of its platform specific DMA API in
arch/s390/pci/pci_dma.c that sidesteps the IOMMU driver to control the same
hardware interface directly.
Among the included changes patch 1 improves the robustness of switching IOMMU
domains and patch 2 adds the I/O TLB operations necessary for the DMA API
conversion. Patches 3, 4, and 5 aim to improve performance with patch 5 being
the most intrusive by removing the I/O translation table lock and using atomic
updates instead.
This series is based on the s390 branch of Joerg's IOMMU tree[0] that includes
the latest s390 IOMMU fixes. It is available for easy testing in the
iommu_improve_v2 branch with signed tag s390_iommu_improve_v2 of my
git.kernel.org tree[1].
Best regards,
Niklas Schnelle
Changes sinve v1:
- If an IOTLB flush fails for one device don't skip the flush for other devices.
This is also needed when RCU readers try to flush a detached device. (Jason)
- Free a domain's IOMMU translation table via call_rcu() (Jason)
[0] https://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git/log/?h=s390
[1] https://git.kernel.org/pub/scm/linux/kernel/git/niks/linux.git/
Niklas Schnelle (5):
iommu/s390: Make attach succeed even if the device is in error state
iommu/s390: Add I/O TLB ops
iommu/s390: Use RCU to allow concurrent domain_list iteration
iommu/s390: Optimize IOMMU table walking
s390/pci: use lock-free I/O translation updates
arch/s390/include/asm/pci.h | 4 +-
arch/s390/kvm/pci.c | 6 +-
arch/s390/pci/pci.c | 13 +--
arch/s390/pci/pci_dma.c | 77 +++++++++------
drivers/iommu/s390-iommu.c | 184 ++++++++++++++++++++++++------------
5 files changed, 185 insertions(+), 99 deletions(-)
--
2.34.1
Powered by blists - more mailing lists