qapi: Include qom-path in MEMORY_DEVICE_SIZE_CHANGE qapi events

As we might not always have a device id, it is impossible to always
match MEMORY_DEVICE_SIZE_CHANGE events to an actual device. Let's
include the qom-path in the event, which allows for reliable mapping of
events to devices.

Fixes: 722a3c783e ("virtio-pci: Send qapi events when the virtio-mem size changes")
Suggested-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: David Hildenbrand <david@redhat.com>
Message-Id: <20210929162445.64060-3-david@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
David Hildenbrand 2021-09-29 18:24:44 +02:00 committed by Paolo Bonzini
parent 75b98cb9f6
commit d89dd28f0e
2 changed files with 8 additions and 2 deletions

View file

@ -87,9 +87,12 @@ static void virtio_mem_pci_size_change_notify(Notifier *notifier, void *data)
VirtIOMEMPCI *pci_mem = container_of(notifier, VirtIOMEMPCI,
size_change_notifier);
DeviceState *dev = DEVICE(pci_mem);
char *qom_path = object_get_canonical_path(OBJECT(dev));
const uint64_t * const size_p = data;
qapi_event_send_memory_device_size_change(!!dev->id, dev->id, *size_p);
qapi_event_send_memory_device_size_change(!!dev->id, dev->id, *size_p,
qom_path);
g_free(qom_path);
}
static void virtio_mem_pci_class_init(ObjectClass *klass, void *data)

View file

@ -1336,8 +1336,11 @@
# action).
#
# @id: device's ID
#
# @size: the new size of memory that the device provides
#
# @qom-path: path to the device object in the QOM tree (since 6.2)
#
# Note: this event is rate-limited.
#
# Since: 5.1
@ -1350,7 +1353,7 @@
#
##
{ 'event': 'MEMORY_DEVICE_SIZE_CHANGE',
'data': { '*id': 'str', 'size': 'size' } }
'data': { '*id': 'str', 'size': 'size', 'qom-path' : 'str'} }
##