qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Alex Williamson <alex.williamson@redhat.com>
To: Avihai Horon <avihaih@nvidia.com>
Cc: <qemu-devel@nongnu.org>, Halil Pasic <pasic@linux.ibm.com>,
	Christian Borntraeger <borntraeger@linux.ibm.com>,
	Eric Farman <farman@linux.ibm.com>,
	Richard Henderson <richard.henderson@linaro.org>,
	David Hildenbrand <david@redhat.com>,
	"Ilya Leoshkevich" <iii@linux.ibm.com>,
	Thomas Huth <thuth@redhat.com>,
	"Juan Quintela" <quintela@redhat.com>,
	"Dr. David Alan Gilbert" <dgilbert@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Cornelia Huck <cohuck@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Stefan Hajnoczi <stefanha@redhat.com>, Fam Zheng <fam@euphon.net>,
	Eric Blake <eblake@redhat.com>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>,
	John Snow <jsnow@redhat.com>, <qemu-s390x@nongnu.org>,
	<qemu-block@nongnu.org>, Yishai Hadas <yishaih@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Maor Gottlieb <maorg@nvidia.com>,
	Kirti Wankhede <kwankhede@nvidia.com>,
	Tarun Gupta <targupta@nvidia.com>,
	Joao Martins <joao.m.martins@oracle.com>
Subject: Re: [PATCH v5 00/14] vfio/migration: Implement VFIO migration protocol v2
Date: Fri, 6 Jan 2023 16:36:09 -0700	[thread overview]
Message-ID: <20230106163609.430628cd.alex.williamson@redhat.com> (raw)
In-Reply-To: <20221229110345.12480-1-avihaih@nvidia.com>

On Thu, 29 Dec 2022 13:03:31 +0200
Avihai Horon <avihaih@nvidia.com> wrote:

> Hello,
> 
> Now that QEMU 8.0 development cycle has started and MIG_DATA_SIZE ioctl
> is in kernel v6.2-rc1, I am sending v5 of this series with linux headers
> update and with the preview patches in v4 merged into this series.
> 
> 
> 
> Following VFIO migration protocol v2 acceptance in kernel, this series
> implements VFIO migration according to the new v2 protocol and replaces
> the now deprecated v1 implementation.
> 
> The main differences between v1 and v2 migration protocols are:
> 1. VFIO device state is represented as a finite state machine instead of
>    a bitmap.
> 
> 2. The migration interface with kernel is done using VFIO_DEVICE_FEATURE
>    ioctl and normal read() and write() instead of the migration region
>    used in v1.
> 
> 3. Pre-copy is made optional in v2 protocol. Support for pre-copy will
>    be added later on.
> 
> Full description of the v2 protocol and the differences from v1 can be
> found here [1].
> 
> 
> 
> Patch list:
> 
> Patch 1 updates linux headers so we will have the MIG_DATA_SIZE ioctl.
> 
> Patches 2-3 are patches taken from Juan's RFC [2].
> As discussed in the KVM call, since we have a new ioctl to get device
> data size while it's RUNNING, we don't need the stop and resume VM
> functionality from the RFC.
> 
> Patches 4-9 are prep patches fixing bugs, adding QEMUFile function
> that will be used later and refactoring v1 protocol code to make it
> easier to add v2 protocol.
> 
> Patches 10-14 implement v2 protocol and remove v1 protocol.

Missing from the series is the all important question of what happens
to "x-enable-migration" now.  We have two in-kernel drivers supporting
v2 migration, so while hardware and firmware may still be difficult to
bring together, it does seem possible for the upstream community to
test and maintain this.

To declare this supported and not to impose any additional requirements
on management tools, I think migration needs to be enabled by default
for devices that support it.  Is there any utility to keeping around
some sort of device option to force it ON/OFF?  My interpretation of ON
seems rather redundant to the -only-migratable option, ie. fail the
device if migration is not supported, and I can't think of any
production use cases for OFF.  So maybe we simply drop the option as an
implicit AUTO feature and we can consider an experimental or supported
explicit feature later for the more esoteric use cases as they develop?
Thanks,

Alex



  parent reply	other threads:[~2023-01-06 23:37 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-12-29 11:03 [PATCH v5 00/14] vfio/migration: Implement VFIO migration protocol v2 Avihai Horon
2022-12-29 11:03 ` [PATCH v5 01/14] linux-headers: Update to v6.2-rc1 Avihai Horon
2022-12-29 11:03 ` [PATCH v5 02/14] migration: No save_live_pending() method uses the QEMUFile parameter Avihai Horon
2022-12-29 11:03 ` [PATCH v5 03/14] migration: Simplify migration_iteration_run() Avihai Horon
2023-01-06 17:56   ` Alex Williamson
2023-01-08 16:30     ` Avihai Horon
2023-01-09 10:24   ` Cédric Le Goater
2022-12-29 11:03 ` [PATCH v5 04/14] vfio/migration: Fix NULL pointer dereference bug Avihai Horon
2023-01-03 11:13   ` Dr. David Alan Gilbert
2023-01-03 15:54     ` Avihai Horon
2023-01-06 18:07     ` Alex Williamson
2022-12-29 11:03 ` [PATCH v5 05/14] vfio/migration: Allow migration without VFIO IOMMU dirty tracking support Avihai Horon
2023-01-06 21:56   ` Alex Williamson
2023-01-08 16:38     ` Avihai Horon
2022-12-29 11:03 ` [PATCH v5 06/14] migration/qemu-file: Add qemu_file_get_to_fd() Avihai Horon
2023-01-09 11:20   ` Cédric Le Goater
2023-01-09 15:18     ` Avihai Horon
2022-12-29 11:03 ` [PATCH v5 07/14] vfio/common: Change vfio_devices_all_running_and_saving() logic to equivalent one Avihai Horon
2022-12-29 11:03 ` [PATCH v5 08/14] vfio/migration: Move migration v1 logic to vfio_migration_init() Avihai Horon
2023-01-09 12:34   ` Cédric Le Goater
2022-12-29 11:03 ` [PATCH v5 09/14] vfio/migration: Rename functions/structs related to v1 protocol Avihai Horon
2023-01-09 12:43   ` Cédric Le Goater
2022-12-29 11:03 ` [PATCH v5 10/14] vfio/migration: Implement VFIO migration protocol v2 Avihai Horon
2023-01-09 10:20   ` Cédric Le Goater
2023-01-09 15:12     ` Avihai Horon
2023-01-09 17:27       ` Cédric Le Goater
2023-01-09 18:36         ` Jason Gunthorpe
2023-01-10 14:08           ` Avihai Horon
2023-01-10 16:19             ` Cédric Le Goater
2023-01-11  9:59               ` Avihai Horon
2022-12-29 11:03 ` [PATCH v5 11/14] vfio/migration: Optimize vfio_save_pending() Avihai Horon
2022-12-29 11:03 ` [PATCH v5 12/14] vfio/migration: Remove VFIO migration protocol v1 Avihai Horon
2022-12-29 11:03 ` [PATCH v5 13/14] vfio: Alphabetize migration section of VFIO trace-events file Avihai Horon
2022-12-29 11:03 ` [PATCH v5 14/14] docs/devel: Align VFIO migration docs to v2 protocol Avihai Horon
2023-01-06 23:36 ` Alex Williamson [this message]
2023-01-06 23:45   ` [PATCH v5 00/14] vfio/migration: Implement VFIO migration protocol v2 Jason Gunthorpe

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=20230106163609.430628cd.alex.williamson@redhat.com \
    --to=alex.williamson@redhat.com \
    --cc=avihaih@nvidia.com \
    --cc=borntraeger@linux.ibm.com \
    --cc=cohuck@redhat.com \
    --cc=david@redhat.com \
    --cc=dgilbert@redhat.com \
    --cc=eblake@redhat.com \
    --cc=fam@euphon.net \
    --cc=farman@linux.ibm.com \
    --cc=iii@linux.ibm.com \
    --cc=jgg@nvidia.com \
    --cc=joao.m.martins@oracle.com \
    --cc=jsnow@redhat.com \
    --cc=kwankhede@nvidia.com \
    --cc=maorg@nvidia.com \
    --cc=mst@redhat.com \
    --cc=pasic@linux.ibm.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-s390x@nongnu.org \
    --cc=quintela@redhat.com \
    --cc=richard.henderson@linaro.org \
    --cc=stefanha@redhat.com \
    --cc=targupta@nvidia.com \
    --cc=thuth@redhat.com \
    --cc=vsementsov@yandex-team.ru \
    --cc=yishaih@nvidia.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).