summaryrefslogtreecommitdiff
path: root/arch/s390/pci/pci.c
diff options
context:
space:
mode:
authorNiklas Schnelle <schnelle@linux.ibm.com>2022-11-09 17:29:00 +0300
committerJoerg Roedel <jroedel@suse.de>2022-11-19 12:28:16 +0300
commitc228f5a043370ef02867e4f0aab1bdc8422500e6 (patch)
tree4902cff596476770d60bcbcf134fafbfdef13520 /arch/s390/pci/pci.c
parent59bbf596791b89c7f88fdcac29dfc39c1221d25d (diff)
downloadlinux-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