From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35715) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1da0zu-0000Gn-5G for qemu-devel@nongnu.org; Tue, 25 Jul 2017 10:39:43 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1da0zp-0008HV-8b for qemu-devel@nongnu.org; Tue, 25 Jul 2017 10:39:42 -0400 Received: from mailhub.sw.ru ([195.214.232.25]:8808 helo=relay.sw.ru) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1da0zo-0008FA-Tt for qemu-devel@nongnu.org; Tue, 25 Jul 2017 10:39:37 -0400 From: "Denis V. Lunev" Date: Tue, 25 Jul 2017 17:39:23 +0300 Message-Id: <20170725143923.11241-1-den@openvz.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: [Qemu-devel] [PATCH v2 1/1] monitor: improve tracing in handle_qmp_command List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: den@openvz.org, Stefan Hajnoczi , =?UTF-8?q?Llu=C3=ADs=20Vilanova?= , "Dr . David Alan Gilbert" , Markus Armbruster Calculate req_json only if trace_handle_qmp_command enabled. Signed-off-by: Denis V. Lunev CC: Stefan Hajnoczi CC: Llu=C3=ADs Vilanova CC: Dr. David Alan Gilbert CC: Markus Armbruster --- Changes from v1: - written in the explicit for, as discussed in the mailing list monitor.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/monitor.c b/monitor.c index d8ac20f6ca..2bfeb9bbcc 100644 --- a/monitor.c +++ b/monitor.c @@ -3822,7 +3822,6 @@ static void handle_qmp_command(JSONMessageParser *p= arser, GQueue *tokens) QDict *qdict =3D NULL; Monitor *mon =3D cur_mon; Error *err =3D NULL; - QString *req_json; =20 req =3D json_parser_parse_err(tokens, NULL, &err); if (!req && !err) { @@ -3840,9 +3839,11 @@ static void handle_qmp_command(JSONMessageParser *= parser, GQueue *tokens) qdict_del(qdict, "id"); } /* else will fail qmp_dispatch() */ =20 - req_json =3D qobject_to_json(req); - trace_handle_qmp_command(mon, qstring_get_str(req_json)); - qobject_decref(QOBJECT(req_json)); + if (trace_event_get_state(TRACE_HANDLE_QMP_COMMAND)) { + QString *req_json =3D qobject_to_json(req); + trace_handle_qmp_command(mon, qstring_get_str(req_json)); + qobject_decref(QOBJECT(req_json)); + } =20 rsp =3D qmp_dispatch(cur_mon->qmp.commands, req); =20 --=20 2.11.0