From: Nicolin Chen nicolinc@nvidia.com Sent: Wednesday, May 7, 2025 3:37 PM
On Wed, May 07, 2025 at 07:22:24AM +0000, Tian, Kevin wrote:
any reason why this cannot be done by the core? all types of vcmd queues need to pin the guest buffer pages, no matter the IOMMU accesses GPA or HPA.
But I am doing in the core. I have iopt_pin_pages() called in the core ioctl handler iommufd_vqueue_alloc_ioctl():
IMHO we just want to keep the pin logic in the core while leaving the check of PFN continuity to the driver (or have a way for the driver to communicate such need to the core).
It's possible for have an implementation with IOMMU accessing GPA of the queue which further goes through the stage-2 translation. In such case it's fine to have disjointed PFNs.
That makes sense. In the iommufd_viommu_ops structure, we can add "u32 flag" where driver can define IOMMUFD_VQUEUE_CONTIGUOUS_PFNS?
that works.