|
|
76daa3 |
From 8d39c106cf84b8d9ba4a2241b07bf9541502d9df Mon Sep 17 00:00:00 2001
|
|
|
76daa3 |
From: Stefan Hajnoczi <stefanha@redhat.com>
|
|
|
76daa3 |
Date: Fri, 16 Jun 2017 13:09:47 +0200
|
|
|
76daa3 |
Subject: [PATCH 7/8] monitor: resurrect handle_qmp_command trace event
|
|
|
76daa3 |
|
|
|
76daa3 |
RH-Author: Stefan Hajnoczi <stefanha@redhat.com>
|
|
|
76daa3 |
Message-id: <20170616130947.6577-3-stefanha@redhat.com>
|
|
|
76daa3 |
Patchwork-id: 75625
|
|
|
76daa3 |
O-Subject: [RHV-7.4 qemu-kvm-rhev PATCH 2/2] monitor: resurrect handle_qmp_command trace event
|
|
|
76daa3 |
Bugzilla: 1457740
|
|
|
76daa3 |
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
|
|
76daa3 |
RH-Acked-by: Laszlo Ersek <lersek@redhat.com>
|
|
|
76daa3 |
RH-Acked-by: Markus Armbruster <armbru@redhat.com>
|
|
|
76daa3 |
|
|
|
76daa3 |
Commit 104fc3027960dd2aa9d310936a6cb201c60e1088 ("qmp: Drop duplicated
|
|
|
76daa3 |
QMP command object checks") removed the call to
|
|
|
76daa3 |
trace_handle_qmp_command() while eliminating code duplication.
|
|
|
76daa3 |
|
|
|
76daa3 |
This patch brings the trace event back so QEMU-internal trace events can
|
|
|
76daa3 |
be correlated with the QMP commands that caused them.
|
|
|
76daa3 |
|
|
|
76daa3 |
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
|
|
|
76daa3 |
Reviewed-by: Eric Blake <eblake@redhat.com>
|
|
|
76daa3 |
Message-id: 20170605104216.22429-3-stefanha@redhat.com
|
|
|
76daa3 |
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
|
|
|
76daa3 |
(cherry picked from commit b097efc0027e36fd15a4fc2e415e780611024757)
|
|
|
76daa3 |
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
|
|
|
76daa3 |
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
|
|
|
76daa3 |
---
|
|
|
76daa3 |
monitor.c | 5 +++++
|
|
|
76daa3 |
trace-events | 1 +
|
|
|
76daa3 |
2 files changed, 6 insertions(+)
|
|
|
76daa3 |
|
|
|
76daa3 |
diff --git a/monitor.c b/monitor.c
|
|
|
76daa3 |
index 65b663e..715995f 100644
|
|
|
76daa3 |
--- a/monitor.c
|
|
|
76daa3 |
+++ b/monitor.c
|
|
|
76daa3 |
@@ -3825,6 +3825,7 @@ static void handle_qmp_command(JSONMessageParser *parser, GQueue *tokens)
|
|
|
76daa3 |
QDict *qdict = NULL;
|
|
|
76daa3 |
Monitor *mon = cur_mon;
|
|
|
76daa3 |
Error *err = NULL;
|
|
|
76daa3 |
+ QString *req_json;
|
|
|
76daa3 |
|
|
|
76daa3 |
req = json_parser_parse_err(tokens, NULL, &err;;
|
|
|
76daa3 |
if (!req && !err) {
|
|
|
76daa3 |
@@ -3842,6 +3843,10 @@ static void handle_qmp_command(JSONMessageParser *parser, GQueue *tokens)
|
|
|
76daa3 |
qdict_del(qdict, "id");
|
|
|
76daa3 |
} /* else will fail qmp_dispatch() */
|
|
|
76daa3 |
|
|
|
76daa3 |
+ req_json = qobject_to_json(req);
|
|
|
76daa3 |
+ trace_handle_qmp_command(mon, qstring_get_str(req_json));
|
|
|
76daa3 |
+ qobject_decref(QOBJECT(req_json));
|
|
|
76daa3 |
+
|
|
|
76daa3 |
rsp = qmp_dispatch(cur_mon->qmp.commands, req);
|
|
|
76daa3 |
|
|
|
76daa3 |
if (mon->qmp.commands == &qmp_cap_negotiation_commands) {
|
|
|
76daa3 |
diff --git a/trace-events b/trace-events
|
|
|
76daa3 |
index 54e5301..24a5b91 100644
|
|
|
76daa3 |
--- a/trace-events
|
|
|
76daa3 |
+++ b/trace-events
|
|
|
76daa3 |
@@ -69,6 +69,7 @@ monitor_protocol_event_handler(uint32_t event, void *qdict) "event=%d data=%p"
|
|
|
76daa3 |
monitor_protocol_event_emit(uint32_t event, void *data) "event=%d data=%p"
|
|
|
76daa3 |
monitor_protocol_event_queue(uint32_t event, void *qdict, uint64_t rate) "event=%d data=%p rate=%" PRId64
|
|
|
76daa3 |
handle_hmp_command(void *mon, const char *cmdline) "mon %p cmdline: %s"
|
|
|
76daa3 |
+handle_qmp_command(void *mon, const char *req) "mon %p req: %s"
|
|
|
76daa3 |
|
|
|
76daa3 |
# dma-helpers.c
|
|
|
76daa3 |
dma_blk_io(void *dbs, void *bs, int64_t offset, bool to_dev) "dbs=%p bs=%p offset=%" PRId64 " to_dev=%d"
|
|
|
76daa3 |
--
|
|
|
76daa3 |
1.8.3.1
|
|
|
76daa3 |
|