summaryrefslogtreecommitdiffstats
path: root/trace-events
diff options
context:
space:
mode:
authorAlex Bennée2014-08-01 18:08:57 +0200
committerStefan Hajnoczi2014-08-12 15:26:12 +0200
commit6db8b538663b39c21e12e14e6437aa7f8435f316 (patch)
treef18ecd38a421852c997b643bd8b56b720a263f7b /trace-events
parenttrace: teach lttng backend to use format strings (diff)
downloadqemu-6db8b538663b39c21e12e14e6437aa7f8435f316.tar.gz
qemu-6db8b538663b39c21e12e14e6437aa7f8435f316.tar.xz
qemu-6db8b538663b39c21e12e14e6437aa7f8435f316.zip
trace: add some tcg tracing support
This adds a couple of tcg specific trace-events which are useful for tracing execution though tcg generated blocks. It's been tested with lttng user space tracing but is generic enough for all systems. The tcg events are: * translate_block - when a subject block is translated * exec_tb - when a translated block is entered * exec_tb_exit - when we exit the translated code * exec_tb_nocache - special case translations Of course we can only trace the entrance to the first block of a chain as each block will jump directly to the next when it can. See the -d nochain patch to allow more complete tracing at the expense of performance. Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Diffstat (limited to 'trace-events')
-rw-r--r--trace-events9
1 files changed, 9 insertions, 0 deletions
diff --git a/trace-events b/trace-events
index 11a17a8a40..dcc33dd750 100644
--- a/trace-events
+++ b/trace-events
@@ -1265,6 +1265,15 @@ kvm_failed_spr_get(int str, const char *msg) "Warning: Unable to retrieve SPR %d
kvm_failed_reg_get(uint64_t id, const char *msg) "Warning: Unable to retrieve ONEREG %" PRIu64 " from KVM: %s"
kvm_failed_reg_set(uint64_t id, const char *msg) "Warning: Unable to set ONEREG %" PRIu64 " to KVM: %s"
+# TCG related tracing (mostly disabled by default)
+# cpu-exec.c
+disable exec_tb(void *tb, uintptr_t pc) "tb:%p pc=0x%"PRIxPTR
+disable exec_tb_nocache(void *tb, uintptr_t pc) "tb:%p pc=0x%"PRIxPTR
+disable exec_tb_exit(void *next_tb, unsigned int flags) "tb:%p flags=%x"
+
+# translate-all.c
+translate_block(void *tb, uintptr_t pc, uint8_t *tb_code) "tb:%p, pc:0x%"PRIxPTR", tb_code:%p"
+
# memory.c
memory_region_ops_read(void *mr, uint64_t addr, uint64_t value, unsigned size) "mr %p addr %#"PRIx64" value %#"PRIx64" size %u"
memory_region_ops_write(void *mr, uint64_t addr, uint64_t value, unsigned size) "mr %p addr %#"PRIx64" value %#"PRIx64" size %u"