qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
To: "Lan, Tianyu" <tianyu.lan@intel.com>
Cc: Yang Zhang <yang.zhang.wz@gmail.com>,
	emil.s.tantilov@intel.com, kvm@vger.kernel.org,
	"Michael S. Tsirkin" <mst@redhat.com>,
	aik@ozlabs.ru, qemu-devel@nongnu.org, lcapitulino@redhat.com,
	blauwirbel@gmail.com, kraxel@redhat.com, mark.d.rustad@intel.com,
	quintela@redhat.com, donald.c.skidmore@intel.com, agraf@suse.de,
	gerlitz.or@gmail.com, alex.williamson@redhat.com,
	anthony@codemonkey.ws, cornelia.huck@de.ibm.com,
	ard.biesheuvel@linaro.org, eddie.dong@intel.com,
	nrupal.jani@intel.com, amit.shah@redhat.com, pbonzini@redhat.com
Subject: Re: [Qemu-devel] live migration vs device assignment (motivation)
Date: Thu, 10 Dec 2015 16:23:44 +0000	[thread overview]
Message-ID: <20151210162343.GH2570@work-vm> (raw)
In-Reply-To: <56698E68.5040207@intel.com>

* Lan, Tianyu (tianyu.lan@intel.com) wrote:
> 
> 
> On 12/10/2015 7:41 PM, Dr. David Alan Gilbert wrote:
> >>Ideally, it is able to leave guest driver unmodified but it requires the
> >>>hypervisor or qemu to aware the device which means we may need a driver in
> >>>hypervisor or qemu to handle the device on behalf of guest driver.
> >Can you answer the question of when do you use your code -
> >    at the start of migration or
> >    just before the end?
> 
> Just before stopping VCPU in this version and inject VF mailbox irq to
> notify the driver if the irq handler is installed.
> Qemu side also will check this via the faked PCI migration capability
> and driver will set the status during device open() or resume() callback.

OK, hmm - I can see that would work in some cases; but:
   a) It wouldn't work if the guest was paused, the management can pause it before
     starting migration or during migration - so you might need to hook the pause
     as well;  so that's a bit complicated.

   b) How long does qemu wait for the guest to respond, and what does it do if
      the guest doesn't respond ?  How do we recover?

   c) How much work does the guest need to do at this point?

   d) It would be great if we could find a more generic way of telling the guest
      it's about to migrate rather than via the PCI registers of one device; imagine
      what happens if you have a few different devices using SR-IOV, we'd have to tell
      them all with separate interrupts.   Perhaps we could use a virtio channel or
      an ACPI event or something?

> >>>> >It would be great if we could avoid changing the guest; but at least your guest
> >>>> >driver changes don't actually seem to be that hardware specific; could your
> >>>> >changes actually be moved to generic PCI level so they could be made
> >>>> >to work for lots of drivers?
> >>>
> >>>It is impossible to use one common solution for all devices unless the PCIE
> >>>spec documents it clearly and i think one day it will be there. But before
> >>>that, we need some workarounds on guest driver to make it work even it looks
> >>>ugly.
> 
> Yes, so far there is not hardware migration support and it's hard to modify
> bus level code. It also will block implementation on the Windows.

Well, there was agraf's trick, although that's a lot more complicated at the qemu
level, but it should work with no guest modifications.  Michael's point about
dirty page tracking is neat, I think that simplifies it a bit if it can track dirty
pages.

Dave

> >Dave
> >
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK

  parent reply	other threads:[~2015-12-10 16:23 UTC|newest]

Thread overview: 71+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-11-24 13:35 [Qemu-devel] [RFC PATCH V2 00/10] Qemu: Add live migration support for SRIOV NIC Lan Tianyu
2015-11-24 13:35 ` [Qemu-devel] [RFC PATCH V2 01/10] Qemu/VFIO: Create head file pci.h to share data struct Lan Tianyu
2015-11-24 13:35 ` [Qemu-devel] [RFC PATCH V2 02/10] Qemu/VFIO: Add new VFIO_GET_PCI_CAP_INFO ioctl cmd definition Lan Tianyu
2015-12-02 22:25   ` Alex Williamson
2015-12-03  8:40     ` Lan, Tianyu
2015-12-03 15:26       ` Alex Williamson
2015-11-24 13:35 ` [Qemu-devel] [RFC PATCH V2 03/10] Qemu/VFIO: Rework vfio_std_cap_max_size() function Lan Tianyu
2015-11-24 13:35 ` [Qemu-devel] [RFC PATCH V2 04/10] Qemu/VFIO: Add vfio_find_free_cfg_reg() to find free PCI config space regs Lan Tianyu
2015-11-24 13:35 ` [Qemu-devel] [RFC PATCH V2 05/10] Qemu/VFIO: Expose PCI config space read/write and msix functions Lan Tianyu
2015-11-24 13:35 ` [Qemu-devel] [RFC PATCH V2 06/10] Qemu/PCI: Add macros for faked PCI migration capability Lan Tianyu
2015-12-02 22:25   ` Alex Williamson
2015-12-03  8:57     ` Lan, Tianyu
2015-11-24 13:35 ` [Qemu-devel] [RFC PATCH V2 07/10] Qemu: Add post_load_state() to run after restoring CPU state Lan Tianyu
2015-11-24 13:35 ` [Qemu-devel] [RFC PATCH V2 08/10] Qemu: Add save_before_stop callback to run just before stopping VCPU during migration Lan Tianyu
2015-11-24 13:35 ` [Qemu-devel] [RFC PATCH V2 09/10] Qemu/VFIO: Add SRIOV VF migration support Lan Tianyu
2015-11-24 21:03   ` Michael S. Tsirkin
2015-11-25 15:32     ` Lan, Tianyu
2015-11-25 15:44       ` Michael S. Tsirkin
2015-12-02 22:25   ` Alex Williamson
2015-12-03  8:56     ` Lan, Tianyu
2015-11-24 13:35 ` [Qemu-devel] [RFC PATCH V2 10/10] Qemu/VFIO: Misc change for enable migration with VFIO Lan Tianyu
2015-11-30  8:01 ` [Qemu-devel] [RFC PATCH V2 00/10] Qemu: Add live migration support for SRIOV NIC Michael S. Tsirkin
2015-12-01  6:26   ` Lan, Tianyu
2015-12-01 15:02     ` Michael S. Tsirkin
2015-12-02 14:08       ` Lan, Tianyu
2015-12-02 14:31         ` Michael S. Tsirkin
2015-12-03 14:53           ` Lan, Tianyu
2015-12-04  6:42           ` Lan, Tianyu
2015-12-04  8:05             ` Michael S. Tsirkin
2015-12-04 12:11               ` Lan, Tianyu
2015-12-03 18:32         ` Alexander Duyck
2015-12-07 16:50 ` [Qemu-devel] live migration vs device assignment (was Re: [RFC PATCH V2 00/10] Qemu: Add live migration support for SRIOV NIC) Michael S. Tsirkin
2015-12-09 16:26   ` [Qemu-devel] live migration vs device assignment (motivation) Lan, Tianyu
2015-12-09 17:14     ` Alexander Duyck
2015-12-10  3:15       ` Lan, Tianyu
2015-12-09 20:07     ` Michael S. Tsirkin
2015-12-10  3:04       ` Lan, Tianyu
2015-12-10  8:38         ` Michael S. Tsirkin
2015-12-10 14:23           ` Lan, Tianyu
2015-12-10 10:18     ` Dr. David Alan Gilbert
2015-12-10 11:28       ` Yang Zhang
2015-12-10 11:41         ` Dr. David Alan Gilbert
2015-12-10 13:07           ` Yang Zhang
2015-12-10 14:38           ` Lan, Tianyu
2015-12-10 16:11             ` Michael S. Tsirkin
2015-12-10 19:17               ` Alexander Duyck
2015-12-11  7:32               ` Lan, Tianyu
2015-12-14  9:12                 ` Michael S. Tsirkin
2015-12-10 16:23             ` Dr. David Alan Gilbert [this message]
2015-12-10 17:16             ` Alexander Duyck
2015-12-13 15:47               ` Lan, Tianyu
2015-12-13 19:30                 ` Alexander Duyck
2015-12-25  7:03                   ` Lan Tianyu
2015-12-25 12:11                     ` Michael S. Tsirkin
2015-12-28 17:42                       ` Lan, Tianyu
2015-12-29 16:46                         ` Michael S. Tsirkin
2015-12-29 17:04                           ` Alexander Duyck
2015-12-29 17:15                             ` Michael S. Tsirkin
2015-12-29 18:04                               ` Alexander Duyck
2016-01-04  2:15                           ` Lan Tianyu
2015-12-25 22:31                     ` Alexander Duyck
2015-12-27  9:21                       ` Michael S. Tsirkin
2015-12-27 21:45                         ` Alexander Duyck
2015-12-28  8:51                           ` Michael S. Tsirkin
2015-12-28  3:20                       ` Dong, Eddie
2015-12-28  4:26                         ` Alexander Duyck
2015-12-28 11:50                         ` Michael S. Tsirkin
2015-12-14  9:26                 ` Michael S. Tsirkin
2015-12-28  8:52                   ` Pavel Fedin
2015-12-28 11:51                     ` Michael S. Tsirkin
2016-03-17  9:15 ` [Qemu-devel] [RFC PATCH V2 00/10] Qemu: Add live migration support for SRIOV NIC Wei Yang

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=20151210162343.GH2570@work-vm \
    --to=dgilbert@redhat.com \
    --cc=agraf@suse.de \
    --cc=aik@ozlabs.ru \
    --cc=alex.williamson@redhat.com \
    --cc=amit.shah@redhat.com \
    --cc=anthony@codemonkey.ws \
    --cc=ard.biesheuvel@linaro.org \
    --cc=blauwirbel@gmail.com \
    --cc=cornelia.huck@de.ibm.com \
    --cc=donald.c.skidmore@intel.com \
    --cc=eddie.dong@intel.com \
    --cc=emil.s.tantilov@intel.com \
    --cc=gerlitz.or@gmail.com \
    --cc=kraxel@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=lcapitulino@redhat.com \
    --cc=mark.d.rustad@intel.com \
    --cc=mst@redhat.com \
    --cc=nrupal.jani@intel.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=quintela@redhat.com \
    --cc=tianyu.lan@intel.com \
    --cc=yang.zhang.wz@gmail.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).