From: Jason Gunthorpe <jgg@nvidia.com>
To: Alex Williamson <alex.williamson@redhat.com>
Cc: "cohuck@redhat.com" <cohuck@redhat.com>,
"kvm@vger.kernel.org" <kvm@vger.kernel.org>,
"farman@linux.ibm.com" <farman@linux.ibm.com>,
"mjrosato@linux.ibm.com" <mjrosato@linux.ibm.com>,
"pasic@linux.ibm.com" <pasic@linux.ibm.com>,
"Tian, Kevin" <kevin.tian@intel.com>,
Yishai Hadas <yishaih@nvidia.com>
Subject: Re: [PATCH RFC] vfio: Revise and update the migration uAPI description
Date: Wed, 19 Jan 2022 20:19:23 -0400 [thread overview]
Message-ID: <20220120001923.GR84788@nvidia.com> (raw)
In-Reply-To: <20220119100217.4aee7451.alex.williamson@redhat.com>
On Wed, Jan 19, 2022 at 10:02:17AM -0700, Alex Williamson wrote:
> > If you insist, but I'd like a good reason because I know it is going
> > to hurt a bunch of people out there. ie can you point at something
> > that is actually practically incompatible?
>
> I'm equally as mystified who is going to break by bumping the sub-type.
> QEMU support is experimental and does not properly handle multiple
> devices. I'm only aware of one proprietary driver that includes
> migration code, but afaik it's not supported due to the status of QEMU.
I do not think "not supported" is accurate
> If a hypervisor vendor has chosen to run with experimental QEMU
> support, it's on them to handle long term support and a transition plan
> and I think that's also easier to do when it's clear whether the device
> is exposing the original migration uAPI or the updated FSM model with
> p2p states and an arc-supported ioctl. Thanks,
I'm not sure I agree with you on this, but I don't want to get into
qemu politics.
So, OK, I drafted a new series that just replaces the whole v1
protocol. If we are agreed on breaking everything then I'd like to
clean the other troublesome bits too, already we have some future
topics on our radar that will benefit from doing this.
The net result is a fairly stunning removal of ~300 lines of ugly
kernel driver code, which is significant considering the whole mlx5
project is only about 1000 lines.
The general gist is to stop abusing a migration region as a system
call interface and instead define two new migration specific ioctls
(set_state and arc_supported). Data transfer flows over a dedicated FD
created for each transfer session with a clear lifecycle instead of
through the region. qemu will discover the new protocol by issuing the
arc_supported ioctl. (or if we prefer the other shed colour, using the
VFIO_DEVICE_FEATURE ioctl instead of arc_supported)
Aside from being a more unixy interface, an FD can be used with
poll/io_uring/splice/etc and opens up better avenues to optimize for
operating migrations of multiple devices in parallel. It kills a wack
of goofy tricky driver code too.
If you know some reason to be set on the using a region for this then
please share, otherwise we'll look at the qemu work required to update
to this and if it is managable we'll send a RFC.
Thanks,
Jason
next prev parent reply other threads:[~2022-01-20 0:19 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-01-14 19:35 [PATCH RFC] vfio: Revise and update the migration uAPI description Jason Gunthorpe
2022-01-18 14:04 ` Yishai Hadas
2022-01-18 19:55 ` Alex Williamson
2022-01-18 21:00 ` Jason Gunthorpe
2022-01-19 11:40 ` Cornelia Huck
2022-01-19 12:44 ` Jason Gunthorpe
2022-01-19 13:42 ` Jason Gunthorpe
2022-01-19 14:59 ` Jason Gunthorpe
2022-01-19 15:32 ` Alex Williamson
2022-01-19 15:40 ` Jason Gunthorpe
2022-01-19 16:06 ` Alex Williamson
2022-01-19 16:38 ` Jason Gunthorpe
2022-01-19 17:02 ` Alex Williamson
2022-01-20 0:19 ` Jason Gunthorpe [this message]
2022-01-24 10:24 ` Cornelia Huck
2022-01-24 17:57 ` Jason Gunthorpe
2022-01-19 13:18 ` Jason Gunthorpe
2022-01-25 3:55 ` Tian, Kevin
2022-01-25 13:11 ` Jason Gunthorpe
2022-01-26 1:17 ` Tian, Kevin
2022-01-26 1:32 ` Jason Gunthorpe
2022-01-26 1:49 ` Tian, Kevin
2022-01-26 12:14 ` Jason Gunthorpe
2022-01-26 15:33 ` Jason Gunthorpe
2022-01-27 0:38 ` Tian, Kevin
2022-01-27 0:48 ` Jason Gunthorpe
2022-01-27 1:03 ` Tian, Kevin
2022-01-27 0:53 ` Tian, Kevin
2022-01-27 1:10 ` Jason Gunthorpe
2022-01-27 1:21 ` Tian, Kevin
2022-01-26 1:35 ` Jason Gunthorpe
2022-01-26 1:58 ` Tian, Kevin
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=20220120001923.GR84788@nvidia.com \
--to=jgg@nvidia.com \
--cc=alex.williamson@redhat.com \
--cc=cohuck@redhat.com \
--cc=farman@linux.ibm.com \
--cc=kevin.tian@intel.com \
--cc=kvm@vger.kernel.org \
--cc=mjrosato@linux.ibm.com \
--cc=pasic@linux.ibm.com \
--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).