Thanks for your awnsers. Stean, after I find the right place to capture the reads and writes I'll definitely try your trace tool.
Until now, this is what i found: I am using the x86-64 target, and I know that, for instance, lots of reads pass here: target-i386/translate.c gen_op_ld_T1_A0() This function calls gen_op_ld_v, that calls a tcg function according to the operand size. Lets assume tcg_gen_qemu_ld8u() is called, which is defined at tcg/tcg-op.h Here I find myself lost again, because this function (in i386) calls tcg_gen_op3i_i32, which APPARENTLY does nothing... Where the code that access the main memory is being generated? 2010/7/24 Stefan Hajnoczi <stefa...@gmail.com> > On Sat, Jul 24, 2010 at 3:17 AM, Yufei Chen <cyfde...@gmail.com> wrote: > > On Fri, Jul 23, 2010 at 2:15 PM, Stefan Hajnoczi <stefa...@gmail.com> > wrote: > >> On Fri, Jul 23, 2010 at 4:12 AM, Mulyadi Santosa > >> <mulyadi.sant...@gmail.com> wrote: > >>> Hi... > >>> > >>> On Fri, Jul 23, 2010 at 05:30, Eduardo Cruz <eduardohmdac...@gmail.com> > wrote: > >>>> Hello, I need qemu to keep track of all the memory access made by the > guest, > >>>> including read, write and the instruction fetches. > > > > I don't think Qemu can provide cycle number information. But other > > information are all available. > > > >>> > >>> AFAIK there are lots of experiments on this and has produces working > >>> patches...at least from the posting of the creator. There is even a > >>> patch floating to start creating trace framework a while ago. > >> > >> Thanks Mulyadi, I think you are referring to the tracing work that > >> Prerna Saxena and I are doing. Here is the documentation: > >> > >> http://repo.or.cz/w/qemu/stefanha.git/blob/tracing:/docs/tracing.txt > >> > >> The patches apply to qemu.git. You can define trace events in the > >> trace-events file and then call them from places in the code. There > >> is a script to pretty-print the binary trace file that QEMU produces. > >> > >> Eduardo, if you think this might be what you're looking for, please > >> give it a try. I am on #qemu and #kvm IRC if you need any help. Any > >> feedback will be valuable to us as we prepare these patches for > >> submission to qemu.git. > >> > >> I believe the tracing framework answers the "Any ideas of how I can > >> record these information with qemu?" part of your question :). I > >> don't have experience in the TCG, so I can't give advice on how to > >> best get at the memory accesses, but I hope this helps you one step > >> further. > >> > > > > Can this framework trace memory access event? I guess this would be > > more difficult to do in KVM than in TCG. > > No, it can't trace memory accesses. It provides you with the ability > to put trace events into QEMU, but there is current no pre-defined > trace event for memory access. > > If you find the right spot to in TCG it should be easy to add a trace > event there. I agree, with KVM is would be more difficult and perhaps > defeat the point of KVM :). > > Stefan > > >> Stefan > >> > >>> perhaps you could dig a little deeper in qemu archieve....? > >>> > >>> -- > >>> regards, > >>> > >>> Mulyadi Santosa > >>> Freelance Linux trainer and consultant > >>> > >>> blog: the-hydra.blogspot.com > >>> training: mulyaditraining.blogspot.com > >>> > >>> > >> > >> > > > > > > > > -- > > Best regards, > > Chen Yufei > > > -- Eduardo Henrique Molina da Cruz MSc student Parallel and Distributed Processing Group Federal University of Rio Grande do Sul (UFRGS)