Skip to content
Commit 356e88eb authored by Jason Cai (Xiang Feng)'s avatar Jason Cai (Xiang Feng) Committed by Alex Williamson
Browse files

vfio/type1: Improve memory pinning process for raw PFN mapping



When using vfio to pass through a PCIe device (e.g. a GPU card) that
has a huge BAR (e.g. 16GB), a lot of cycles are wasted on memory
pinning because PFNs of PCI BAR are not backed by struct page, and
the corresponding VMA has flag VM_PFNMAP.

With this change, when pinning a region which is a raw PFN mapping,
it can skip unnecessary user memory pinning process, and thus, can
significantly improve VM's boot up time when passing through devices
via VFIO. In my test on a Xeon E5 2.6GHz, the time mapping a 16GB
BAR was reduced from about 0.4s to 1.5us.

Signed-off-by: default avatarJason Cai (Xiang Feng) <jason.cai@linux.alibaba.com>
Signed-off-by: default avatarAlex Williamson <alex.williamson@redhat.com>
parent c9f89c3f
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment