From: Kirti Wankhede <kwankhede@nvidia.com>
To: Cornelia Huck <cohuck@redhat.com>
Cc: kevin.tian@intel.com, yi.l.liu@intel.com, cjia@nvidia.com,
kvm@vger.kernel.org, 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, alex.williamson@redhat.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: [PATCH v16 Kernel 1/7] vfio: KABI for migration interface for device state
Date: Fri, 27 Mar 2020 03:09:52 +0530 [thread overview]
Message-ID: <acfa7027-123f-6acf-769d-59c5991dd331@nvidia.com> (raw)
In-Reply-To: <20200326114150.2b5430b9.cohuck@redhat.com>
On 3/26/2020 4:11 PM, Cornelia Huck wrote:
> On Wed, 25 Mar 2020 01:02:33 +0530
> Kirti Wankhede <kwankhede@nvidia.com> wrote:
>
>> - Defined MIGRATION region type and sub-type.
>>
>> - Defined vfio_device_migration_info structure which will be placed at the
>> 0th offset of migration region to get/set VFIO device related
>> information. Defined members of structure and usage on read/write access.
>>
>> - Defined device states and state transition details.
>>
>> - Defined sequence to be followed while saving and resuming VFIO device.
>>
>> Signed-off-by: Kirti Wankhede <kwankhede@nvidia.com>
>> Reviewed-by: Neo Jia <cjia@nvidia.com>
>> ---
>> include/uapi/linux/vfio.h | 228 ++++++++++++++++++++++++++++++++++++++++++++++
>> 1 file changed, 228 insertions(+)
>
> (...)
>
>> +struct vfio_device_migration_info {
>> + __u32 device_state; /* VFIO device state */
>> +#define VFIO_DEVICE_STATE_STOP (0)
>> +#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)
>> +
>> +#define VFIO_DEVICE_STATE_VALID(state) \
>> + (state & VFIO_DEVICE_STATE_RESUMING ? \
>> + (state & VFIO_DEVICE_STATE_MASK) == VFIO_DEVICE_STATE_RESUMING : 1)
>> +
>> +#define VFIO_DEVICE_STATE_IS_ERROR(state) \
>> + ((state & VFIO_DEVICE_STATE_MASK) == (VFIO_DEVICE_STATE_SAVING | \
>> + VFIO_DEVICE_STATE_RESUMING))
>> +
>> +#define VFIO_DEVICE_STATE_SET_ERROR(state) \
>> + ((state & ~VFIO_DEVICE_STATE_MASK) | VFIO_DEVICE_SATE_SAVING | \
>> + VFIO_DEVICE_STATE_RESUMING)
>> +
>> + __u32 reserved;
>> + __u64 pending_bytes;
>> + __u64 data_offset;
>> + __u64 data_size;
>> +} __attribute__((packed));
>
> The 'packed' should not even be needed, I think?
>
Right, Above structure is padded properly. Removing it.
>> +
>> /*
>> * The MSIX mappable capability informs that MSIX data of a BAR can be mmapped
>> * which allows direct access to non-MSIX registers which happened to be within
>
> Generally, this looks sane to me; however, we should really have
> something under Documentation/ in the long run that describes how this
> works, so that you can find out about the protocol without having to
> dig through headers.
>
But the documentation will have almost the same text as in this comment.
Should we replicate it?
Thanks,
Kirti
next prev parent reply other threads:[~2020-03-26 21:42 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-24 19:32 [PATCH v16 Kernel 0/7] KABIs to support migration for VFIO devices Kirti Wankhede
2020-03-24 19:32 ` [PATCH v16 Kernel 1/7] vfio: KABI for migration interface for device state Kirti Wankhede
2020-03-26 10:41 ` Cornelia Huck
2020-03-26 21:39 ` Kirti Wankhede [this message]
2020-03-24 19:32 ` [PATCH v16 Kernel 2/7] vfio iommu: Remove atomicity of ref_count of pinned pages Kirti Wankhede
2020-03-26 10:49 ` Cornelia Huck
2020-03-26 21:45 ` Kirti Wankhede
2020-03-24 19:32 ` [PATCH v16 Kernel 3/7] vfio iommu: Add ioctl definition for dirty pages tracking Kirti Wankhede
2020-03-24 19:32 ` [PATCH v16 Kernel 4/7] vfio iommu: Implementation of ioctl " Kirti Wankhede
2020-03-24 20:37 ` Alex Williamson
2020-03-24 20:45 ` Alex Williamson
2020-03-24 21:48 ` Kirti Wankhede
2020-03-24 19:32 ` [PATCH v16 Kernel 5/7] vfio iommu: Update UNMAP_DMA ioctl to get dirty bitmap before unmap Kirti Wankhede
2020-03-25 2:18 ` Yan Zhao
2020-03-26 21:39 ` Kirti Wankhede
2020-03-27 0:04 ` Yan Zhao
2020-03-27 4:42 ` Kirti Wankhede
2020-03-30 2:15 ` Yan Zhao
2020-04-01 18:04 ` Kirti Wankhede
2020-03-24 19:32 ` [PATCH v16 Kernel 6/7] vfio iommu: Adds flag to indicate dirty pages tracking capability support Kirti Wankhede
2020-03-24 19:32 ` [PATCH v16 Kernel 7/7] vfio: Selective dirty page tracking if IOMMU backed device pins pages Kirti Wankhede
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=acfa7027-123f-6acf-769d-59c5991dd331@nvidia.com \
--to=kwankhede@nvidia.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=cohuck@redhat.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=kvm@vger.kernel.org \
--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).