From: David Hildenbrand <david@redhat.com>
To: qemu-devel@nongnu.org
Cc: "Michael S . Tsirkin" <mst@redhat.com>,
Michal Privoznik <mprivozn@redhat.com>,
David Hildenbrand <david@redhat.com>,
Markus Armbruster <armbru@redhat.com>,
"Dr. David Alan Gilbert" <dgilbert@redhat.com>,
Igor Mammedov <imammedo@redhat.com>,
Eric Blake <eblake@redhat.com>
Subject: [PATCH v3 2/3] qapi: Include qom-path in MEMORY_DEVICE_SIZE_CHANGE qapi events
Date: Wed, 29 Sep 2021 18:24:44 +0200 [thread overview]
Message-ID: <20210929162445.64060-3-david@redhat.com> (raw)
In-Reply-To: <20210929162445.64060-1-david@redhat.com>
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: 722a3c783ef4 ("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>
---
hw/virtio/virtio-mem-pci.c | 5 ++++-
qapi/machine.json | 5 ++++-
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/hw/virtio/virtio-mem-pci.c b/hw/virtio/virtio-mem-pci.c
index 7e384b7397..be2383b0c5 100644
--- a/hw/virtio/virtio-mem-pci.c
+++ b/hw/virtio/virtio-mem-pci.c
@@ -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)
diff --git a/qapi/machine.json b/qapi/machine.json
index 32d47f4e35..8258b9ce3a 100644
--- a/qapi/machine.json
+++ b/qapi/machine.json
@@ -1279,8 +1279,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
@@ -1293,7 +1296,7 @@
#
##
{ 'event': 'MEMORY_DEVICE_SIZE_CHANGE',
- 'data': { '*id': 'str', 'size': 'size' } }
+ 'data': { '*id': 'str', 'size': 'size', 'qom-path' : 'str'} }
##
--
2.31.1
next prev parent reply other threads:[~2021-09-29 16:32 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-29 16:24 [PATCH v3 0/3] monitor: Rate-limit MEMORY_DEVICE_SIZE_CHANGE qapi events per device David Hildenbrand
2021-09-29 16:24 ` [PATCH v3 1/3] virtio-mem-pci: Fix memory leak when creating MEMORY_DEVICE_SIZE_CHANGE event David Hildenbrand
2021-09-29 16:24 ` David Hildenbrand [this message]
2021-09-29 16:24 ` [PATCH v3 3/3] monitor: Rate-limit MEMORY_DEVICE_SIZE_CHANGE qapi events per device David Hildenbrand
2021-09-30 6:06 ` [PATCH v3 0/3] " Markus Armbruster
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=20210929162445.64060-3-david@redhat.com \
--to=david@redhat.com \
--cc=armbru@redhat.com \
--cc=dgilbert@redhat.com \
--cc=eblake@redhat.com \
--cc=imammedo@redhat.com \
--cc=mprivozn@redhat.com \
--cc=mst@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.