Hi all! We have handle_qmp_command and qmp_command_repond trace points to trace qmp commands. They are very useful to debug problems involving management tools like libvirt.
But tracing all qmp commands is too much. Here I suggest a kind of tracing namespace. Formally this series adds a trace points called qmp:<some-command> for every command, which may be enabled in separate like --trace qmp:drive-backup or by pattern like --trace qmp:block-job-* or similarly with help of qmp command trace-event-set-state. This also allows to enable tracing of some qmp commands permanently (by downstream patch or in libvirt xml). For example, I'm going to enable tracing of block job comamnds and blockdev-* commands in Virtuozzo. Qemu logs are often too empty (for example, in comparison with Libvirt), logging block jobs is not too much but will be very helpful. Vladimir Sementsov-Ogievskiy (5): trace/control: introduce trace_opt_parse_opts() qapi/qmp: QmpCommand: add .tracing field and API monitor: add qmp tracing API for qmp_commands util/qemu-option: make qemu_opt_del_all() function public trace: add qmp trace event namespace include/monitor/monitor.h | 3 +++ include/qapi/qmp/dispatch.h | 14 ++++++++++++++ include/qemu/option.h | 1 + trace/control.h | 7 +++++++ monitor/qmp.c | 10 ++++++++++ qapi/qmp-dispatch.c | 20 ++++++++++++++++++++ qapi/qmp-registry.c | 27 +++++++++++++++++++++++++++ softmmu/vl.c | 21 ++++++++++++++++++++- trace/control.c | 18 ++++++++++++------ trace/qmp.c | 20 ++++++++++++++++++++ util/qemu-option.c | 2 +- qapi/trace-events | 2 ++ 12 files changed, 137 insertions(+), 8 deletions(-) -- 2.29.2