KVM: PPC: Book3S: Invalidate multiple TCEs at once
authorAlexey Kardashevskiy <aik@ozlabs.ru>
Thu, 29 Aug 2019 08:52:49 +0000 (18:52 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Thu, 29 Aug 2019 23:40:14 +0000 (09:40 +1000)
commit01b7d128b5a7f0d09626c090093ff44155f347c9
tree989bb1426e8c1a2b731e8c7c2af36a071d763a36
parent35872480da47ec714fd9c4f2f3d2d83daf304851
KVM: PPC: Book3S: Invalidate multiple TCEs at once

Invalidating a TCE cache entry for each updated TCE is quite expensive.
This makes use of the new iommu_table_ops::xchg_no_kill()/tce_kill()
callbacks to bring down the time spent in mapping a huge guest DMA window;
roughly 20s to 10s for each guest's 100GB of DMA space.

Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Acked-by: Paul Mackerras <paulus@ozlabs.org>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20190829085252.72370-3-aik@ozlabs.ru
arch/powerpc/kvm/book3s_64_vio.c
arch/powerpc/kvm/book3s_64_vio_hv.c