[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