[PATCH v2 08/22] iommufd: Abstract iopt_pin_pages and iopt_unpin_pages helpers

Baolu Lu baolu.lu at linux.intel.com
Sun Apr 27 00:22:13 PDT 2025


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<nicolinc at 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



More information about the linux-arm-kernel mailing list