VFIO MSIX Query
From: Alex Williamson <hidden>
Date: 2016-05-09 15:20:19
Also in:
lkml
On Sun, 8 May 2016 20:45:10 +0530 Nitin Saxena [off-list ref] wrote:
Hi Alex, Thanks for your answer. I got the point that all access to device must be VFIO. I have few more questions.quoted
quoted
When the device is initially opened via the VFIO_GET_DEVICE_FD ioctl, wego through an initialization sequence on the device, including a device reset Does this mean only one process (primary in multiprocess app) can only perform VFIO_GROUP_GET_DEVICE_FD ioctl ? which I doubt as I saw in dpdk that each process (regardless primary or not) does VFIO_GROUP_GET_DEVICE_FD ioctl. Kindly confirm.
Users can call GET_DEVICE_FD multiple times, but note that the group file descriptor can only be opened once, so you'd need to pass device file descriptors off to other threads.
quoted
quoted
Use VFIO for all access to the device or don't use VFIO at all.I will map PCI BARS via VFIO but what about hugepages for each process. Since I am using VFIO_NOIOMMU do I need to call VFIO_IOMMU_MAP_DMA ioctl for each hugepage of each process? I think this is not needed in my case. Please confirm.
No-IOMMU mode does not have MAP_DMA or UNMAP_DMA ioctls. If you want to support a safe operating mode, with an IOMMU providing DMA isolation, then yes, you would need to map DMA targets for the device using those ioctls for the type1 IOMMU backend.
Can you please also confirm about the patch I attached. Is there any thing missing in the patch that I needed to incorporate from kernel 4.5 to make VFO NOIOMMU work? Patch
I can't confirm or deny whether the backport is accurate. Thanks, Alex