On 4/26/25 13:58, Nicolin Chen wrote:
The new vCMDQ object will be added for HW to access the guest memory for a
HW-accelerated virtualization feature. It needs to ensure the guest memory
pages are pinned when HW accesses them and they are contiguous in physical
address space.

This is very like the existing iommufd_access_pin_pages() that outputs the
pinned page list for the caller to test its contiguity.

Move those code from iommufd_access_pin/unpin_pages() and related function
for a pair of iopt helpers that can be shared with the vCMDQ allocator. As
the vCMDQ allocator will be a user-space triggered ioctl function, WARN_ON
would not be a good fit in the new iopt_unpin_pages(), thus change them to
use WARN_ON_ONCE instead.

I'm uncertain, but perhaps pr_warn_ratelimited() would be a better
alternative to WARN_ON() here? WARN_ON_ONCE() generates warning messages
with kernel call traces in the kernel messages, which might lead users
to believe that something serious has happened in the kernel.


Rename check_area_prot() to align with the existing iopt_area helpers, and
inline it to the header since iommufd_access_rw() still uses it.

Signed-off-by: Nicolin Chen<nicol...@nvidia.com>
---
  drivers/iommu/iommufd/io_pagetable.h    |   8 ++
  drivers/iommu/iommufd/iommufd_private.h |   6 ++
  drivers/iommu/iommufd/device.c          | 117 ++----------------------
  drivers/iommu/iommufd/io_pagetable.c    |  95 +++++++++++++++++++
  4 files changed, 117 insertions(+), 109 deletions(-)

Thanks,
baolu

Reply via email to