From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
To: Yulei Zhang <yulei.zhang@intel.com>
Cc: qemu-devel@nongnu.org, kevin.tian@intel.com,
joonas.lahtinen@linux.intel.com, zhenyuw@linux.intel.com,
xiao.zheng@intel.com, zhi.a.wang@intel.com
Subject: Re: [Qemu-devel] [RFC 0/5] vfio: Introduce Live migration capability to vfio_mdev device
Date: Tue, 27 Jun 2017 11:28:06 +0100 [thread overview]
Message-ID: <20170627102806.GB2123@work-vm> (raw)
In-Reply-To: <1491301529-24125-1-git-send-email-yulei.zhang@intel.com>
* Yulei Zhang (yulei.zhang@intel.com) wrote:
> Summary
>
> This series RFC would like to introduce the live migration capability
> to vfio_mdev device.
>
> As currently vfio_mdev device don't support migration, we introduce a
> device flag VFIO_DEVICE_FLAGS_MIGRATABLE to help determine whether the
> mdev device can be migrate or not, it will check the flag during the
> device initialization and decide to init the new vfio region
> VFIO_PCI_DEVICE_STATE_REGION_INDEX.
>
> The intention to add the new region is using it for vfio_mdev device
> status save and restore during the migration. The access to this region
> will be trapped and forward to the vfio_mdev device driver. There is
> an alternative way to achieve it is to add a new vfio ioctl to help fetch
> and save the device status.
>
> Also this series include two new vfio ioctl
> #define VFIO_DEVICE_PCI_STATUS_SET _IO(VFIO_TYPE, VFIO_BASE + 14)
> #define VFIO_DEVICE_PCI_GET_DIRTY_BITMAP _IO(VFIO_TYPE, VFIO_BASE + 15)
>
> The first one is used to contorl the device running status, we want to
> stop the mdev device before quary the status from its device driver and
> restart the device after migration.
> The second one is used to do the mdev device dirty page synchronization.
>
> So the vfio_mdev device migration sequence would be
> Source VM side:
> start migration
> |
> V
> get the cpu state change callback
> use status set ioctl to stop the mdev device
> |
> V
> save the deivce status into Qemufile which is
> read from the new vfio device status region
> |
> V
> quary the dirty page bitmap from deivce
> and add into qemu dirty list for sync
That ordering is interesting; I think the main migration flow
is normally to complete migration of RAM and then migrate the
devices; so I worry about that order.
Dave
> Target VM side:
> restore the mdev device after get the
> saved status context from Qemufile
> |
> V
> get the cpu state change callback
> use status set ioctl to start the mdev
> device to put it in running status
> |
> V
> finish migration
>
> Yulei Zhang (5):
> vfio: introduce a new VFIO region for migration support
> vfio: Add struct vfio_vmstate_info to introduce vfio device put/get
> funtion
> vfio: introduce new VFIO ioctl VFIO_DEVICE_PCI_STATUS_SET
> vfio: use vfio_device_put/vfio_device_get for device status
> save/restore
> vifo: introduce new VFIO ioctl VFIO_DEVICE_PCI_GET_DIRTY_BITMAP
>
> hw/vfio/pci.c | 204 ++++++++++++++++++++++++++++++++++++++++++++-
> hw/vfio/pci.h | 3 +
> linux-headers/linux/vfio.h | 34 +++++++-
> 3 files changed, 239 insertions(+), 2 deletions(-)
>
> --
> 2.7.4
>
>
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
next prev parent reply other threads:[~2017-06-27 10:28 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-26 8:51 [Qemu-devel] [RFC 0/5] vfio: Introduce Live migration capability to vfio_mdev device Yulei Zhang
2017-06-27 10:28 ` Dr. David Alan Gilbert [this message]
2017-07-24 8:48 ` Zhang, Yulei
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=20170627102806.GB2123@work-vm \
--to=dgilbert@redhat.com \
--cc=joonas.lahtinen@linux.intel.com \
--cc=kevin.tian@intel.com \
--cc=qemu-devel@nongnu.org \
--cc=xiao.zheng@intel.com \
--cc=yulei.zhang@intel.com \
--cc=zhenyuw@linux.intel.com \
--cc=zhi.a.wang@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).