From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39759) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZlZoM-0002vF-He for qemu-devel@nongnu.org; Mon, 12 Oct 2015 05:54:31 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZlZoI-0005jQ-GV for qemu-devel@nongnu.org; Mon, 12 Oct 2015 05:54:30 -0400 Received: from relay.parallels.com ([195.214.232.42]:48668) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZlZoH-0005iS-UT for qemu-devel@nongnu.org; Mon, 12 Oct 2015 05:54:26 -0400 References: <1444639295-6588-1-git-send-email-den@openvz.org> From: "Denis V. Lunev" Message-ID: <561B8345.3080909@openvz.org> Date: Mon, 12 Oct 2015 12:54:13 +0300 MIME-Version: 1.0 In-Reply-To: <1444639295-6588-1-git-send-email-den@openvz.org> Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 1/1] log hmp/qmp command List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Markus Armbruster , Luiz Capitulino , qemu-devel@nongnu.org, Pavel Butsykin On 10/12/2015 11:41 AM, Denis V. Lunev wrote: > From: Pavel Butsykin > > This log would be very welcome for long-term diagnostics of the system > in the production. This log is at least necessary to understand what > has been happened on the system and to identify issues at higher-level > subsystems (libvirt, etc). > > Signed-off-by: Pavel Butsykin > Signed-off-by: Denis V. Lunev > CC: Markus Armbruster > CC: Luiz Capitulino > CC: Eric Blake > --- > include/qemu/log.h | 1 + > monitor.c | 4 ++++ > qemu-log.c | 1 + > 3 files changed, 6 insertions(+) > > diff --git a/include/qemu/log.h b/include/qemu/log.h > index f880e66..dfb587e 100644 > --- a/include/qemu/log.h > +++ b/include/qemu/log.h > @@ -41,6 +41,7 @@ static inline bool qemu_log_enabled(void) > #define LOG_UNIMP (1 << 10) > #define LOG_GUEST_ERROR (1 << 11) > #define CPU_LOG_MMU (1 << 12) > +#define LOG_CMD (1 << 13) > > /* Returns true if a bit is set in the current loglevel mask > */ > diff --git a/monitor.c b/monitor.c > index 4f1ba2f..a22a798 100644 > --- a/monitor.c > +++ b/monitor.c > @@ -2848,6 +2848,8 @@ static void handle_hmp_command(Monitor *mon, const char *cmdline) > QDict *qdict; > const mon_cmd_t *cmd; > > + qemu_log_mask(LOG_CMD, "hmp \"%s\" requested\n", cmdline); > + > cmd = monitor_parse_command(mon, &cmdline, mon->cmd_table); > if (!cmd) { > return; > @@ -3822,6 +3824,8 @@ static void handle_qmp_command(JSONMessageParser *parser, QList *tokens) > error_setg(&local_err, QERR_JSON_PARSING); > goto err_out; > } > + qemu_log_mask(LOG_CMD, "qmp \"%s\" requested\n", > + qobject_to_json(obj)->string); it seems that QString here is leaked > > input = qmp_check_input_obj(obj, &local_err); > if (!input) { > diff --git a/qemu-log.c b/qemu-log.c > index 13f3813..66b15ec 100644 > --- a/qemu-log.c > +++ b/qemu-log.c > @@ -119,6 +119,7 @@ const QEMULogItem qemu_log_items[] = { > { LOG_GUEST_ERROR, "guest_errors", > "log when the guest OS does something invalid (eg accessing a\n" > "non-existent register)" }, > + { LOG_CMD, "cmd", "log the hmp/qmp commands execution" }, > { 0, NULL, NULL }, > }; >