[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v4 04/13] vfio: Add migration region initializat
From: |
Cornelia Huck |
Subject: |
Re: [Qemu-devel] [PATCH v4 04/13] vfio: Add migration region initialization and finalize function |
Date: |
Mon, 24 Jun 2019 16:00:38 +0200 |
On Thu, 20 Jun 2019 20:07:32 +0530
Kirti Wankhede <address@hidden> wrote:
> - Migration functions are implemented for VFIO_DEVICE_TYPE_PCI device in this
> patch series.
> - VFIO device supports migration or not is decided based of migration region
> query. If migration region query is successful then migration is supported
> else migration is blocked.
>
> Signed-off-by: Kirti Wankhede <address@hidden>
> Reviewed-by: Neo Jia <address@hidden>
> ---
> hw/vfio/Makefile.objs | 2 +-
> hw/vfio/migration.c | 137
> ++++++++++++++++++++++++++++++++++++++++++
> include/hw/vfio/vfio-common.h | 14 +++++
> 3 files changed, 152 insertions(+), 1 deletion(-)
> create mode 100644 hw/vfio/migration.c
(...)
> +static int vfio_migration_region_init(VFIODevice *vbasedev)
> +{
> + VFIOMigration *migration = vbasedev->migration;
> + Object *obj = NULL;
> + int ret = -EINVAL;
> +
> + if (!migration) {
> + return ret;
> + }
> +
> + /* Migration support added for PCI device only */
> + if (vbasedev->type == VFIO_DEVICE_TYPE_PCI) {
> + obj = vfio_pci_get_object(vbasedev);
> + }
Hm... what about instead including an (optional) callback in
VFIODeviceOps that returns the object embedding the VFIODevice? No need
to adapt this code if we introduce support for a non-pci device, and the
callback function also allows to support migration in a more
finegrained way than by device type.
> +
> + if (!obj) {
> + return ret;
> + }
> +
> + ret = vfio_region_setup(obj, vbasedev, &migration->region.buffer,
> + migration->region.index, "migration");
> + if (ret) {
> + error_report("Failed to setup VFIO migration region %d: %s",
> + migration->region.index, strerror(-ret));
> + goto err;
> + }
> +
> + if (!migration->region.buffer.size) {
> + ret = -EINVAL;
> + error_report("Invalid region size of VFIO migration region %d: %s",
> + migration->region.index, strerror(-ret));
> + goto err;
> + }
> +
> + return 0;
> +
> +err:
> + vfio_migration_region_exit(vbasedev);
> + return ret;
> +}
(...)
- [Qemu-devel] [PATCH v4 03/13] vfio: Add save and load functions for VFIO PCI devices, (continued)
- [Qemu-devel] [PATCH v4 07/13] vfio: Register SaveVMHandlers for VFIO device, Kirti Wankhede, 2019/06/20
- [Qemu-devel] [PATCH v4 06/13] vfio: Add migration state change notifier, Kirti Wankhede, 2019/06/20
- [Qemu-devel] [PATCH v4 04/13] vfio: Add migration region initialization and finalize function, Kirti Wankhede, 2019/06/20
- Re: [Qemu-devel] [PATCH v4 04/13] vfio: Add migration region initialization and finalize function,
Cornelia Huck <=
- [Qemu-devel] [PATCH v4 08/13] vfio: Add save state functions to SaveVMHandlers, Kirti Wankhede, 2019/06/20
- Re: [Qemu-devel] [PATCH v4 08/13] vfio: Add save state functions to SaveVMHandlers, Alex Williamson, 2019/06/20
- Re: [Qemu-devel] [PATCH v4 08/13] vfio: Add save state functions to SaveVMHandlers, Kirti Wankhede, 2019/06/21
- Re: [Qemu-devel] [PATCH v4 08/13] vfio: Add save state functions to SaveVMHandlers, Alex Williamson, 2019/06/21
- Re: [Qemu-devel] [PATCH v4 08/13] vfio: Add save state functions to SaveVMHandlers, Kirti Wankhede, 2019/06/21
- Re: [Qemu-devel] [PATCH v4 08/13] vfio: Add save state functions to SaveVMHandlers, Alex Williamson, 2019/06/21
- Re: [Qemu-devel] [PATCH v4 08/13] vfio: Add save state functions to SaveVMHandlers, Kirti Wankhede, 2019/06/21
- Re: [Qemu-devel] [PATCH v4 08/13] vfio: Add save state functions to SaveVMHandlers, Alex Williamson, 2019/06/21
- Re: [Qemu-devel] [PATCH v4 08/13] vfio: Add save state functions to SaveVMHandlers, Kirti Wankhede, 2019/06/21