From: "Emilio G. Cota" <cota@braap.org>
To: "Lluís Vilanova" <vilanova@ac.upc.edu>
Cc: Jayanto Minocha <jayanto@gmail.com>, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] Tracing guest virtual addresses
Date: Tue, 20 Jun 2017 13:20:02 -0400 [thread overview]
Message-ID: <20170620172002.GA23332@flamenco> (raw)
In-Reply-To: <8760fqorbp.fsf@frigg.lan>
On Tue, Jun 20, 2017 at 14:02:02 +0300, Lluís Vilanova wrote:
> Jayanto Minocha writes:
>
> > Hi,
> > I think there have been a few threads on the mailing list regarding tracing
> > guest virtual addresses for load and store instructions, but I have been
> > unable to get it to work. I am trying this for an AArch64 machine, and am
> > using the softmmu.
>
> > The tracing infrastructure provides the following event:
>
> > vcpu tcg guest_mem_before(...).
>
> > But that is only used to instrument the cpu_ld/cpu_st macros, which is only
> > called in the case of a tlb miss.
>
> > I've been going over the archives, and it looks like I need to instrument
> > tcg_out_tlb_load. Am I on the right path ?
>
> That event should trace all guest memory accesses performed by the CPU. If you
> found any case where this does not hold, it is likely a bug and I'd appreciate
> it if you can point me to the smallest possible failing example.
I'm having trouble with this as well, although I'm pretty sure I must be doing
something wrong (never used the tracing infrastructure before). Here's what
I'm doing:
$ git show --pretty=short
commit e85c0d14014514a2f0faeae5b4c23fab5b234de4
Merge: 65a0e3e 7f3cf2d
Author: Peter Maydell <peter.maydell@linaro.org>
Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging
$ git diff
diff --git a/accel/tcg/trace-events b/accel/tcg/trace-events
index 2de8359..385a462 100644
--- a/accel/tcg/trace-events
+++ b/accel/tcg/trace-events
@@ -2,7 +2,7 @@
# TCG related tracing (mostly disabled by default)
# cpu-exec.c
-disable exec_tb(void *tb, uintptr_t pc) "tb:%p pc=0x%"PRIxPTR
+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 *last_tb, unsigned int flags) "tb:%p flags=%x"
diff --git a/trace-events b/trace-events
index bae63fd..7df49a3 100644
--- a/trace-events
+++ b/trace-events
@@ -106,7 +106,7 @@ vcpu guest_cpu_reset(void)
#
# Mode: user, softmmu
# Targets: TCG(all)
-disable vcpu tcg guest_mem_before(TCGv vaddr, uint8_t info) "info=%d", "vaddr=0x%016"PRIx64" info=%d"
+vcpu tcg guest_mem_before(TCGv vaddr, uint8_t info) "info=%d", "vaddr=0x%016"PRIx64" info=%d"
# @num: System call number.
# @arg*: System call argument value.
$ mkdir build
$ cd build
$ ../configure --target-list=arm-softmmu,x86_64-linux-user --enable-trace-backends=simple && make -j 12
[...]
$ cat ../ev
guest_mem_before_exec
guest_mem_before_trans
exec_tb
$ x86_64-linux-user/qemu-x86_64 -trace events=../ev /bin/date
Tue Jun 20 13:11:49 EDT 2017
$ ls -lt | head | grep trace
-rw-rw-r-- 1 cota cota 169721 Jun 20 13:11 trace-2150
$ scripts/simpletrace.py trace-events-all trace-2150
exec_tb 0.000 pid=2150 tb=0x7f5896667010 pc=0x4000801cc0
exec_tb 21.648 pid=2150 tb=0x7f5896667088 pc=0x4000805c00
[...]
100% of the file is exec_tb lines, i.e. no memory references whatsoever.
Similar results with arm-softmmu.
Thanks,
Emilio
next prev parent reply other threads:[~2017-06-20 17:20 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-19 21:15 [Qemu-devel] Tracing guest virtual addresses Jayanto Minocha
2017-06-20 11:02 ` Lluís Vilanova
2017-06-20 11:13 ` Peter Maydell
2017-06-21 14:44 ` Alex Bennée
2017-06-25 12:20 ` Lluís Vilanova
2017-06-25 17:35 ` Alex Bennée
2017-06-26 9:26 ` Lluís Vilanova
2017-06-26 9:32 ` Peter Maydell
2017-06-26 12:04 ` Lluís Vilanova
2017-06-26 12:14 ` Peter Maydell
2017-06-20 17:20 ` Emilio G. Cota [this message]
2017-06-20 22:30 ` Jayanto Minocha
2017-06-22 5:36 ` Lluís Vilanova
2017-06-25 12:16 ` Lluís Vilanova
2017-06-26 17:42 ` Emilio G. Cota
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170620172002.GA23332@flamenco \
--to=cota@braap.org \
--cc=jayanto@gmail.com \
--cc=qemu-devel@nongnu.org \
--cc=vilanova@ac.upc.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.