]> www.infradead.org Git - users/jedix/linux-maple.git/commit
vfio/pci: Insert full vma on mmap'd MMIO fault
authorAlex Williamson <alex.williamson@redhat.com>
Fri, 7 Jun 2024 03:52:07 +0000 (21:52 -0600)
committerAlex Williamson <alex.williamson@redhat.com>
Wed, 12 Jun 2024 21:40:39 +0000 (15:40 -0600)
commitd71a989cf5d961989c273093cdff2550acdde314
tree549d8e81b566d5cdfa3d50ce7bae886a2d183cd9
parentaac6db75a9fc2c7a6f73e152df8f15101dda38e6
vfio/pci: Insert full vma on mmap'd MMIO fault

In order to improve performance of typical scenarios we can try to insert
the entire vma on fault.  This accelerates typical cases, such as when
the MMIO region is DMA mapped by QEMU.  The vfio_iommu_type1 driver will
fault in the entire DMA mapped range through fixup_user_fault().

In synthetic testing, this improves the time required to walk a PCI BAR
mapping from userspace by roughly 1/3rd.

This is likely an interim solution until vmf_insert_pfn_{pmd,pud}() gain
support for pfnmaps.

Suggested-by: Yan Zhao <yan.y.zhao@intel.com>
Link: https://lore.kernel.org/all/Zl6XdUkt%2FzMMGOLF@yzhao56-desk.sh.intel.com/
Reviewed-by: Yan Zhao <yan.y.zhao@intel.com>
Link: https://lore.kernel.org/r/20240607035213.2054226-1-alex.williamson@redhat.com
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
drivers/vfio/pci/vfio_pci_core.c