"Denis V. Lunev" <d...@openvz.org> writes: > Calculate req_json only if trace_handle_qmp_command enabled. > > Signed-off-by: Denis V. Lunev <d...@openvz.org> > CC: Stefan Hajnoczi <stefa...@redhat.com> > CC: LluĂs Vilanova <vilan...@ac.upc.edu> > CC: Dr. David Alan Gilbert <dgilb...@redhat.com> > CC: Markus Armbruster <arm...@redhat.com> > --- > 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 > *parser, GQueue *tokens) > QDict *qdict = NULL; > Monitor *mon = cur_mon; > Error *err = NULL; > - QString *req_json; > > req = 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() */ > > - req_json = 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 = qobject_to_json(req); > + trace_handle_qmp_command(mon, qstring_get_str(req_json)); > + qobject_decref(QOBJECT(req_json)); > + } > > rsp = qmp_dispatch(cur_mon->qmp.commands, req);
Conflicts with Eric's commit 8a4613a, but I can resolve that in my tree. The commit message is too terse. "Improve tracing" makes me think of more informative traces, but that's not the case. What exactly is improved here?