From: "Daniel P. Berrangé" <berrange@redhat.com>
To: "Michael S. Tsirkin" <mst@redhat.com>
Cc: John G Johnson <john.g.johnson@oracle.com>,
"Tian, Kevin" <kevin.tian@intel.com>,
Yan Zhao <yan.y.zhao@intel.com>,
quintela@redhat.com, Jason Wang <jasowang@redhat.com>,
"Zeng, Xin" <xin.zeng@intel.com>,
qemu-devel@nongnu.org,
"Dr. David Alan Gilbert" <dgilbert@redhat.com>,
Kirti Wankhede <kwankhede@nvidia.com>,
Thanos Makatos <thanos.makatos@nutanix.com>,
Alex Williamson <alex.williamson@redhat.com>,
Gerd Hoffmann <kraxel@redhat.com>,
Stefan Hajnoczi <stefanha@redhat.com>,
Felipe Franciosi <felipe@nutanix.com>,
Christophe de Dinechin <dinechin@redhat.com>,
Paolo Bonzini <pbonzini@redhat.com>
Subject: Re: [RFC v3] VFIO Migration
Date: Mon, 16 Nov 2020 12:45:49 +0000 [thread overview]
Message-ID: <20201116124549.GI104771@redhat.com> (raw)
In-Reply-To: <20201116072805-mutt-send-email-mst@kernel.org>
On Mon, Nov 16, 2020 at 07:34:25AM -0500, Michael S. Tsirkin wrote:
> On Mon, Nov 16, 2020 at 12:05:18PM +0000, Daniel P. Berrangé wrote:
> > On Mon, Nov 16, 2020 at 07:03:03AM -0500, Michael S. Tsirkin wrote:
> > > On Mon, Nov 16, 2020 at 11:41:25AM +0000, Daniel P. Berrangé wrote:
> > > > > It is possible to simplify the problem, but we'll lose freedom. For
> > > > > example, hard coding knowledge of the device implementation into the
> > > > > management tool eliminates the need for a general migration checking
> > > > > algorithm. Or we might be able to simplify it by explicitly not
> > > > > supporting cross-device implementation migration (although that would
> > > > > place stricter rules on what a new version of an existing device can
> > > > > change in order to preserve migration compatibility).
> > > >
> > > > Is migrating between 2 different vendors' impls of the same core
> > > > device spec really a thing that's needed ?
> > >
> > > If there's intent to have this supercede vhost-user then certainly.
> > > Same I'm guessing for NVMe.
> > >
> > >
> > > > > I have doubts that these trade-offs can be made without losing support
> > > > > for use cases that are necessary.
> > > >
> > > > >From my POV, the key goal is that it should be possible to migrate
> > > > between two hosts without needing to check every single possible
> > > > config parameter that the device supports. It should only be neccessary
> > > > to check the parameters that are actually changed from their default
> > > > values. Then there just needs to be some simple string parameter that
> > > > encodes a particular set of devices, akin to the versioned machine
> > > > type.
> > > >
> > > > Applications that want to migration between cross-vendor device impls
> > > > could opt-in to checking every single little parameter, but most can
> > > > just stick with a much simplified view where they only have to check
> > > > the parameters that they've actually overriden/exposed.
> > >
> > > It's a problem even for a single vendor. And we have lots of experience
> > > telling us it's a messy, difficult one. Just punting and saying
> > > vendors will do the right thing will not lead to quality
> > > implementations.
> >
> > I'm not suggesting we punt on the problem. I'm saying that checking for
> > migration compatibility should not need to be made more complex than what
> > we already do for QEMU. The core problem being tackled is essentially the
> > same in both cases.
>
> There's a difference: in case of QEMU versions are release based. At
> release time a new version is generated. So QEMU upstream ships version
> X and Red Hat ships Y at a different time and they are not compatible.
That's a difference that Red Hat maintainers chose to introduce. RHEL
could have stuck with upstream QEMU machine types if it wished to, but
it chose to ship different machine types, because it made life easier
to backport features that impacted machine types, and also to some extent
to let us fix migration compat screw ups. We could have stuck to upstream
machine types though and remained compatible. Many other distros do just
that.
> This won't work for devices: same device needs to work with
> both upstream and Red Hat and migrate upstream-upstream and Red Hat-Red Hat
> (though not upstream-Red Hat).
That's fine, we can cope with that. It simply means whomever owns
responsibility for maintaining the code has to be more careful about
changes they make in their downstream.
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
next prev parent reply other threads:[~2020-11-16 12:47 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-11-10 9:53 [RFC v3] VFIO Migration Stefan Hajnoczi
2020-11-10 11:12 ` Paolo Bonzini
2020-11-11 14:36 ` Stefan Hajnoczi
2020-11-11 15:48 ` Daniel P. Berrangé
2020-11-12 15:26 ` Cornelia Huck
2020-11-16 10:48 ` Stefan Hajnoczi
2020-11-16 11:15 ` Stefan Hajnoczi
2020-11-16 11:41 ` Daniel P. Berrangé
2020-11-16 12:03 ` Michael S. Tsirkin
2020-11-16 12:05 ` Daniel P. Berrangé
2020-11-16 12:34 ` Michael S. Tsirkin
2020-11-16 12:45 ` Daniel P. Berrangé [this message]
2020-11-16 12:51 ` Michael S. Tsirkin
2020-11-16 12:48 ` Gerd Hoffmann
2020-11-16 12:54 ` Michael S. Tsirkin
2020-11-16 12:06 ` Michael S. Tsirkin
2020-11-10 20:14 ` Alex Williamson
2020-11-11 11:48 ` Cornelia Huck
2020-11-11 15:14 ` Stefan Hajnoczi
2020-11-11 15:35 ` Cornelia Huck
2020-11-16 11:02 ` Stefan Hajnoczi
2020-11-16 13:52 ` Cornelia Huck
2020-11-16 17:30 ` Alex Williamson
2020-11-24 17:24 ` Dr. David Alan Gilbert
2020-11-11 15:10 ` Stefan Hajnoczi
2020-11-11 15:28 ` Cornelia Huck
2020-11-16 11:36 ` Stefan Hajnoczi
2020-11-11 11:19 ` Cornelia Huck
2020-11-11 15:35 ` Stefan Hajnoczi
2020-11-11 12:56 ` Dr. David Alan Gilbert
2020-11-11 15:34 ` Stefan Hajnoczi
2020-11-11 15:41 ` Dr. David Alan Gilbert
2020-11-16 14:38 ` Stefan Hajnoczi
2020-11-17 9:44 ` Michael S. Tsirkin
2020-12-01 13:17 ` Stefan Hajnoczi
2020-11-11 16:18 ` Thanos Makatos
2020-11-16 15:24 ` Stefan Hajnoczi
2020-11-24 17:29 ` Dr. David Alan Gilbert
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=20201116124549.GI104771@redhat.com \
--to=berrange@redhat.com \
--cc=alex.williamson@redhat.com \
--cc=dgilbert@redhat.com \
--cc=dinechin@redhat.com \
--cc=felipe@nutanix.com \
--cc=jasowang@redhat.com \
--cc=john.g.johnson@oracle.com \
--cc=kevin.tian@intel.com \
--cc=kraxel@redhat.com \
--cc=kwankhede@nvidia.com \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=quintela@redhat.com \
--cc=stefanha@redhat.com \
--cc=thanos.makatos@nutanix.com \
--cc=xin.zeng@intel.com \
--cc=yan.y.zhao@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).