diff options
author | Niklas Schnelle <schnelle@linux.ibm.com> | 2022-11-09 17:29:00 +0300 |
---|---|---|
committer | Joerg Roedel <jroedel@suse.de> | 2022-11-19 12:28:16 +0300 |
commit | c228f5a043370ef02867e4f0aab1bdc8422500e6 (patch) | |
tree | 4902cff596476770d60bcbcf134fafbfdef13520 /arch/s390/pci/pci.c | |
parent | 59bbf596791b89c7f88fdcac29dfc39c1221d25d (diff) | |
download | linux-c228f5a043370ef02867e4f0aab1bdc8422500e6.tar.xz |
iommu/s390: Add I/O TLB ops
Currently s390-iommu does an I/O TLB flush (RPCIT) for every update of
the I/O translation table explicitly. For one this is wasteful since
RPCIT can be skipped after a mapping operation if zdev->tlb_refresh is
unset. Moreover we can do a single RPCIT for a range of pages including
whne doing lazy unmapping.
Thankfully both of these optimizations can be achieved by implementing
the IOMMU operations common code provides for the different types of I/O
tlb flushes:
* flush_iotlb_all: Flushes the I/O TLB for the entire IOVA space
* iotlb_sync: Flushes the I/O TLB for a range of pages that can be
gathered up, for example to implement lazy unmapping.
* iotlb_sync_map: Flushes the I/O TLB after a mapping operation
Signed-off-by: Niklas Schnelle <schnelle@linux.ibm.com>
Link: https://lore.kernel.org/r/20221109142903.4080275-3-schnelle@linux.ibm.com
Signed-off-by: Joerg Roedel <jroedel@suse.de>
Diffstat (limited to 'arch/s390/pci/pci.c')
0 files changed, 0 insertions, 0 deletions