Hi,

Scenario:
I am trying to generate a trace of all the load/store virtual addresses
generated by a multithreaded application.

Issues:
1.  As per one of the threads in this mailing list, this can be achived by
trapping  lsq->virtaddr just before it is reset in the function
ReorderBufferEntry::commit() in the file ooopipe.cpp.** The addresses
corresponding to Load instructions are being printed properly. However the
ones associated with Store are being printed as 0x0. Can you please throw
some light on as to why this anamoly is being observed?

Command used from simulator: ./start_sim; ls ;./stop_sim
Modification to ooopipe.cpp: just before the statement lsq->reset() in line
2285...
     if( lsq->virtaddr < 0x7f000000){
                if (st)
                  cout << hexstring(lsq->virtaddr,64), "    S    threadid:
", threadid, "  coreid: ",  coreid, endl;
                else if(ld)
                  cout << hexstring(lsq->virtaddr,64), "    L    threadid:
", threadid, "  coreid: ",  coreid, endl;
                                        }

2. Will modifying the different eventhandler in mesiCache.cpp allow me to
the to trap different cache events ( e.g, the addresses recieved from a
snoop signal etc.)?
3. This is a naive question. How can I force the emulator to run only the
instructions associated to the benchmark and stop any kernel code from
execution?

I would very much appreciate any kind of help on this front.

---
Thanks & Regards
Hiuen
_______________________________________________
http://www.marss86.org
Marss86-Devel mailing list
[email protected]
https://www.cs.binghamton.edu/mailman/listinfo/marss86-devel

Reply via email to