From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
To: Kirti Wankhede <kwankhede@nvidia.com>
Cc: cohuck@redhat.com, cjia@nvidia.com, aik@ozlabs.ru,
Zhengxiao.zx@alibaba-inc.com, shuangtai.tst@alibaba-inc.com,
qemu-devel@nongnu.org, peterx@redhat.com, eauger@redhat.com,
yi.l.liu@intel.com, quintela@redhat.com, ziye.yang@intel.com,
armbru@redhat.com, mlevitsk@redhat.com, pasic@linux.ibm.com,
felipe@nutanix.com, zhi.a.wang@intel.com, kevin.tian@intel.com,
yan.y.zhao@intel.com, alex.williamson@redhat.com,
changpeng.liu@intel.com, eskultet@redhat.com, Ken.Xue@amd.com,
jonathan.davies@nutanix.com, pbonzini@redhat.com
Subject: Re: [PATCH QEMU v23 17/18] vfio: Make vfio-pci device migration capable
Date: Thu, 21 May 2020 20:16:09 +0100 [thread overview]
Message-ID: <20200521191609.GO2752@work-vm> (raw)
In-Reply-To: <1589999088-31477-18-git-send-email-kwankhede@nvidia.com>
* Kirti Wankhede (kwankhede@nvidia.com) wrote:
> If device is not failover primary device call vfio_migration_probe()
> and vfio_migration_finalize() functions for vfio-pci device to enable
> migration for vfio PCI device which support migration.
> Removed vfio_pci_vmstate structure.
> Removed migration blocker from VFIO PCI device specific structure and use
> migration blocker from generic structure of VFIO device.
>
> Signed-off-by: Kirti Wankhede <kwankhede@nvidia.com>
> Reviewed-by: Neo Jia <cjia@nvidia.com>
> ---
> hw/vfio/pci.c | 32 +++++++++++---------------------
> hw/vfio/pci.h | 1 -
> 2 files changed, 11 insertions(+), 22 deletions(-)
>
> diff --git a/hw/vfio/pci.c b/hw/vfio/pci.c
> index 94535f0e27cd..573b28753bfd 100644
> --- a/hw/vfio/pci.c
> +++ b/hw/vfio/pci.c
> @@ -2916,22 +2916,11 @@ static void vfio_realize(PCIDevice *pdev, Error **errp)
> return;
> }
>
> - if (!pdev->failover_pair_id) {
> - error_setg(&vdev->migration_blocker,
> - "VFIO device doesn't support migration");
> - ret = migrate_add_blocker(vdev->migration_blocker, &err);
> - if (ret) {
> - error_propagate(errp, err);
> - error_free(vdev->migration_blocker);
> - vdev->migration_blocker = NULL;
> - return;
> - }
> - }
> -
> vdev->vbasedev.name = g_path_get_basename(vdev->vbasedev.sysfsdev);
> vdev->vbasedev.ops = &vfio_pci_ops;
> vdev->vbasedev.type = VFIO_DEVICE_TYPE_PCI;
> vdev->vbasedev.dev = DEVICE(vdev);
> + vdev->vbasedev.device_state = 0;
>
> tmp = g_strdup_printf("%s/iommu_group", vdev->vbasedev.sysfsdev);
> len = readlink(tmp, group_path, sizeof(group_path));
> @@ -3195,6 +3184,14 @@ static void vfio_realize(PCIDevice *pdev, Error **errp)
> }
> }
>
> + if (!pdev->failover_pair_id) {
> + ret = vfio_migration_probe(&vdev->vbasedev, errp);
OK, and I can see vfio_migration_probe adds a blocker if the device
doesn't support migration.
> + if (ret) {
> + error_report("%s: Failed to setup for migration",
> + vdev->vbasedev.name);
> + }
> + }
> +
> vfio_register_err_notifier(vdev);
> vfio_register_req_notifier(vdev);
> vfio_setup_resetfn_quirk(vdev);
> @@ -3209,11 +3206,6 @@ out_teardown:
> vfio_bars_exit(vdev);
> error:
> error_prepend(errp, VFIO_MSG_PREFIX, vdev->vbasedev.name);
> - if (vdev->migration_blocker) {
> - migrate_del_blocker(vdev->migration_blocker);
> - error_free(vdev->migration_blocker);
> - vdev->migration_blocker = NULL;
> - }
> }
>
> static void vfio_instance_finalize(Object *obj)
> @@ -3225,10 +3217,7 @@ static void vfio_instance_finalize(Object *obj)
> vfio_bars_finalize(vdev);
> g_free(vdev->emulated_config_bits);
> g_free(vdev->rom);
> - if (vdev->migration_blocker) {
> - migrate_del_blocker(vdev->migration_blocker);
> - error_free(vdev->migration_blocker);
> - }
> +
> /*
> * XXX Leaking igd_opregion is not an oversight, we can't remove the
> * fw_cfg entry therefore leaking this allocation seems like the safest
> @@ -3256,6 +3245,7 @@ static void vfio_exitfn(PCIDevice *pdev)
> }
> vfio_teardown_msi(vdev);
> vfio_bars_exit(vdev);
> + vfio_migration_finalize(&vdev->vbasedev);
Which this removes at the end.
So,
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
> }
>
> static void vfio_pci_reset(DeviceState *dev)
> diff --git a/hw/vfio/pci.h b/hw/vfio/pci.h
> index 0da7a20a7ec2..b148c937ef72 100644
> --- a/hw/vfio/pci.h
> +++ b/hw/vfio/pci.h
> @@ -168,7 +168,6 @@ typedef struct VFIOPCIDevice {
> bool no_vfio_ioeventfd;
> bool enable_ramfb;
> VFIODisplay *dpy;
> - Error *migration_blocker;
> Notifier irqchip_change_notifier;
> } VFIOPCIDevice;
>
> --
> 2.7.0
>
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
next prev parent reply other threads:[~2020-05-21 19:32 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-20 18:24 [PATCH QEMU v23 00/18] Add migration support for VFIO devices Kirti Wankhede
2020-05-20 18:24 ` [PATCH QEMU v23 01/18] vfio: KABI for migration interface - Kernel header placeholder Kirti Wankhede
2020-05-20 18:24 ` [PATCH QEMU v23 02/18] vfio: Add function to unmap VFIO region Kirti Wankhede
2020-05-20 18:24 ` [PATCH QEMU v23 03/18] vfio: Add vfio_get_object callback to VFIODeviceOps Kirti Wankhede
2020-05-20 18:24 ` [PATCH QEMU v23 04/18] vfio: Add save and load functions for VFIO PCI devices Kirti Wankhede
2020-05-21 9:50 ` Dr. David Alan Gilbert
2020-05-21 12:12 ` Kirti Wankhede
2020-05-21 19:28 ` Dr. David Alan Gilbert
2020-05-20 18:24 ` [PATCH QEMU v23 05/18] vfio: Add migration region initialization and finalize function Kirti Wankhede
2020-05-21 9:59 ` Dr. David Alan Gilbert
2020-05-20 18:24 ` [PATCH QEMU v23 06/18] vfio: Add VM state change handler to know state of VM Kirti Wankhede
2020-05-21 11:19 ` Dr. David Alan Gilbert
2020-05-20 18:24 ` [PATCH QEMU v23 07/18] vfio: Add migration state change notifier Kirti Wankhede
2020-05-21 11:31 ` Dr. David Alan Gilbert
2020-05-20 18:24 ` [PATCH QEMU v23 08/18] vfio: Register SaveVMHandlers for VFIO device Kirti Wankhede
2020-05-21 14:18 ` Dr. David Alan Gilbert
2020-05-21 18:00 ` Kirti Wankhede
2020-05-21 19:35 ` Dr. David Alan Gilbert
2020-05-20 18:24 ` [PATCH QEMU v23 09/18] vfio: Add save state functions to SaveVMHandlers Kirti Wankhede
2020-05-21 15:37 ` Dr. David Alan Gilbert
2020-05-21 20:43 ` Peter Xu
2020-05-20 18:24 ` [PATCH QEMU v23 10/18] vfio: Add load " Kirti Wankhede
2020-05-21 15:53 ` Dr. David Alan Gilbert
2020-05-20 18:24 ` [PATCH QEMU v23 11/18] iommu: add callback to get address limit IOMMU supports Kirti Wankhede
2020-05-21 16:13 ` Peter Xu
2020-05-20 18:24 ` [PATCH QEMU v23 12/18] memory: Set DIRTY_MEMORY_MIGRATION when IOMMU is enabled Kirti Wankhede
2020-05-21 16:20 ` Dr. David Alan Gilbert
2020-05-20 18:24 ` [PATCH QEMU v23 13/18] vfio: Get migration capability flags for container Kirti Wankhede
2020-05-20 18:24 ` [PATCH QEMU v23 14/18] vfio: Add function to start and stop dirty pages tracking Kirti Wankhede
2020-05-21 16:50 ` Dr. David Alan Gilbert
2020-05-20 18:24 ` [PATCH QEMU v23 15/18] vfio: Add vfio_listener_log_sync to mark dirty pages Kirti Wankhede
2020-05-21 18:52 ` Dr. David Alan Gilbert
2020-05-20 18:24 ` [PATCH QEMU v23 16/18] vfio: Add ioctl to get dirty pages bitmap during dma unmap Kirti Wankhede
2020-05-21 19:05 ` Dr. David Alan Gilbert
2020-05-20 18:24 ` [PATCH QEMU v23 17/18] vfio: Make vfio-pci device migration capable Kirti Wankhede
2020-05-21 19:16 ` Dr. David Alan Gilbert [this message]
2020-05-20 18:24 ` [PATCH QEMU v23 18/18] qapi: Add VFIO devices migration stats in Migration stats Kirti Wankhede
2020-05-21 19:23 ` Dr. David Alan Gilbert
2020-05-25 14:34 ` Markus Armbruster
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=20200521191609.GO2752@work-vm \
--to=dgilbert@redhat.com \
--cc=Ken.Xue@amd.com \
--cc=Zhengxiao.zx@alibaba-inc.com \
--cc=aik@ozlabs.ru \
--cc=alex.williamson@redhat.com \
--cc=armbru@redhat.com \
--cc=changpeng.liu@intel.com \
--cc=cjia@nvidia.com \
--cc=cohuck@redhat.com \
--cc=eauger@redhat.com \
--cc=eskultet@redhat.com \
--cc=felipe@nutanix.com \
--cc=jonathan.davies@nutanix.com \
--cc=kevin.tian@intel.com \
--cc=kwankhede@nvidia.com \
--cc=mlevitsk@redhat.com \
--cc=pasic@linux.ibm.com \
--cc=pbonzini@redhat.com \
--cc=peterx@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=quintela@redhat.com \
--cc=shuangtai.tst@alibaba-inc.com \
--cc=yan.y.zhao@intel.com \
--cc=yi.l.liu@intel.com \
--cc=zhi.a.wang@intel.com \
--cc=ziye.yang@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.