From: Binbin Wu <binbin.wu@linux.intel.com>
To: Yi Liu <yi.l.liu@intel.com>,
joro@8bytes.org, alex.williamson@redhat.com, jgg@nvidia.com,
kevin.tian@intel.com, robin.murphy@arm.com
Cc: cohuck@redhat.com, eric.auger@redhat.com, nicolinc@nvidia.com,
kvm@vger.kernel.org, mjrosato@linux.ibm.com,
chao.p.peng@linux.intel.com, yi.y.sun@linux.intel.com,
peterx@redhat.com, jasowang@redhat.com,
shameerali.kolothum.thodi@huawei.com, lulu@redhat.com,
suravee.suthikulpanit@amd.com, iommu@lists.linux.dev,
linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org,
baolu.lu@linux.intel.com
Subject: Re: [PATCH 1/6] iommu: Add new iommu op to get iommu hardware information
Date: Mon, 13 Feb 2023 10:36:38 +0800 [thread overview]
Message-ID: <aa9ee0db-c9d9-9b3f-8f63-cbc76bb3ccdd@linux.intel.com> (raw)
In-Reply-To: <20230209041642.9346-2-yi.l.liu@intel.com>
On 2/9/2023 12:16 PM, Yi Liu wrote:
> From: Lu Baolu <baolu.lu@linux.intel.com>
>
> Introduce a new iommu op get
get -> to get
> the IOMMU hardware capabilities for iommufd.
> This information will be used by any vIOMMU driver which is owned by
> userspace.
>
> This op chooses to make the special parameters opaque to the core. This
> suits the current usage model where accessing any of the IOMMU device
> special parameters does require a userspace driver that matches the kernel
> driver. If a need for common parameters, implemented similarly by several
> drivers, arises then there is room in the design to grow a generic parameter
> set as well. No warpper
warpper -> wrapper
> API is added as it is supposed to be used by
> iommufd only.
>
> Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
> Signed-off-by: Yi Liu <yi.l.liu@intel.com>
> Signed-off-by: Nicolin Chen <nicolinc@nvidia.com>
> ---
> include/linux/iommu.h | 8 ++++++++
> include/uapi/linux/iommufd.h | 6 ++++++
> 2 files changed, 14 insertions(+)
>
> diff --git a/include/linux/iommu.h b/include/linux/iommu.h
> index cb586d054c57..97b398d19fd2 100644
> --- a/include/linux/iommu.h
> +++ b/include/linux/iommu.h
> @@ -15,6 +15,7 @@
> #include <linux/of.h>
> #include <linux/ioasid.h>
> #include <uapi/linux/iommu.h>
> +#include <uapi/linux/iommufd.h>
>
> #define IOMMU_READ (1 << 0)
> #define IOMMU_WRITE (1 << 1)
> @@ -223,6 +224,11 @@ struct iommu_iotlb_gather {
> /**
> * struct iommu_ops - iommu ops and capabilities
> * @capable: check capability
> + * @hw_info: IOMMU hardware capabilities. The type of the returned data is
> + * defined in include/uapi/linux/iommufd.h. The data buffer is
> + * allocated in the IOMMU driver and the caller should free it
> + * after use. Return the data buffer if success, or ERR_PTR on
> + * failure.
> * @domain_alloc: allocate iommu domain
> * @probe_device: Add device to iommu driver handling
> * @release_device: Remove device from iommu driver handling
> @@ -252,6 +258,7 @@ struct iommu_iotlb_gather {
> */
> struct iommu_ops {
> bool (*capable)(struct device *dev, enum iommu_cap);
> + void *(*hw_info)(struct device *dev, u32 *length);
>
> /* Domain allocation and freeing by the iommu driver */
> struct iommu_domain *(*domain_alloc)(unsigned iommu_domain_type);
> @@ -280,6 +287,7 @@ struct iommu_ops {
> void (*remove_dev_pasid)(struct device *dev, ioasid_t pasid);
>
> const struct iommu_domain_ops *default_domain_ops;
> + enum iommu_device_data_type driver_type;
How to understand the name "iommu_device_data_type"?
Is it just refer to the driver types or it has a more generic meaning?
> unsigned long pgsize_bitmap;
> struct module *owner;
> };
> diff --git a/include/uapi/linux/iommufd.h b/include/uapi/linux/iommufd.h
> index 98ebba80cfa1..2309edb55028 100644
> --- a/include/uapi/linux/iommufd.h
> +++ b/include/uapi/linux/iommufd.h
> @@ -344,4 +344,10 @@ struct iommu_vfio_ioas {
> __u16 __reserved;
> };
> #define IOMMU_VFIO_IOAS _IO(IOMMUFD_TYPE, IOMMUFD_CMD_VFIO_IOAS)
> +
> +/**
> + * enum iommu_device_data_type - IOMMU hardware Data types
> + */
> +enum iommu_device_data_type {
> +};
> #endif
next prev parent reply other threads:[~2023-02-13 2:36 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-09 4:16 [PATCH 0/6] iommufd: Add iommu capability reporting Yi Liu
2023-02-09 4:16 ` [PATCH 1/6] iommu: Add new iommu op to get iommu hardware information Yi Liu
2023-02-10 7:28 ` Tian, Kevin
2023-02-11 3:38 ` Baolu Lu
2023-02-11 3:42 ` Baolu Lu
2023-02-13 1:54 ` Tian, Kevin
2023-02-13 2:36 ` Binbin Wu [this message]
2023-02-13 8:46 ` Baolu Lu
2023-02-09 4:16 ` [PATCH 2/6] iommu/vt-d: Implement hw_info for iommu capability query Yi Liu
2023-02-10 7:32 ` Tian, Kevin
2023-02-11 3:45 ` Baolu Lu
2023-02-10 22:44 ` Alex Williamson
2023-02-11 0:15 ` Jason Gunthorpe
2023-02-13 3:09 ` Binbin Wu
2023-02-13 8:48 ` Baolu Lu
2023-02-13 14:51 ` Jason Gunthorpe
2023-02-09 4:16 ` [PATCH 3/6] iommufd: Add IOMMU_DEVICE_GET_INFO Yi Liu
2023-02-10 7:55 ` Tian, Kevin
2023-02-10 11:10 ` Joao Martins
2023-02-10 20:58 ` Jason Gunthorpe
2023-02-10 20:59 ` Jason Gunthorpe
2023-02-13 2:04 ` Tian, Kevin
2023-02-09 4:16 ` [PATCH 4/6] iommufd/device: Add mock_device support in iommufd_device_get_info() Yi Liu
2023-02-09 4:16 ` [PATCH 5/6] iommufd/selftest: Set iommu_device for mock_device Yi Liu
2023-02-09 4:16 ` [PATCH 6/6] iommufd/selftest: Add coverage for IOMMU_DEVICE_GET_INFO ioctl Yi Liu
2023-02-22 21:07 ` [PATCH 0/6] iommufd: Add iommu capability reporting Jason Gunthorpe
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aa9ee0db-c9d9-9b3f-8f63-cbc76bb3ccdd@linux.intel.com \
--to=binbin.wu@linux.intel.com \
--cc=alex.williamson@redhat.com \
--cc=baolu.lu@linux.intel.com \
--cc=chao.p.peng@linux.intel.com \
--cc=cohuck@redhat.com \
--cc=eric.auger@redhat.com \
--cc=iommu@lists.linux.dev \
--cc=jasowang@redhat.com \
--cc=jgg@nvidia.com \
--cc=joro@8bytes.org \
--cc=kevin.tian@intel.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=lulu@redhat.com \
--cc=mjrosato@linux.ibm.com \
--cc=nicolinc@nvidia.com \
--cc=peterx@redhat.com \
--cc=robin.murphy@arm.com \
--cc=shameerali.kolothum.thodi@huawei.com \
--cc=suravee.suthikulpanit@amd.com \
--cc=yi.l.liu@intel.com \
--cc=yi.y.sun@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.