Hi Abhishek,
Actually, the TraceTracker works a bit strangely compared with most of the
other Flexus components. You can get callbacks into TraceTracker even if
the TraceTrackerComponent is not enabled (basically, the code in
components/Common/TraceTracker.* is always active, even if the component
in components/TraceTracker/ is not).
If you are using TraceFlex (or one of its variants), you will need to
enable the callbacks from within the caches, for example:
- at run-time: flexus.set "-L1d:trace_tracker_on" "1"
- at compile time (in wiring.cpp, initializeParameters() function:
theL1DCfg.TraceTracker.initialize(true);
The easiest way to get a list of all the parameters supported by a
particular Flexus simulator is to load the simulator in Simics and run,
even if just for one cycle. Then look at the configuration.out file that
was generated - this lists all the parameters and their values.
Stephen
On Wed, 29 Apr 2009, Abhishek Das wrote:
> Hi Stephen,
>
> Thanks for the reply. I have put my own debugging statements in the
> components/Common/TraceTracker.cpp file. However, it seems that I need to
> enable the trace-tracking option in order to get the extra information. The
> components/TraceTrackerComponent.hpp has a parameter called "enable" which
> is set to 'false' by default. How can I enable this option? Should I include
> the command { flexus.set "trace-tracker:enable" "true" } in the
> config/flexpoint/start.simics ?
>
> Also, in general where can I get the complete list of component names and
> corresponding parameters which can be used for the 'flexus.set' statements.
> Currently, I am just looking at the *.hpp files in the components directory,
> but I am unsure of the names of the components to use.
>
> regards,
> Abhishek
>
> -----Original Message-----
> From: simflex-bounces at ece.cmu.edu [mailto:simflex-bounces at ece.cmu.edu]
> On
> Behalf Of Stephen Somogyi
> Sent: Tuesday, April 28, 2009 11:05 AM
> To: SimFlex software support
> Subject: Re: [Simflex] memory access traces
>
> Dear Abhishek,
>
> Probably the easiest way to accomplish this in Flexus is through the
> TraceTracker. Each cache makes a call into TraceTracker on every access,
> which should provide the information you require. The default
> TraceTracker functions perform no actions, but it is simple to add
> whatever code you need (components/Common/TraceTracker.cpp). To get the
> current cycle, call "theFlexus->cycleCount()".
>
> Cheers,
> Stephen
>
>
> On Mon, 27 Apr 2009, Abhishek Das wrote:
>
> > Hi,
> >
> >
> >
> > I am trying to generate memory traces for some applications using Flexus.
> > Particularly, I want to track memory accesses by each thread/cpu (read,
> > write, load, store) to physical addresses in memory. I want an output
> > registers the follwwing information:
> >
> > Cpu/Thread Memory Request Physical Addres
> > Cycle
> >
> > --------------- ----------------------
> --------------------
> > ----------
> >
> >
> >
> > I was wondering whether Simflex has debugging options that can enable such
> > memory access tracing. If yes, what specific debug flags need to be set?
> Or
> > do I have to change in the source code in Flexus to do the same?
> >
> >
> >
> > Thanks,
> >
> > Abhishek
> >
> >
> _______________________________________________
> SimFlex mailing list
> SimFlex at ece.cmu.edu
> https://sos.ece.cmu.edu/mailman/listinfo/simflex
> SimFlex web page: http://www.ece.cmu.edu/~simflex
>
> _______________________________________________
> SimFlex mailing list
> SimFlex at ece.cmu.edu
> https://sos.ece.cmu.edu/mailman/listinfo/simflex
> SimFlex web page: http://www.ece.cmu.edu/~simflex
>