On 2/4/2026 3:03 PM, Markus Armbruster wrote:
External email: Use caution opening links or attachments


Avihai Horon <[email protected]> writes:

Currently, VFIO device migration event is sent after the device state
transition has been completed. However, it may be useful to additionally
send a "prepare" event before the state transition, to notify users that
it's about to happen.

For example, in some cases with heavy resource utilization, stopping the
VFIO device may take a long time. In time-sensitive scenarios, the
management application that consumes the event may be notified about the
state transition too late.

To overcome this issue, send an additional "prepare" migration event
before the device state transition.

Signed-off-by: Avihai Horon <[email protected]>
---
  qapi/vfio.json      | 33 +++++++++++++++++++++++++++++++++
  hw/vfio/migration.c | 18 +++++++++++++-----
  2 files changed, 46 insertions(+), 5 deletions(-)

diff --git a/qapi/vfio.json b/qapi/vfio.json
index a1a9c5b673..de41211f1d 100644
--- a/qapi/vfio.json
+++ b/qapi/vfio.json
@@ -66,3 +66,36 @@
        'qom-path': 'str',
        'device-state': 'QapiVfioMigrationState'
    } }
+
+##
+# @VFIO_MIGRATION_PREPARE:
+#
+# This event is emitted when a VFIO device migration state is about to
+# be changed.  Note that even if this event is received for state X,
+# the VFIO device may transition to a different state if the original
+# state transition to X failed.
+#
+# @device-id: The device's id, if it has one.
+#
+# @qom-path: The device's QOM path.
+#
+# @device-state: The new device migration state that is about to be
+#     changed.
+#
+# Since: 11.0
+#
+# .. qmp-example::
+#
+#     <- { "timestamp": { "seconds": 1713771323, "microseconds": 212268 },
+#          "event": "VFIO_MIGRATION_PREPARE",
+#          "data": {
+#              "device-id": "vfio_dev1",
+#              "qom-path": "/machine/peripheral/vfio_dev1",
+#              "device-state": "stop" } }
+##
+{ 'event': 'VFIO_MIGRATION_PREPARE',
+  'data': {
+      'device-id': 'str',
+      'qom-path': 'str',
+      'device-state': 'QapiVfioMigrationState'
+  } }
The QAPI schema is fine, so

Acked-by: Markus Armbruster <[email protected]>

Thanks, Markus!

However, in later version [1] we replaced this new event with a new state in QapiVfioMigrationState.

[1] https://lore.kernel.org/qemu-devel/[email protected]/

Whether the event makes sense I have no idea.  I'm leaving that
judgement to the migration and VFIO maintainers.


Reply via email to