qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] subpage_write() and duplicated memory_region_ops_write


From: Hollis Blanchard
Subject: Re: [Qemu-devel] subpage_write() and duplicated memory_region_ops_write tracepoints
Date: Wed, 9 Dec 2015 16:39:53 -0800
User-agent: Mozilla/5.0 (X11; Linux i686; rv:38.0) Gecko/20100101 Thunderbird/38.4.0

On 12/09/2015 01:12 PM, Paolo Bonzini wrote:
On 09/12/2015 21:54, Hollis Blanchard wrote:
#0  trace_memory_region_ops_write (mr=0x185b620, addr=16, absaddr=738205712, 
value=136, size=4)
     at 
/scratch1/hblancha/install/customq/qemu-2.4.0/src/trace/generated-tracers.h:7374
#1  0x000000000045eb8a in memory_region_write_with_attrs_accessor 
(mr=0x185b620, addr=16,
     value=0x45203338, size=4, shift=0, mask=4294967295, attrs=...)
     at /scratch1/hblancha/install/customq/qemu-2.4.0/src/memory.c:513
#2  0x000000000045ed08 in access_with_adjusted_size (addr=16, value=0x45203338, 
size=4,
     access_size_min=1, access_size_max=4, access=0x45eb15 
<memory_region_write_with_attrs_accessor>,
     mr=0x185b620, attrs=...) at 
/scratch1/hblancha/install/customq/qemu-2.4.0/src/memory.c:556
#3  0x0000000000461ed7 in memory_region_dispatch_write (mr=0x185b620, addr=16, 
data=136, size=4,
     attrs=...) at 
/scratch1/hblancha/install/customq/qemu-2.4.0/src/memory.c:1214
#4  0x0000000000411bbf in address_space_rw (as=0x11f3440, addr=738205712, 
attrs=...,
     buf=0x45203490 "\210", len=4, is_write=true)
     at /scratch1/hblancha/install/customq/qemu-2.4.0/src/exec.c:2497
#5  0x0000000000411ea9 in address_space_write (as=0x11f3440, addr=738205712, 
attrs=...,
     buf=0x45203490 "\210", len=4) at 
/scratch1/hblancha/install/customq/qemu-2.4.0/src/exec.c:2579
#6  0x0000000000410d89 in subpage_write (opaque=0x19148f0, addr=16, value=136, 
len=4, attrs=...)
     at /scratch1/hblancha/install/customq/qemu-2.4.0/src/exec.c:2139
#7  0x000000000045ebb2 in memory_region_write_with_attrs_accessor 
(mr=0x19148f0, addr=16,
     value=0x452035a8, size=4, shift=0, mask=4294967295, attrs=...)
     at /scratch1/hblancha/install/customq/qemu-2.4.0/src/memory.c:516
#8  0x000000000045ed08 in access_with_adjusted_size (addr=16, value=0x452035a8, 
size=4,
     access_size_min=1, access_size_max=8, access=0x45eb15 
<memory_region_write_with_attrs_accessor>,
     mr=0x19148f0, attrs=...) at 
/scratch1/hblancha/install/customq/qemu-2.4.0/src/memory.c:556
#9  0x0000000000461ed7 in memory_region_dispatch_write (mr=0x19148f0, addr=16, 
data=136, size=4,
     attrs=...) at 
/scratch1/hblancha/install/customq/qemu-2.4.0/src/memory.c:1214
#10 0x000000000046c61c in io_writel (env=0x2aabace89268, 
iotlbentry=0x2aabace99808, val=136,
     addr=18446743523953745936, retaddr=1107508028)
     at /scratch1/hblancha/install/customq/qemu-2.4.0/src/softmmu_template.h:470
#11 0x000000000046c3cb in helper_le_stl_mmu (env=0x2aabace89268, 
addr=18446743523953745936, val=136,
     oi=33, retaddr=1107508028)
     at /scratch1/hblancha/install/customq/qemu-2.4.0/src/softmmu_template.h:510
#12 0x0000000042033b3e in code_gen_buffer ()


The first tracepoint in each pair is an artifact, and should be omitted.
Any suggestions? We could special case "if (mr->ops->write !=
subpage_write) { emit tracepoint }", but that's a bit of a hack... :-)
You can add an argument to the tracepoint for mr->subpage.  I would keep
the duplicate however.

Not sure I understand. Do you mean something like this?
-trace_memory_region_ops_write(mr, addr, tmp, size);
+trace_memory_region_ops_write(mr, addr, mr->ops->write == subpage_write, tmp, size);

Maybe this isn't the right tracepoint to begin with. I'm trying to trace guest MMIO activity; is there a better place to intercept that?

Hollis Blanchard
Mentor Graphics Emulation Division




reply via email to

[Prev in Thread] Current Thread [Next in Thread]