All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Alexander Duyck <alexander.duyck@gmail.com>
Cc: Yang Zhang <yang.zhang.wz@gmail.com>,
	"Tantilov, Emil S" <emil.s.tantilov@intel.com>,
	kvm@vger.kernel.org, aik@ozlabs.ru, qemu-devel@nongnu.org,
	lcapitulino@redhat.com, Blue Swirl <blauwirbel@gmail.com>,
	kraxel@redhat.com, "Rustad, Mark D" <mark.d.rustad@intel.com>,
	quintela@redhat.com, "Skidmore,
	Donald C" <donald.c.skidmore@intel.com>,
	Alexander Graf <agraf@suse.de>, Or Gerlitz <gerlitz.or@gmail.com>,
	"Dr. David Alan Gilbert" <dgilbert@redhat.com>,
	Alex Williamson <alex.williamson@redhat.com>,
	Anthony Liguori <anthony@codemonkey.ws>,
	cornelia.huck@de.ibm.com, Lan Tianyu <tianyu.lan@intel.com>,
	Ard Biesheuvel <ard.biesheuvel@linaro.org>,
	"Dong, Eddie" <eddie.dong@intel.com>,
	"Jani, Nrupal" <nrupal.jani@intel.com>,
	amit.shah@redhat.com, Paolo Bonzini <pbonzini@redhat.com>
Subject: Re: live migration vs device assignment (motivation)
Date: Sun, 27 Dec 2015 11:21:39 +0200	[thread overview]
Message-ID: <20151227103345-mutt-send-email-mst@redhat.com> (raw)
In-Reply-To: <CAKgT0Udd4UM2S1Ps=HwiNZk4bxV_Kb9okrZ3dZ6dmPOw2eM2DQ@mail.gmail.com>

On Fri, Dec 25, 2015 at 02:31:14PM -0800, Alexander Duyck wrote:
> The PCI hot-plug specification calls out that the OS can optionally
> implement a "pause" mechanism which is meant to be used for high
> availability type environments.  What I am proposing is basically
> extending the standard SHPC capable PCI bridge so that we can support
> the DMA page dirtying for everything hosted on it, add a vendor
> specific block to the config space so that the guest can notify the
> host that it will do page dirtying, and add a mechanism to indicate
> that all hot-plug events during the warm-up phase of the migration are
> pause events instead of full removals.

Two comments:

1. A vendor specific capability will always be problematic.
Better to register a capability id with pci sig.

2. There are actually several capabilities:

A. support for memory dirtying
	if not supported, we must stop device before migration

	This is supported by core guest OS code,
	using patches similar to posted by you.


B. support for device replacement
	This is a faster form of hotplug, where device is removed and
	later another device using same driver is inserted in the same slot.

	This is a possible optimization, but I am convinced
	(A) should be implemented independently of (B).
	
	


> I've been poking around in the kernel and QEMU code and the part I
> have been trying to sort out is how to get QEMU based pci-bridge to
> use the SHPC driver because from what I can tell the driver never
> actually gets loaded on the device as it is left in the control of
> ACPI hot-plug.
> 
> - Alex

There are ways, but you can just use pci express, it's easier.

-- 
MST

WARNING: multiple messages have this Message-ID (diff)
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Alexander Duyck <alexander.duyck@gmail.com>
Cc: Yang Zhang <yang.zhang.wz@gmail.com>,
	"Tantilov, Emil S" <emil.s.tantilov@intel.com>,
	kvm@vger.kernel.org, aik@ozlabs.ru, qemu-devel@nongnu.org,
	lcapitulino@redhat.com, Blue Swirl <blauwirbel@gmail.com>,
	kraxel@redhat.com, "Rustad, Mark D" <mark.d.rustad@intel.com>,
	quintela@redhat.com, "Skidmore,
	Donald C" <donald.c.skidmore@intel.com>,
	Alexander Graf <agraf@suse.de>, Or Gerlitz <gerlitz.or@gmail.com>,
	"Dr. David Alan Gilbert" <dgilbert@redhat.com>,
	Alex Williamson <alex.williamson@redhat.com>,
	Anthony Liguori <anthony@codemonkey.ws>,
	cornelia.huck@de.ibm.com, Lan Tianyu <tianyu.lan@intel.com>,
	Ard Biesheuvel <ard.biesheuvel@linaro.org>,
	"Dong, Eddie" <eddie.dong@intel.com>,
	"Jani, Nrupal" <nrupal.jani@intel.com>,
	amit.shah@redhat.com, Paolo Bonzini <pbonzini@redhat.com>
Subject: Re: [Qemu-devel] live migration vs device assignment (motivation)
Date: Sun, 27 Dec 2015 11:21:39 +0200	[thread overview]
Message-ID: <20151227103345-mutt-send-email-mst@redhat.com> (raw)
In-Reply-To: <CAKgT0Udd4UM2S1Ps=HwiNZk4bxV_Kb9okrZ3dZ6dmPOw2eM2DQ@mail.gmail.com>

On Fri, Dec 25, 2015 at 02:31:14PM -0800, Alexander Duyck wrote:
> The PCI hot-plug specification calls out that the OS can optionally
> implement a "pause" mechanism which is meant to be used for high
> availability type environments.  What I am proposing is basically
> extending the standard SHPC capable PCI bridge so that we can support
> the DMA page dirtying for everything hosted on it, add a vendor
> specific block to the config space so that the guest can notify the
> host that it will do page dirtying, and add a mechanism to indicate
> that all hot-plug events during the warm-up phase of the migration are
> pause events instead of full removals.

Two comments:

1. A vendor specific capability will always be problematic.
Better to register a capability id with pci sig.

2. There are actually several capabilities:

A. support for memory dirtying
	if not supported, we must stop device before migration

	This is supported by core guest OS code,
	using patches similar to posted by you.


B. support for device replacement
	This is a faster form of hotplug, where device is removed and
	later another device using same driver is inserted in the same slot.

	This is a possible optimization, but I am convinced
	(A) should be implemented independently of (B).
	
	


> I've been poking around in the kernel and QEMU code and the part I
> have been trying to sort out is how to get QEMU based pci-bridge to
> use the SHPC driver because from what I can tell the driver never
> actually gets loaded on the device as it is left in the control of
> ACPI hot-plug.
> 
> - Alex

There are ways, but you can just use pci express, it's easier.

-- 
MST

  reply	other threads:[~2015-12-27  9:21 UTC|newest]

Thread overview: 142+ 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 ` [Qemu-devel] " 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   ` [Qemu-devel] " 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-11-24 13:35   ` [Qemu-devel] " Lan Tianyu
2015-12-02 22:25   ` Alex Williamson
2015-12-02 22:25     ` [Qemu-devel] " Alex Williamson
2015-12-03  8:40     ` Lan, Tianyu
2015-12-03  8:40       ` [Qemu-devel] " Lan, Tianyu
2015-12-03 15:26       ` Alex Williamson
2015-12-03 15:26         ` [Qemu-devel] " 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   ` [Qemu-devel] " 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   ` [Qemu-devel] " 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   ` [Qemu-devel] " Lan Tianyu
2015-11-24 13:35 ` [RFC PATCH V2 06/10] Qemu/PCI: Add macros for faked PCI migration capability Lan Tianyu
2015-11-24 13:35   ` [Qemu-devel] " Lan Tianyu
2015-12-02 22:25   ` Alex Williamson
2015-12-02 22:25     ` [Qemu-devel] " Alex Williamson
2015-12-03  8:57     ` Lan, Tianyu
2015-12-03  8:57       ` [Qemu-devel] " 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   ` [Qemu-devel] " 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   ` [Qemu-devel] " Lan Tianyu
2015-11-24 13:35 ` [RFC PATCH V2 09/10] Qemu/VFIO: Add SRIOV VF migration support Lan Tianyu
2015-11-24 13:35   ` [Qemu-devel] " Lan Tianyu
2015-11-24 21:03   ` Michael S. Tsirkin
2015-11-24 21:03     ` [Qemu-devel] " Michael S. Tsirkin
2015-11-25 15:32     ` Lan, Tianyu
2015-11-25 15:32       ` [Qemu-devel] " Lan, Tianyu
2015-11-25 15:44       ` Michael S. Tsirkin
2015-11-25 15:44         ` [Qemu-devel] " Michael S. Tsirkin
2015-12-02 22:25   ` Alex Williamson
2015-12-02 22:25     ` [Qemu-devel] " Alex Williamson
2015-12-03  8:56     ` Lan, Tianyu
2015-12-03  8:56       ` [Qemu-devel] " 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-24 13:35   ` [Qemu-devel] " Lan Tianyu
2015-11-30  8:01 ` [RFC PATCH V2 00/10] Qemu: Add live migration support for SRIOV NIC Michael S. Tsirkin
2015-11-30  8:01   ` [Qemu-devel] " Michael S. Tsirkin
2015-12-01  6:26   ` Lan, Tianyu
2015-12-01  6:26     ` [Qemu-devel] " Lan, Tianyu
2015-12-01 15:02     ` Michael S. Tsirkin
2015-12-01 15:02       ` [Qemu-devel] " Michael S. Tsirkin
2015-12-02 14:08       ` Lan, Tianyu
2015-12-02 14:08         ` [Qemu-devel] " Lan, Tianyu
2015-12-02 14:31         ` Michael S. Tsirkin
2015-12-02 14:31           ` [Qemu-devel] " Michael S. Tsirkin
2015-12-03 14:53           ` Lan, Tianyu
2015-12-03 14:53             ` [Qemu-devel] " Lan, Tianyu
2015-12-04  6:42           ` Lan, Tianyu
2015-12-04  6:42             ` [Qemu-devel] " Lan, Tianyu
2015-12-04  8:05             ` Michael S. Tsirkin
2015-12-04  8:05               ` [Qemu-devel] " Michael S. Tsirkin
2015-12-04 12:11               ` Lan, Tianyu
2015-12-04 12:11                 ` [Qemu-devel] " Lan, Tianyu
2015-12-03 18:32         ` Alexander Duyck
2015-12-03 18:32           ` [Qemu-devel] " 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-07 16:50   ` [Qemu-devel] " Michael S. Tsirkin
2015-12-09 16:26   ` live migration vs device assignment (motivation) Lan, Tianyu
2015-12-09 16:26     ` [Qemu-devel] " Lan, Tianyu
2015-12-09 17:14     ` Alexander Duyck
2015-12-09 17:14       ` [Qemu-devel] " Alexander Duyck
2015-12-10  3:15       ` Lan, Tianyu
2015-12-10  3:15         ` [Qemu-devel] " Lan, Tianyu
2015-12-09 20:07     ` Michael S. Tsirkin
2015-12-09 20:07       ` [Qemu-devel] " Michael S. Tsirkin
2015-12-10  3:04       ` Lan, Tianyu
2015-12-10  3:04         ` [Qemu-devel] " Lan, Tianyu
2015-12-10  8:38         ` Michael S. Tsirkin
2015-12-10  8:38           ` [Qemu-devel] " Michael S. Tsirkin
2015-12-10 14:23           ` Lan, Tianyu
2015-12-10 14:23             ` [Qemu-devel] " Lan, Tianyu
2015-12-10 10:18     ` Dr. David Alan Gilbert
2015-12-10 10:18       ` Dr. David Alan Gilbert
2015-12-10 11:28       ` Yang Zhang
2015-12-10 11:28         ` Yang Zhang
2015-12-10 11:41         ` Dr. David Alan Gilbert
2015-12-10 11:41           ` Dr. David Alan Gilbert
2015-12-10 13:07           ` Yang Zhang
2015-12-10 13:07             ` Yang Zhang
2015-12-10 14:38           ` Lan, Tianyu
2015-12-10 14:38             ` [Qemu-devel] " Lan, Tianyu
2015-12-10 16:11             ` Michael S. Tsirkin
2015-12-10 16:11               ` Michael S. Tsirkin
2015-12-10 19:17               ` Alexander Duyck
2015-12-10 19:17                 ` Alexander Duyck
2015-12-11  7:32               ` Lan, Tianyu
2015-12-11  7:32                 ` Lan, Tianyu
2015-12-14  9:12                 ` Michael S. Tsirkin
2015-12-14  9:12                   ` Michael S. Tsirkin
2015-12-10 16:23             ` Dr. David Alan Gilbert
2015-12-10 16:23               ` Dr. David Alan Gilbert
2015-12-10 17:16             ` Alexander Duyck
2015-12-10 17:16               ` Alexander Duyck
2015-12-13 15:47               ` Lan, Tianyu
2015-12-13 15:47                 ` Lan, Tianyu
2015-12-13 19:30                 ` Alexander Duyck
2015-12-13 19:30                   ` Alexander Duyck
2015-12-25  7:03                   ` Lan Tianyu
2015-12-25  7:03                     ` [Qemu-devel] " Lan Tianyu
2015-12-25 12:11                     ` Michael S. Tsirkin
2015-12-25 12:11                       ` Michael S. Tsirkin
2015-12-28 17:42                       ` Lan, Tianyu
2015-12-28 17:42                         ` Lan, Tianyu
2015-12-29 16:46                         ` Michael S. Tsirkin
2015-12-29 16:46                           ` Michael S. Tsirkin
2015-12-29 17:04                           ` Alexander Duyck
2015-12-29 17:04                             ` Alexander Duyck
2015-12-29 17:15                             ` Michael S. Tsirkin
2015-12-29 17:15                               ` [Qemu-devel] " Michael S. Tsirkin
2015-12-29 18:04                               ` Alexander Duyck
2015-12-29 18:04                                 ` Alexander Duyck
2016-01-04  2:15                           ` Lan Tianyu
2016-01-04  2:15                             ` Lan Tianyu
2015-12-25 22:31                     ` Alexander Duyck
2015-12-25 22:31                       ` Alexander Duyck
2015-12-27  9:21                       ` Michael S. Tsirkin [this message]
2015-12-27  9:21                         ` Michael S. Tsirkin
2015-12-27 21:45                         ` Alexander Duyck
2015-12-27 21:45                           ` Alexander Duyck
2015-12-28  8:51                           ` Michael S. Tsirkin
2015-12-28  8:51                             ` Michael S. Tsirkin
2015-12-28  3:20                       ` Dong, Eddie
2015-12-28  3:20                         ` Dong, Eddie
2015-12-28  4:26                         ` Alexander Duyck
2015-12-28  4:26                           ` [Qemu-devel] " Alexander Duyck
2015-12-28 11:50                         ` Michael S. Tsirkin
2015-12-28 11:50                           ` Michael S. Tsirkin
2015-12-14  9:26                 ` Michael S. Tsirkin
2015-12-14  9:26                   ` Michael S. Tsirkin
2015-12-28  8:52                   ` Pavel Fedin
2015-12-28  8:52                     ` Pavel Fedin
2015-12-28 11:51                     ` Michael S. Tsirkin
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
2016-03-17  9:15   ` 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=20151227103345-mutt-send-email-mst@redhat.com \
    --to=mst@redhat.com \
    --cc=agraf@suse.de \
    --cc=aik@ozlabs.ru \
    --cc=alex.williamson@redhat.com \
    --cc=alexander.duyck@gmail.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 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.