From: "Michael S. Tsirkin" <mst@redhat.com>
To: Alex Williamson <alex.williamson@redhat.com>
Cc: "Elena Ufimtseva" <elena.ufimtseva@oracle.com>,
"Janosch Frank" <frankja@linux.vnet.ibm.com>,
"John G Johnson" <john.g.johnson@oracle.com>,
"Stefan Hajnoczi" <stefanha@gmail.com>,
"Jason Wang" <jasowang@redhat.com>,
qemu-devel <qemu-devel@nongnu.org>,
"Kirti Wankhede" <kwankhede@nvidia.com>,
"Gerd Hoffmann" <kraxel@redhat.com>,
"Yan Vugenfirer" <yan@daynix.com>,
"Jag Raman" <jag.raman@oracle.com>,
"Anup Patel" <anup@brainfault.org>,
"Claudio Imbrenda" <imbrenda@linux.vnet.ibm.com>,
"Christian Borntraeger" <borntraeger@de.ibm.com>,
"Roman Kagan" <rkagan@virtuozzo.com>,
"Felipe Franciosi" <felipe@nutanix.com>,
"Marc-André Lureau" <marcandre.lureau@redhat.com>,
"Jens Freimann" <jfreimann@redhat.com>,
"Philippe Mathieu-Daudé" <philmd@redhat.com>,
"Stefano Garzarella" <sgarzare@redhat.com>,
"Eduardo Habkost" <ehabkost@redhat.com>,
"Sergio Lopez" <slp@redhat.com>,
"Kashyap Chamarthy" <kchamart@redhat.com>,
"Darren Kenny" <darren.kenny@oracle.com>,
"Liran Alon" <liran.alon@oracle.com>,
"Stefan Hajnoczi" <stefanha@redhat.com>,
"Thanos Makatos" <thanos.makatos@nutanix.com>,
"Alex Bennée" <alex.bennee@linaro.org>,
"David Gibson" <david@gibson.dropbear.id.au>,
"Kevin Wolf" <kwolf@redhat.com>,
"Halil Pasic" <pasic@linux.vnet.ibm.com>,
"Daniel P. Berrange" <berrange@redhat.com>,
"Christophe de Dinechin" <dinechin@redhat.com>,
"Paolo Bonzini" <pbonzini@redhat.com>, fam <fam@euphon.net>
Subject: Re: Out-of-Process Device Emulation session at KVM Forum 2020
Date: Fri, 30 Oct 2020 03:51:53 -0400 [thread overview]
Message-ID: <20201030032011-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <20201029210407.33d6f008@x1.home>
> A migration compatibility interface has not been determined for vfio.
> We currently rely on the vendor drivers to provide their own internal
> validation and harmlessly reject migration from an incompatible device.
> It would be great if we could make progress on this, but it's a
> difficult problem, and one that I hope we can further address once we
> have a base level of migration support.
>
> It's great to revisit ideas, but proclaiming a uAPI is bad solely
> because the data transfer is opaque, without defining why that's bad,
That makes sense.
I feel what is missing from all of these discussions is comparison
with an existing Out-of-Process solution - namely vhost-user.
As a result I feel the proposals tend to forget some of the
lessons learned designing that interface.
In particular I personally see cross-version and cross vendor
migration as a litmus test: it is a hard problem, one that
1. I do not believe vendors will be motivated enough to solve by themselves
2. I don't believe QEMU will be able to add after the fact
for the reason that "supporting QEMU" will come to not imply any level
of compatibility whatsoever.
That was a hard learned lesson and that's the reason I (and maybe Jason,
too) keep harping on that, not that it's so burningly important by
itself.
I think at this point we have an opportunity to make people document
their interfaces up to a point and also actually somewhat standardize
them, using upstream inclusion as a carrot. Some big vendors will
probably ignore it, small ones hopefully won't. After X years margins
become thin, vendors lose interest, and we are at that point glad we
have standards and documentation.
> evaluating the feasibility and implementation of defining a well
> specified data format rather than protocol, including cross-vendor
> support, or proposing any sort of alternative is not so helpful imo.
For example, with a registry of supported device/vendor/subsystem tuples
and a list of compatibility features and a documented migration data format for
each, maintained in QEMU, with a handshake validating that would create
a kind of a registry documenting what is compatible with what.
That could then serve for debugging, validation, and also
help push people towards more standard interfaces.
That is just one idea.
> Note that we also migrate guest memory as opaque data; we don't require
> knowing the data structures it holds or how regions are used, we simply
> look for changes and transfer the new data. That's not so different
> from a vendor driver passing us a blob of data as "information it needs
> to replicate the device state at the target."
I don't really understand this argument. At the device level we know
exactly how is each region used: some are IO, some are RAM.
In fact one can migrate between systems released years apart.
--
MST
next prev parent reply other threads:[~2020-10-30 7:53 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-10-27 15:14 Out-of-Process Device Emulation session at KVM Forum 2020 Stefan Hajnoczi
2020-10-28 9:32 ` Thanos Makatos
2020-10-28 10:07 ` Thanos Makatos
2020-10-28 11:09 ` Michael S. Tsirkin
2020-10-29 8:21 ` Stefan Hajnoczi
2020-10-29 12:08 ` Stefan Hajnoczi
2020-10-29 13:02 ` Jason Wang
2020-10-29 13:06 ` Paolo Bonzini
2020-10-29 14:08 ` Stefan Hajnoczi
2020-10-29 14:31 ` Alex Williamson
2020-10-29 15:09 ` Jason Wang
2020-10-29 15:46 ` Alex Williamson
2020-10-29 16:10 ` Paolo Bonzini
2020-10-30 1:11 ` Jason Wang
2020-10-30 3:04 ` Alex Williamson
2020-10-30 6:21 ` Stefan Hajnoczi
2020-10-30 9:45 ` Jason Wang
2020-10-30 11:13 ` Stefan Hajnoczi
2020-10-30 12:07 ` Jason Wang
2020-10-30 13:15 ` Stefan Hajnoczi
2020-11-02 2:51 ` Jason Wang
2020-11-02 10:13 ` Stefan Hajnoczi
2020-11-03 7:52 ` Jason Wang
2020-11-03 14:26 ` Stefan Hajnoczi
2020-11-04 6:50 ` Gerd Hoffmann
2020-11-04 7:42 ` Michael S. Tsirkin
2020-10-31 21:49 ` Michael S. Tsirkin
2020-11-01 8:26 ` Paolo Bonzini
2020-11-02 2:54 ` Jason Wang
2020-11-02 3:00 ` Jason Wang
2020-11-02 10:27 ` Stefan Hajnoczi
2020-11-02 10:34 ` Michael S. Tsirkin
2020-11-02 14:59 ` Stefan Hajnoczi
2020-10-30 7:51 ` Michael S. Tsirkin [this message]
2020-10-30 9:31 ` Jason Wang
2020-10-29 16:15 ` David Edmondson
2020-10-29 16:42 ` Daniel P. Berrangé
2020-10-29 17:47 ` Kirti Wankhede
2020-10-29 18:07 ` Paolo Bonzini
2020-10-30 1:15 ` Jason Wang
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=20201030032011-mutt-send-email-mst@kernel.org \
--to=mst@redhat.com \
--cc=alex.bennee@linaro.org \
--cc=alex.williamson@redhat.com \
--cc=anup@brainfault.org \
--cc=berrange@redhat.com \
--cc=borntraeger@de.ibm.com \
--cc=darren.kenny@oracle.com \
--cc=david@gibson.dropbear.id.au \
--cc=dinechin@redhat.com \
--cc=ehabkost@redhat.com \
--cc=elena.ufimtseva@oracle.com \
--cc=fam@euphon.net \
--cc=felipe@nutanix.com \
--cc=frankja@linux.vnet.ibm.com \
--cc=imbrenda@linux.vnet.ibm.com \
--cc=jag.raman@oracle.com \
--cc=jasowang@redhat.com \
--cc=jfreimann@redhat.com \
--cc=john.g.johnson@oracle.com \
--cc=kchamart@redhat.com \
--cc=kraxel@redhat.com \
--cc=kwankhede@nvidia.com \
--cc=kwolf@redhat.com \
--cc=liran.alon@oracle.com \
--cc=marcandre.lureau@redhat.com \
--cc=pasic@linux.vnet.ibm.com \
--cc=pbonzini@redhat.com \
--cc=philmd@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=rkagan@virtuozzo.com \
--cc=sgarzare@redhat.com \
--cc=slp@redhat.com \
--cc=stefanha@gmail.com \
--cc=stefanha@redhat.com \
--cc=thanos.makatos@nutanix.com \
--cc=yan@daynix.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.