From: "Michael S. Tsirkin" <mst@redhat.com>
To: "Lan, Tianyu" <tianyu.lan@intel.com>
Cc: "Dr. David Alan Gilbert" <dgilbert@redhat.com>,
Yang Zhang <yang.zhang.wz@gmail.com>,
qemu-devel@nongnu.org, emil.s.tantilov@intel.com,
kvm@vger.kernel.org, ard.biesheuvel@linaro.org, aik@ozlabs.ru,
donald.c.skidmore@intel.com, quintela@redhat.com,
eddie.dong@intel.com, nrupal.jani@intel.com, agraf@suse.de,
blauwirbel@gmail.com, cornelia.huck@de.ibm.com,
alex.williamson@redhat.com, kraxel@redhat.com,
anthony@codemonkey.ws, amit.shah@redhat.com, pbonzini@redhat.com,
mark.d.rustad@intel.com, lcapitulino@redhat.com,
gerlitz.or@gmail.com
Subject: Re: [Qemu-devel] live migration vs device assignment (motivation)
Date: Mon, 14 Dec 2015 11:12:12 +0200 [thread overview]
Message-ID: <20151214110116-mutt-send-email-mst@redhat.com> (raw)
In-Reply-To: <566A7BF4.1020704@intel.com>
On Fri, Dec 11, 2015 at 03:32:04PM +0800, Lan, Tianyu wrote:
>
>
> On 12/11/2015 12:11 AM, Michael S. Tsirkin wrote:
> >On Thu, Dec 10, 2015 at 10:38:32PM +0800, Lan, Tianyu 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.
> >
> >Right, this is the "good path" optimization. Whether this buys anything
> >as compared to just sending reset to the device when VCPU is stopped
> >needs to be measured. In any case, we probably do need a way to
> >interrupt driver on destination to make it reconfigure the device -
> >otherwise it might take seconds for it to notice. And a way to make
> >sure driver can handle this surprise reset so we can block migration if
> >it can't.
> >
>
> Yes, we need such a way to notify driver about migration status and do
> reset or restore operation on the destination machine. My original
> design is to take advantage of device's irq to do that. Driver can tell
> Qemu that which irq it prefers to handle such task and whether the irq
> is enabled or bound with handler. We may discuss the detail in the other
> thread.
>
> >>>
> >>>>>>>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
> >
> >VT-D supports setting dirty bit in the PTE in hardware.
>
> Actually, this doesn't support in the current hardware.
> VTD spec documents the dirty bit for first level translation which
> requires devices to support DMA request with PASID(process
> address space identifier). Most device don't support the feature.
True, I missed this. It's generally unfortunate that first level
translation only applies to requests with PASID. All other features
limited to requests with PASID like nested translation would be very
useful for all requests, not just requests with PASID.
> >
> >>and it's hard to modify
> >>bus level code.
> >
> >Why is it hard?
>
> As Yang said, the concern is that PCI Spec doesn't document about how to do
> migration.
We can submit a PCI spec ECN documenting a new capability.
I think for existing devices which lack it, adding this capability to
the bridge to which the device is attached is preferable to trying to
add it to the device itself.
> >
> >>It also will block implementation on the Windows.
> >
> >Implementation of what? We are discussing motivation here, not
> >implementation. E.g. windows drivers typically support surprise
> >removal, should you use that, you get some working code for free. Just
> >stop worrying about it. Make it work, worry about closed source
> >software later.
> >
> >>>Dave
> >>>
next prev parent reply other threads:[~2015-12-14 9:12 UTC|newest]
Thread overview: 71+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-24 13:35 [RFC PATCH V2 00/10] Qemu: Add live migration support for SRIOV NIC Lan Tianyu
2015-11-24 13:35 ` [RFC PATCH V2 01/10] Qemu/VFIO: Create head file pci.h to share data struct Lan Tianyu
2015-11-24 13:35 ` [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 ` [RFC PATCH V2 03/10] Qemu/VFIO: Rework vfio_std_cap_max_size() function Lan Tianyu
2015-11-24 13:35 ` [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 ` [RFC PATCH V2 05/10] Qemu/VFIO: Expose PCI config space read/write and msix functions Lan Tianyu
2015-11-24 13:35 ` [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 ` [RFC PATCH V2 07/10] Qemu: Add post_load_state() to run after restoring CPU state Lan Tianyu
2015-11-24 13:35 ` [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 ` [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 ` [RFC PATCH V2 10/10] Qemu/VFIO: Misc change for enable migration with VFIO Lan Tianyu
2015-11-30 8:01 ` [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 ` 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 ` 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 ` [Qemu-devel] " 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 ` [Qemu-devel] " 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 [this message]
2015-12-10 16:23 ` Dr. David Alan Gilbert
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 ` [Qemu-devel] " 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 ` [Qemu-devel] " 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 ` [Qemu-devel] " 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 ` [Qemu-devel] " 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=20151214110116-mutt-send-email-mst@redhat.com \
--to=mst@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=dgilbert@redhat.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=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).