[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] monitor: trace qmp_send_response
From: |
Markus Armbruster |
Subject: |
Re: [PATCH] monitor: trace qmp_send_response |
Date: |
Fri, 05 Feb 2021 14:46:55 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) |
Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> writes:
> 05.02.2021 10:56, Markus Armbruster wrote:
>> Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> writes:
>>
>>> Add a useful counterpart for trace_handle_qmp_command for debugging
>>> libvirt guests.
>>>
>>> Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
>>> ---
>>> monitor/qmp.c | 6 ++++++
>>> monitor/trace-events | 1 +
>>> 2 files changed, 7 insertions(+)
>>>
>>> diff --git a/monitor/qmp.c b/monitor/qmp.c
>>> index 8f91af32be..772b9e7b30 100644
>>> --- a/monitor/qmp.c
>>> +++ b/monitor/qmp.c
>>> @@ -111,6 +111,12 @@ void qmp_send_response(MonitorQMP *mon, const QDict
>>> *rsp)
>>> const QObject *data = QOBJECT(rsp);
>>> GString *json;
>>> + if (trace_event_get_state_backends(TRACE_QMP_SEND_RESPONSE))
>>> {
>>> + json = qobject_to_json(data);
>>> + trace_qmp_send_response(mon, json->str);
>>> + g_string_free(json, true);
>>> + }
>>> +
>>> json = qobject_to_json_pretty(data, mon->pretty);
>>> assert(json != NULL);
>>> diff --git a/monitor/trace-events b/monitor/trace-events
>>> index 0365ac4d99..12f0576c7b 100644
>>> --- a/monitor/trace-events
>>> +++ b/monitor/trace-events
>>> @@ -13,3 +13,4 @@ monitor_suspend(void *ptr, int cnt) "mon %p: %d"
>>> monitor_qmp_cmd_in_band(const char *id) "%s"
>>> monitor_qmp_cmd_out_of_band(const char *id) "%s"
>>> handle_qmp_command(void *mon, const char *req) "mon %p req: %s"
>>> +qmp_send_response(void *mon, const char *req) "mon %p req: %s"
>> A slightly lazier version of this just landed in commit f680405f45
>> "qmp:
>> Add more tracepoints". The difference is yours ignores mon->pretty for
>> tracing.
>> Thoughts?
>>
>
> Ah, missed this, great. Then, nothing to do.
>
> In our environment (I'm not sure who do it libvirt, or other our tool)
> different query- commands are called periodically and their output is big
> enough, so I decided to trace json in oneline.. Still better is developing a
> way to not trace some qmp commands and their output.
Feel free to add features you find useful on top.