[vfio-users] Can VFIO pin only a specific region of guest mem when use pass through devices?

Simon Guo wei.guo.simon at linux.alibaba.com
Sun Oct 28 12:11:16 UTC 2018


Hi,

I am using network device pass through mode with qemu x86(-device vfio-pci,host=0000:xx:yy.z) 
and “intel_iommu=on” in host kernel command line, and it shows the whole guest memory 
were pinned(vfio_pin_pages()), viewed by the “top” RES memory output. I understand it is due 
to device can DMA to any guest memory address and it cannot be swapped.

However can we just pin a rang of address space allowed by iommu on that device, 
instead of pin whole address space? I do notice some code like vtd_host_dma_iommu(). 
Maybe there is already some way to enable that?

Sorry if I missed some basics. I googled some but no luck to find the answer yet. Please 
let me know if any discussion already raised on that.

Any other suggestion will also be appreciated. For example, can we modify the guest network 
card driver to allocate only from a specific memory region(zone), and qemu advises guest 
kernel to only pin that memory region(zone) accordingly? 

Thanks,
- Simon




More information about the vfio-users mailing list