From: Markus Armbruster <armbru@redhat.com>
To: Avihai Horon <avihaih@nvidia.com>
Cc: qemu-devel@nongnu.org,
"Alex Williamson" <alex.williamson@redhat.com>,
"Cédric Le Goater" <clg@redhat.com>,
"Michael Roth" <michael.roth@amd.com>,
"Eric Blake" <eblake@redhat.com>, "Peter Xu" <peterx@redhat.com>,
"Fabiano Rosas" <farosas@suse.de>,
"Joao Martins" <joao.m.martins@oracle.com>,
"Maor Gottlieb" <maorg@nvidia.com>
Subject: Re: [PATCH 1/3] qapi/vfio: Add VFIO device migration state change QAPI event
Date: Thu, 02 May 2024 13:19:15 +0200 [thread overview]
Message-ID: <87msp88nrg.fsf@pond.sub.org> (raw)
In-Reply-To: <20240430051621.19597-2-avihaih@nvidia.com> (Avihai Horon's message of "Tue, 30 Apr 2024 08:16:19 +0300")
Avihai Horon <avihaih@nvidia.com> writes:
> Add a new QAPI event for VFIO device migration state change. This event
> will be emitted when a VFIO device changes its migration state, for
> example, during migration or when stopping/starting the guest.
>
> This event can be used by management applications to get updates on the
> current state of the VFIO device for their own purposes.
>
> Signed-off-by: Avihai Horon <avihaih@nvidia.com>
Can you explain briefly why this event makes sense only for VFIO devices?
> ---
> MAINTAINERS | 1 +
> qapi/qapi-schema.json | 1 +
> qapi/vfio.json | 61 +++++++++++++++++++++++++++++++++++++++++++
> qapi/meson.build | 1 +
> 4 files changed, 64 insertions(+)
> create mode 100644 qapi/vfio.json
>
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 302b6fd00c..ef58a39d36 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -2159,6 +2159,7 @@ F: hw/vfio/*
> F: include/hw/vfio/
> F: docs/igd-assign.txt
> F: docs/devel/migration/vfio.rst
> +F: qapi/vfio.json
>
> vfio-ccw
> M: Eric Farman <farman@linux.ibm.com>
> diff --git a/qapi/qapi-schema.json b/qapi/qapi-schema.json
> index 5e33da7228..b1581988e4 100644
> --- a/qapi/qapi-schema.json
> +++ b/qapi/qapi-schema.json
> @@ -78,5 +78,6 @@
> { 'include': 'pci.json' }
> { 'include': 'stats.json' }
> { 'include': 'virtio.json' }
> +{ 'include': 'vfio.json' }
> { 'include': 'cryptodev.json' }
> { 'include': 'cxl.json' }
> diff --git a/qapi/vfio.json b/qapi/vfio.json
> new file mode 100644
> index 0000000000..a38f26bccd
> --- /dev/null
> +++ b/qapi/vfio.json
> @@ -0,0 +1,61 @@
> +# -*- Mode: Python -*-
> +# vim: filetype=python
> +#
> +
> +##
> +# = VFIO devices
> +##
> +
> +##
> +# @VFIODeviceMigState:
> +#
> +# An enumeration of the VFIO device migration states.
> +#
> +# @stop: The device is stopped.
> +#
> +# @running: The device is running.
> +#
> +# @stop-copy: The device is stopped and its internal state is available
> +# for reading.
> +#
> +# @resuming: The device is stopped and its internal state is available
> +# for writing.
> +#
> +# @running-p2p: The device is running in the P2P quiescent state.
> +#
> +# @pre-copy: The device is running, tracking its internal state and its
> +# internal state is available for reading.
> +#
> +# @pre-copy-p2p: The device is running in the P2P quiescent state,
> +# tracking its internal state and its internal state is available
> +# for reading.
> +#
> +# Since: 9.1
> +##
> +{ 'enum': 'VFIODeviceMigState',
> + 'data': [ 'stop', 'running', 'stop-copy', 'resuming', 'running-p2p',
> + 'pre-copy', 'pre-copy-p2p' ],
> + 'prefix': 'QAPI_VFIO_DEVICE_MIG_STATE' }
> +
> +##
> +# @VFIO_DEVICE_MIG_STATE_CHANGED:
> +#
> +# This event is emitted when a VFIO device migration state is changed.
> +#
> +# @device-id: The id of the VFIO device (final component of QOM path).
Provide the full QOM path, please. Feel free to additionally provide
its qdev ID.
Precedence: events MEMORY_DEVICE_SIZE_CHANGE, DEVICE_DELETED,
DEVICE_UNPLUG_GUEST_ERROR, ...
> +#
> +# @device-state: The new changed device migration state.
> +#
> +# Since: 9.1
> +#
> +# Example:
> +#
> +# <- {"timestamp": {"seconds": 1713771323, "microseconds": 212268},
> +# "event": "VFIO_DEVICE_MIG_STATE_CHANGED",
> +# "data": {"device-id": "vfio_dev1", "device-state": "stop"} }
> +##
> +{ 'event': 'VFIO_DEVICE_MIG_STATE_CHANGED',
> + 'data': {
> + 'device-id': 'str',
> + 'device-state': 'VFIODeviceMigState'
> + } }
> diff --git a/qapi/meson.build b/qapi/meson.build
> index c92af6e063..e7bc54e5d0 100644
> --- a/qapi/meson.build
> +++ b/qapi/meson.build
> @@ -52,6 +52,7 @@ qapi_all_modules = [
> 'stats',
> 'trace',
> 'transaction',
> + 'vfio',
> 'virtio',
> 'yank',
> ]
next prev parent reply other threads:[~2024-05-02 11:20 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-30 5:16 [PATCH 0/3] qapi/vfio: Add VFIO device migration state change QAPI event Avihai Horon
2024-04-30 5:16 ` [PATCH 1/3] " Avihai Horon
2024-05-01 11:50 ` Joao Martins
2024-05-01 12:08 ` Avihai Horon
2024-05-06 4:52 ` Markus Armbruster
2024-05-06 10:07 ` Avihai Horon
2024-05-06 10:36 ` Markus Armbruster
2024-05-06 10:57 ` Avihai Horon
2024-05-02 11:19 ` Markus Armbruster [this message]
2024-05-05 7:48 ` Avihai Horon
2024-05-06 4:35 ` Markus Armbruster
2024-05-06 9:59 ` Avihai Horon
2024-04-30 5:16 ` [PATCH 2/3] vfio/migration: Emit " Avihai Horon
2024-05-01 11:50 ` Joao Martins
2024-05-01 12:28 ` Avihai Horon
2024-05-02 10:22 ` Joao Martins
2024-05-05 7:28 ` Avihai Horon
2024-05-06 4:56 ` Markus Armbruster
2024-05-06 14:38 ` Fabiano Rosas
2024-05-06 15:07 ` Peter Xu
2024-05-07 7:47 ` Avihai Horon
2024-05-07 15:51 ` Peter Xu
2024-05-07 16:21 ` Avihai Horon
2024-04-30 5:16 ` [PATCH 3/3] vfio/migration: Don't emit STOP_COPY state change event twice Avihai Horon
2024-05-06 14:39 ` Cédric Le Goater
2024-05-06 15:01 ` Avihai Horon
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=87msp88nrg.fsf@pond.sub.org \
--to=armbru@redhat.com \
--cc=alex.williamson@redhat.com \
--cc=avihaih@nvidia.com \
--cc=clg@redhat.com \
--cc=eblake@redhat.com \
--cc=farosas@suse.de \
--cc=joao.m.martins@oracle.com \
--cc=maorg@nvidia.com \
--cc=michael.roth@amd.com \
--cc=peterx@redhat.com \
--cc=qemu-devel@nongnu.org \
/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.