mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-06 17:23:56 -06:00
trace: Split guest_mem_before
There is no point in encoding load/store within a bit of the memory trace info operand. Represent atomic operations as a single read-modify-write tracepoint. Use MemOpIdx instead of inventing a form specifically for traces. Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
37aff08726
commit
0583f775d2
7 changed files with 28 additions and 122 deletions
18
trace-events
18
trace-events
|
@ -120,26 +120,16 @@ vcpu guest_cpu_reset(void)
|
|||
# tcg/tcg-op.c
|
||||
|
||||
# @vaddr: Access' virtual address.
|
||||
# @info : Access' information (see below).
|
||||
# @memopidx: Access' information (see below).
|
||||
#
|
||||
# Start virtual memory access (before any potential access violation).
|
||||
#
|
||||
# Does not include memory accesses performed by devices.
|
||||
#
|
||||
# Access information can be parsed as:
|
||||
#
|
||||
# struct mem_info {
|
||||
# uint8_t size_shift : 4; /* interpreted as "1 << size_shift" bytes */
|
||||
# bool sign_extend: 1; /* sign-extended */
|
||||
# uint8_t endianness : 1; /* 0: little, 1: big */
|
||||
# bool store : 1; /* whether it is a store operation */
|
||||
# pad : 1;
|
||||
# uint8_t mmuidx : 4; /* mmuidx (softmmu only) */
|
||||
# };
|
||||
#
|
||||
# Mode: user, softmmu
|
||||
# Targets: TCG(all)
|
||||
vcpu tcg guest_mem_before(TCGv vaddr, uint16_t info) "info=%d", "vaddr=0x%016"PRIx64" info=%d"
|
||||
vcpu tcg guest_ld_before(TCGv vaddr, uint32_t memopidx) "info=%d", "vaddr=0x%016"PRIx64" memopidx=0x%x"
|
||||
vcpu tcg guest_st_before(TCGv vaddr, uint32_t memopidx) "info=%d", "vaddr=0x%016"PRIx64" memopidx=0x%x"
|
||||
vcpu tcg guest_rmw_before(TCGv vaddr, uint32_t memopidx) "info=%d", "vaddr=0x%016"PRIx64" memopidx=0x%x"
|
||||
|
||||
# include/user/syscall-trace.h
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue