Message ID | 20231109114529.1904193-5-zhenzhong.duan@intel.com |
---|---|
State | New |
Headers | show |
Series | vfio: Adopt iommufd | expand |
On 11/9/23 12:45, Zhenzhong Duan wrote: > Currently iommufd doesn't support dirty page sync yet, > but it will not block us doing live migration if VFIO > migration is force enabled. > > So in this case we allow set_dirty_page_tracking to be NULL. > Note we don't need same change for query_dirty_bitmap because > when dirty page sync isn't supported, query_dirty_bitmap will > never be called. > > Suggested-by: Cédric Le Goater <clg@redhat.com> > Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Thanks, C. > --- > hw/vfio/container-base.c | 4 ++++ > hw/vfio/container.c | 4 ---- > 2 files changed, 4 insertions(+), 4 deletions(-) > > diff --git a/hw/vfio/container-base.c b/hw/vfio/container-base.c > index 71f7274973..eee2dcfe76 100644 > --- a/hw/vfio/container-base.c > +++ b/hw/vfio/container-base.c > @@ -55,6 +55,10 @@ void vfio_container_del_section_window(VFIOContainerBase *bcontainer, > int vfio_container_set_dirty_page_tracking(VFIOContainerBase *bcontainer, > bool start) > { > + if (!bcontainer->dirty_pages_supported) { > + return 0; > + } > + > g_assert(bcontainer->ops->set_dirty_page_tracking); > return bcontainer->ops->set_dirty_page_tracking(bcontainer, start); > } > diff --git a/hw/vfio/container.c b/hw/vfio/container.c > index 6bacf38222..ed2d721b2b 100644 > --- a/hw/vfio/container.c > +++ b/hw/vfio/container.c > @@ -216,10 +216,6 @@ static int vfio_legacy_set_dirty_page_tracking(VFIOContainerBase *bcontainer, > .argsz = sizeof(dirty), > }; > > - if (!bcontainer->dirty_pages_supported) { > - return 0; > - } > - > if (start) { > dirty.flags = VFIO_IOMMU_DIRTY_PAGES_FLAG_START; > } else {
diff --git a/hw/vfio/container-base.c b/hw/vfio/container-base.c index 71f7274973..eee2dcfe76 100644 --- a/hw/vfio/container-base.c +++ b/hw/vfio/container-base.c @@ -55,6 +55,10 @@ void vfio_container_del_section_window(VFIOContainerBase *bcontainer, int vfio_container_set_dirty_page_tracking(VFIOContainerBase *bcontainer, bool start) { + if (!bcontainer->dirty_pages_supported) { + return 0; + } + g_assert(bcontainer->ops->set_dirty_page_tracking); return bcontainer->ops->set_dirty_page_tracking(bcontainer, start); } diff --git a/hw/vfio/container.c b/hw/vfio/container.c index 6bacf38222..ed2d721b2b 100644 --- a/hw/vfio/container.c +++ b/hw/vfio/container.c @@ -216,10 +216,6 @@ static int vfio_legacy_set_dirty_page_tracking(VFIOContainerBase *bcontainer, .argsz = sizeof(dirty), }; - if (!bcontainer->dirty_pages_supported) { - return 0; - } - if (start) { dirty.flags = VFIO_IOMMU_DIRTY_PAGES_FLAG_START; } else {
Currently iommufd doesn't support dirty page sync yet, but it will not block us doing live migration if VFIO migration is force enabled. So in this case we allow set_dirty_page_tracking to be NULL. Note we don't need same change for query_dirty_bitmap because when dirty page sync isn't supported, query_dirty_bitmap will never be called. Suggested-by: Cédric Le Goater <clg@redhat.com> Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com> --- hw/vfio/container-base.c | 4 ++++ hw/vfio/container.c | 4 ---- 2 files changed, 4 insertions(+), 4 deletions(-)