From: Cornelia Huck <cohuck@redhat.com>
To: Alex Williamson <alex.williamson@redhat.com>
Cc: kevin.tian@intel.com, yi.l.liu@intel.com, cjia@nvidia.com,
eskultet@redhat.com, ziye.yang@intel.com, qemu-devel@nongnu.org,
Zhengxiao.zx@Alibaba-inc.com, shuangtai.tst@alibaba-inc.com,
dgilbert@redhat.com, zhi.a.wang@intel.com, mlevitsk@redhat.com,
pasic@linux.ibm.com, aik@ozlabs.ru,
Kirti Wankhede <kwankhede@nvidia.com>,
eauger@redhat.com, felipe@nutanix.com,
jonathan.davies@nutanix.com, yan.y.zhao@intel.com,
changpeng.liu@intel.com, Ken.Xue@amd.com
Subject: Re: [Qemu-devel] [PATCH v7 01/13] vfio: KABI for migration interface
Date: Tue, 23 Jul 2019 14:13:57 +0200 [thread overview]
Message-ID: <20190723141357.7b10c4f2.cohuck@redhat.com> (raw)
In-Reply-To: <20190716145632.3b73b73d@x1.home>
On Tue, 16 Jul 2019 14:56:32 -0600
Alex Williamson <alex.williamson@redhat.com> wrote:
> On Tue, 9 Jul 2019 15:19:08 +0530
> Kirti Wankhede <kwankhede@nvidia.com> wrote:
I'm still a bit unsure about the device_state bit handling as well.
> > + * device_state: (read/write)
> > + * To indicate vendor driver the state VFIO device should be transitioned
> > + * to. If device state transition fails, write on this field return error.
Does 'device state transition fails' include 'the device state written
was invalid'?
> > + * It consists of 3 bits:
> > + * - If bit 0 set, indicates _RUNNING state. When its reset, that indicates
> > + * _STOPPED state. When device is changed to _STOPPED, driver should stop
> > + * device before write() returns.
So _STOPPED is always !_RUNNING, regardless of which other bits are set?
> > + * - If bit 1 set, indicates _SAVING state.
> > + * - If bit 2 set, indicates _RESUMING state.
> > + * _SAVING and _RESUMING set at the same time is invalid state.
What about _RUNNING | _RESUMING -- does that make sense?
>
> I think in the previous version there was a question of how we handle
> yet-to-be-defined bits. For instance, if we defined a
> SUBTYPE_MIGRATIONv2 with the intention of making it backwards
> compatible with this version, do we declare the undefined bits as
> preserved so that the user should do a read-modify-write operation?
Or can we state that undefined bits are ignored, and may or may not
preserved, so that we can skip the read-modify-write requirement? v1
and v2 can hopefully be distinguished in a different way.
(...)
> > +struct vfio_device_migration_info {
> > + __u32 device_state; /* VFIO device state */
> > +#define VFIO_DEVICE_STATE_RUNNING (1 << 0)
> > +#define VFIO_DEVICE_STATE_SAVING (1 << 1)
> > +#define VFIO_DEVICE_STATE_RESUMING (1 << 2)
> > +#define VFIO_DEVICE_STATE_MASK (VFIO_DEVICE_STATE_RUNNING | \
> > + VFIO_DEVICE_STATE_SAVING | \
> > + VFIO_DEVICE_STATE_RESUMING)
>
> Yes, we have the mask in here now, but no mention above how the user
> should handle undefined bits. Thanks,
>
> Alex
>
> > +#define VFIO_DEVICE_STATE_INVALID (VFIO_DEVICE_STATE_SAVING | \
> > + VFIO_DEVICE_STATE_RESUMING)
As mentioned above, does _RESUMING | _RUNNING make sense?
next prev parent reply other threads:[~2019-07-23 12:14 UTC|newest]
Thread overview: 77+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-07-09 9:49 [Qemu-devel] [PATCH v7 00/13] Add migration support for VFIO device Kirti Wankhede
2019-07-09 9:49 ` [Qemu-devel] [PATCH v7 01/13] vfio: KABI for migration interface Kirti Wankhede
2019-07-16 20:56 ` Alex Williamson
2019-07-17 11:55 ` Cornelia Huck
2019-07-23 12:13 ` Cornelia Huck [this message]
2019-08-21 20:32 ` Kirti Wankhede
2019-08-21 20:31 ` Kirti Wankhede
2019-07-09 9:49 ` [Qemu-devel] [PATCH v7 02/13] vfio: Add function to unmap VFIO region Kirti Wankhede
2019-07-16 16:29 ` Cornelia Huck
2019-07-18 18:54 ` Kirti Wankhede
2019-07-09 9:49 ` [Qemu-devel] [PATCH v7 03/13] vfio: Add vfio_get_object callback to VFIODeviceOps Kirti Wankhede
2019-07-16 16:32 ` Cornelia Huck
2019-07-09 9:49 ` [Qemu-devel] [PATCH v7 04/13] vfio: Add save and load functions for VFIO PCI devices Kirti Wankhede
2019-07-11 12:07 ` Dr. David Alan Gilbert
2019-08-22 4:50 ` Kirti Wankhede
2019-08-22 9:32 ` Dr. David Alan Gilbert
2019-08-22 19:10 ` Kirti Wankhede
2019-08-22 19:13 ` Dr. David Alan Gilbert
2019-08-22 23:57 ` Tian, Kevin
2019-08-23 9:26 ` Dr. David Alan Gilbert
2019-08-23 9:49 ` Tian, Kevin
2019-07-16 21:14 ` Alex Williamson
2019-07-17 9:10 ` Dr. David Alan Gilbert
2019-07-09 9:49 ` [Qemu-devel] [PATCH v7 05/13] vfio: Add migration region initialization and finalize function Kirti Wankhede
2019-07-16 21:37 ` Alex Williamson
2019-07-18 20:19 ` Kirti Wankhede
2019-07-23 12:52 ` Cornelia Huck
2019-07-09 9:49 ` [Qemu-devel] [PATCH v7 06/13] vfio: Add VM state change handler to know state of VM Kirti Wankhede
2019-07-11 12:13 ` Dr. David Alan Gilbert
2019-07-11 19:14 ` Kirti Wankhede
2019-07-22 8:23 ` Yan Zhao
2019-08-20 20:31 ` Kirti Wankhede
2019-07-16 22:03 ` Alex Williamson
2019-07-22 8:37 ` Yan Zhao
2019-08-20 20:33 ` Kirti Wankhede
2019-08-23 1:32 ` Yan Zhao
2019-07-09 9:49 ` [Qemu-devel] [PATCH v7 07/13] vfio: Add migration state change notifier Kirti Wankhede
2019-07-17 2:25 ` Yan Zhao
2019-08-20 20:24 ` Kirti Wankhede
2019-08-23 0:54 ` Yan Zhao
2019-07-09 9:49 ` [Qemu-devel] [PATCH v7 08/13] vfio: Register SaveVMHandlers for VFIO device Kirti Wankhede
2019-07-22 8:34 ` Yan Zhao
2019-08-20 20:33 ` Kirti Wankhede
2019-08-23 1:23 ` Yan Zhao
2019-07-09 9:49 ` [Qemu-devel] [PATCH v7 09/13] vfio: Add save state functions to SaveVMHandlers Kirti Wankhede
2019-07-12 2:44 ` Yan Zhao
2019-07-18 18:45 ` Kirti Wankhede
2019-07-17 2:50 ` Yan Zhao
2019-08-20 20:30 ` Kirti Wankhede
2019-07-09 9:49 ` [Qemu-devel] [PATCH v7 10/13] vfio: Add load " Kirti Wankhede
2019-07-12 2:52 ` Yan Zhao
2019-07-18 19:00 ` Kirti Wankhede
2019-07-22 3:20 ` Yan Zhao
2019-07-22 19:07 ` Alex Williamson
2019-07-22 21:50 ` Yan Zhao
2019-08-20 20:35 ` Kirti Wankhede
2019-07-09 9:49 ` [Qemu-devel] [PATCH v7 11/13] vfio: Add function to get dirty page list Kirti Wankhede
2019-07-12 0:33 ` Yan Zhao
2019-07-18 18:39 ` Kirti Wankhede
2019-07-19 1:24 ` Yan Zhao
2019-07-22 8:39 ` Yan Zhao
2019-08-20 20:34 ` Kirti Wankhede
2019-07-09 9:49 ` [Qemu-devel] [PATCH v7 12/13] vfio: Add vfio_listerner_log_sync to mark dirty pages Kirti Wankhede
2019-07-23 13:18 ` Cornelia Huck
2019-07-09 9:49 ` [Qemu-devel] [PATCH v7 13/13] vfio: Make vfio-pci device migration capable Kirti Wankhede
2019-07-11 2:55 ` [Qemu-devel] [PATCH v7 00/13] Add migration support for VFIO device Yan Zhao
2019-07-11 10:50 ` Dr. David Alan Gilbert
2019-07-11 11:47 ` Yan Zhao
2019-07-11 16:23 ` Dr. David Alan Gilbert
2019-07-11 19:08 ` Kirti Wankhede
2019-07-12 0:32 ` Yan Zhao
2019-07-18 18:32 ` Kirti Wankhede
2019-07-19 1:23 ` Yan Zhao
2019-07-24 11:32 ` Dr. David Alan Gilbert
2019-07-12 17:42 ` Dr. David Alan Gilbert
2019-07-15 0:35 ` Yan Zhao
2019-07-12 0:14 ` Yan Zhao
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=20190723141357.7b10c4f2.cohuck@redhat.com \
--to=cohuck@redhat.com \
--cc=Ken.Xue@amd.com \
--cc=Zhengxiao.zx@Alibaba-inc.com \
--cc=aik@ozlabs.ru \
--cc=alex.williamson@redhat.com \
--cc=changpeng.liu@intel.com \
--cc=cjia@nvidia.com \
--cc=dgilbert@redhat.com \
--cc=eauger@redhat.com \
--cc=eskultet@redhat.com \
--cc=felipe@nutanix.com \
--cc=jonathan.davies@nutanix.com \
--cc=kevin.tian@intel.com \
--cc=kwankhede@nvidia.com \
--cc=mlevitsk@redhat.com \
--cc=pasic@linux.ibm.com \
--cc=qemu-devel@nongnu.org \
--cc=shuangtai.tst@alibaba-inc.com \
--cc=yan.y.zhao@intel.com \
--cc=yi.l.liu@intel.com \
--cc=zhi.a.wang@intel.com \
--cc=ziye.yang@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).