Re: [PATCH v10 Kernel 2/5] vfio iommu: Adds flag to indicate dirty pages tracking capability support

Alex Williamson
2019-12-16T23:17:04Z

On Tue, 17 Dec 2019 01:51:37 +0530
Kirti Wankhede <kwankhede@nvidia.com> wrote:

> Flag VFIO_IOMMU_INFO_DIRTY_PGS in VFIO_IOMMU_GET_INFO indicates that driver
> support dirty pages tracking.
>
> Signed-off-by: Kirti Wankhede <kwankhede@nvidia.com>
> Reviewed-by: Neo Jia <cjia@nvidia.com>
> ---
> drivers/vfio/vfio_iommu_type1.c | 3 ++-
> include/uapi/linux/vfio.h | 5 +++--
> 2 files changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/vfio/vfio_iommu_type1.c b/drivers/vfio/vfio_iommu_type1.c
> index 2ada8e6cdb88..3f6b04f2334f 100644
> --- a/drivers/vfio/vfio_iommu_type1.c
> +++ b/drivers/vfio/vfio_iommu_type1.c
> @@ -2234,7 +2234,8 @@ static long vfio_iommu_type1_ioctl(void *iommu_data,
> info.cap_offset = 0; /* output, no-recopy necessary */
> }
>
> - info.flags = VFIO_IOMMU_INFO_PGSIZES;
> + info.flags = VFIO_IOMMU_INFO_PGSIZES |
> + VFIO_IOMMU_INFO_DIRTY_PGS;

Type1 shouldn't advertise it until it's supported though, right?
Thanks,

Alex

>
> info.iova_pgsizes = vfio_pgsize_bitmap(iommu);
>
> diff --git a/include/uapi/linux/vfio.h b/include/uapi/linux/vfio.h
> index a0817ba267c1..81847ed54eb7 100644
> --- a/include/uapi/linux/vfio.h
> +++ b/include/uapi/linux/vfio.h
> @@ -900,8 +900,9 @@ struct vfio_device_ioeventfd {
> struct vfio_iommu_type1_info {
> __u32 argsz;
> __u32 flags;
> -#define VFIO_IOMMU_INFO_PGSIZES (1 << 0) /* supported page sizes info */
> -#define VFIO_IOMMU_INFO_CAPS (1 << 1) /* Info supports caps */
> +#define VFIO_IOMMU_INFO_PGSIZES (1 << 0) /* supported page sizes info */
> +#define VFIO_IOMMU_INFO_CAPS (1 << 1) /* Info supports caps */
> +#define VFIO_IOMMU_INFO_DIRTY_PGS (1 << 2) /* supports dirty page tracking */
> __u64 iova_pgsizes; /* Bitmap of supported page sizes */
> __u32 cap_offset; /* Offset within info struct of first cap */
> };