From ff12e3ae3d052e11538c40a2b92d9b6db3b5520b Mon Sep 17 00:00:00 2001 From: Vladimir Sementsov-Ogievskiy Date: Thu, 24 Jan 2019 15:51:54 +0300 Subject: [PATCH] trace: improve runstate tracing Trace previous state, move tracepoint to runstate_set start (to cover all cases for debugging), add string representations of traced states. Signed-off-by: Vladimir Sementsov-Ogievskiy Message-id: 20190124125154.474650-1-vsementsov@virtuozzo.com Signed-off-by: Stefan Hajnoczi --- trace-events | 4 ++-- vl.c | 7 +++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/trace-events b/trace-events index 4fd2cb4b97..e66afc59e9 100644 --- a/trace-events +++ b/trace-events @@ -34,9 +34,9 @@ cpu_out(unsigned int addr, char size, unsigned int val) "addr 0x%x(%c) value %u" balloon_event(void *opaque, unsigned long addr) "opaque %p addr %lu" # vl.c -vm_state_notify(int running, int reason) "running %d reason %d" +vm_state_notify(int running, int reason, const char *reason_str) "running %d reason %d (%s)" load_file(const char *name, const char *path) "name %s location %s" -runstate_set(int new_state) "new state %d" +runstate_set(int current_state, const char *current_state_str, int new_state, const char *new_state_str) "current_run_state %d (%s) new_state %d (%s)" system_wakeup_request(int reason) "reason=%d" qemu_system_shutdown_request(int reason) "reason=%d" qemu_system_powerdown_request(void) "" diff --git a/vl.c b/vl.c index bc9fbec654..9cf0fbe0b8 100644 --- a/vl.c +++ b/vl.c @@ -731,6 +731,9 @@ void runstate_set(RunState new_state) { assert(new_state < RUN_STATE__MAX); + trace_runstate_set(current_run_state, RunState_str(current_run_state), + new_state, RunState_str(current_run_state)); + if (current_run_state == new_state) { return; } @@ -741,7 +744,7 @@ void runstate_set(RunState new_state) RunState_str(new_state)); abort(); } - trace_runstate_set(new_state); + current_run_state = new_state; } @@ -1554,7 +1557,7 @@ void vm_state_notify(int running, RunState state) { VMChangeStateEntry *e, *next; - trace_vm_state_notify(running, state); + trace_vm_state_notify(running, state, RunState_str(state)); QLIST_FOREACH_SAFE(e, &vm_change_state_head, entries, next) { e->cb(e->opaque, running, state);