[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH Kernel v18 6/7] vfio iommu: Add migration capability to repor
From: |
Alex Williamson |
Subject: |
Re: [PATCH Kernel v18 6/7] vfio iommu: Add migration capability to report supported features |
Date: |
Wed, 6 May 2020 16:27:38 -0600 |
On Mon, 4 May 2020 21:28:58 +0530
Kirti Wankhede <address@hidden> wrote:
> Added migration capability in IOMMU info chain.
> User application should check IOMMU info chain for migration capability
> to use dirty page tracking feature provided by kernel module.
>
> Signed-off-by: Kirti Wankhede <address@hidden>
> ---
> drivers/vfio/vfio_iommu_type1.c | 15 +++++++++++++++
> include/uapi/linux/vfio.h | 14 ++++++++++++++
> 2 files changed, 29 insertions(+)
>
> diff --git a/drivers/vfio/vfio_iommu_type1.c b/drivers/vfio/vfio_iommu_type1.c
> index 8b27faf1ec38..b38d278d7bff 100644
> --- a/drivers/vfio/vfio_iommu_type1.c
> +++ b/drivers/vfio/vfio_iommu_type1.c
> @@ -2378,6 +2378,17 @@ static int vfio_iommu_iova_build_caps(struct
> vfio_iommu *iommu,
> return ret;
> }
>
> +static int vfio_iommu_migration_build_caps(struct vfio_info_cap *caps)
> +{
> + struct vfio_iommu_type1_info_cap_migration cap_mig;
> +
> + cap_mig.header.id = VFIO_IOMMU_TYPE1_INFO_CAP_MIGRATION;
> + cap_mig.header.version = 1;
> + cap_mig.flags = VFIO_IOMMU_INFO_CAPS_MIGRATION_DIRTY_PAGE_TRACK;
> +
> + return vfio_info_add_capability(caps, &cap_mig.header, sizeof(cap_mig));
> +}
> +
> static long vfio_iommu_type1_ioctl(void *iommu_data,
> unsigned int cmd, unsigned long arg)
> {
> @@ -2427,6 +2438,10 @@ static long vfio_iommu_type1_ioctl(void *iommu_data,
> if (ret)
> return ret;
>
> + ret = vfio_iommu_migration_build_caps(&caps);
> + if (ret)
> + return ret;
> +
> if (caps.size) {
> info.flags |= VFIO_IOMMU_INFO_CAPS;
>
> diff --git a/include/uapi/linux/vfio.h b/include/uapi/linux/vfio.h
> index e3cbf8b78623..df9ce8aaafab 100644
> --- a/include/uapi/linux/vfio.h
> +++ b/include/uapi/linux/vfio.h
> @@ -1013,6 +1013,20 @@ struct vfio_iommu_type1_info_cap_iova_range {
> struct vfio_iova_range iova_ranges[];
> };
>
> +/*
> + * The migration capability allows to report supported features for
> migration.
> + *
> + * The structures below define version 1 of this capability.
> + */
> +#define VFIO_IOMMU_TYPE1_INFO_CAP_MIGRATION 1
> +
> +struct vfio_iommu_type1_info_cap_migration {
> + struct vfio_info_cap_header header;
> + __u32 flags;
> + /* supports dirty page tracking */
> +#define VFIO_IOMMU_INFO_CAPS_MIGRATION_DIRTY_PAGE_TRACK (1 << 0)
> +};
> +
What about exposing the maximum supported dirty bitmap size and the
supported page sizes? Thanks,
Alex
> #define VFIO_IOMMU_GET_INFO _IO(VFIO_TYPE, VFIO_BASE + 12)
>
> /**
[PATCH Kernel v18 5/7] vfio iommu: Update UNMAP_DMA ioctl to get dirty bitmap before unmap, Kirti Wankhede, 2020/05/04
[PATCH Kernel v18 6/7] vfio iommu: Add migration capability to report supported features, Kirti Wankhede, 2020/05/04
- Re: [PATCH Kernel v18 6/7] vfio iommu: Add migration capability to report supported features,
Alex Williamson <=
[PATCH Kernel v18 7/7] vfio: Selective dirty page tracking if IOMMU backed device pins pages, Kirti Wankhede, 2020/05/04