[PATCH v2 09/22] iommufd/viommu: Introduce IOMMUFD_OBJ_VCMDQ and its related struct
Baolu Lu
baolu.lu at linux.intel.com
Sun Apr 27 18:09:19 PDT 2025
On 4/26/25 13:58, Nicolin Chen wrote:
> Add a new IOMMUFD_OBJ_VCMDQ with an iommufd_vcmdq structure, representing
> a command queue type of physical HW passed to a user space VM. This vCMDQ
> object, is a subset of vIOMMU resources of a physical IOMMU's, such as:
> - NVIDIA's virtual command queue
> - AMD vIOMMU's command buffer
>
> Inroduce a struct iommufd_vcmdq and its allocator iommufd_vcmdq_alloc().
> Also add a pair of viommu ops for iommufd to forward user space ioctls to
> IOMMU drivers.
>
> Signed-off-by: Nicolin Chen<nicolinc at nvidia.com>
Reviewed-by: Lu Baolu <baolu.lu at linux.intel.com>
with a small nit below ...
> ---
> include/linux/iommufd.h | 35 +++++++++++++++++++++++++++++++++++
> 1 file changed, 35 insertions(+)
>
> diff --git a/include/linux/iommufd.h b/include/linux/iommufd.h
> index ef0d3c4765cf..e91381aaec5a 100644
> --- a/include/linux/iommufd.h
> +++ b/include/linux/iommufd.h
> @@ -37,6 +37,7 @@ enum iommufd_object_type {
> IOMMUFD_OBJ_VIOMMU,
> IOMMUFD_OBJ_VDEVICE,
> IOMMUFD_OBJ_VEVENTQ,
> + IOMMUFD_OBJ_VCMDQ,
> #ifdef CONFIG_IOMMUFD_TEST
> IOMMUFD_OBJ_SELFTEST,
> #endif
> @@ -112,6 +113,14 @@ struct iommufd_vdevice {
> u64 id; /* per-vIOMMU virtual ID */
> };
>
> +struct iommufd_vcmdq {
> + struct iommufd_object obj;
> + struct iommufd_ctx *ictx;
> + struct iommufd_viommu *viommu;
> + dma_addr_t addr;
It's better to add a comment to state that @addr is a guest physical
address. Or not?
> + size_t length;
> +};
Thanks,
baolu
More information about the linux-arm-kernel
mailing list