Re: [Gems-users] cache statistics with timing info.


Date: Mon, 7 Mar 2005 18:48:09 -0500
From: yilmazer@xxxxxxxxxxx
Subject: Re: [Gems-users] cache statistics with timing info.
Thanks Nauman and Mike.

I will try protocol debug tracer. Actually, I have a few more question. I want
to  trace speculative wrong-path loads in ruby.

When it is known that the speculatively executed path is wrong and what happens,
how recovery is handled in opal, where I should look for?

Thanks a lot for your help and time,

Ayse Yilmazer.

Quoting Mike Marty <mikem@xxxxxxxxxxx>:

> Nauman and Ayse,
> 
> Its great to see others contributing to this mailing list!  Your
> information was quite good.
> 
> By default, the Ruby statistics will tell you how many transitions
> occured.  As Nauman pointed out, these transitions and states are
> specified in the SLICC files.
> 
> In order to get the time of these transitions, you can use the protocol
> debug tracer.  This is mentioned briefly on our documentation site in the
> "Debugging Ruby README" file.  Have a look at this.
> 
> In short, set the RUBY_DEBUG Makefile flag to true.  Ensure that the
> PROTOCOL_DEBUG_TRACE option is also set to true in the
> ruby/config/rubydefaults.config.
> 
> This will enabled a trace of every transition that occurs.  To start the
> trace in Simics, enter this command:
> 
>   ruby0.debug-start-time "1"'
> 
> This will start the protocol trace at time 1 (the very first cycle).  It
> will give you every transition, for every block, and give you the time as
> well.
> 
> 
> I believe you can direct this output to a file as well with this command:
> 
>   ruby0.debug-output-file /scratch/ruby_debug_output.txt
> 
> --Mike
> 
> 
> > You have to look into SLICC specification of cache coherence protocols.
> The
> > SLICC specification is translated automatically to C++ code. So all the
> code for
> > caches is automatically generated.
> > To find the specification for different protocols, look into the protocols
> > directory in gems folder.
> >
> > Here is an example of profiling in SLICC
> >
>
-------------------------------------------------------------------------------
> >   action(uu_profileMiss, "\u", desc="Profile the demand miss") {
> >     peek(L1requestNetwork_in, RequestMsg) {
> >       // AccessModeType not implemented
> >       profile_L2Cache_miss(convertToGenericType(in_msg.Type),
> in_msg.AccessMode,
> > MessageSizeTypeToInt(in_msg.MessageSize),  in_msg.Prefetch,
> > machineIDToNodeID(in_msg.Requestor));
> >     }
> >   }
> >
>
-------------------------------------------------------------------------------
> >
> > The function profile_L2Cache_miss is declared in RubySlicc_Profiler.sm,
> > GEMS/ruby/slicc_interface/RubySlicc_Profiler_interface.h and
> > GEMS/ruby/slicc_interface/RubySlicc_Profiler_interface.C.
> > It is implemented in files in GEMS/ruby/profiler.
> > So make your own function on the same pattern.
> > p.s.
> > Just trying to point you in the right direction. I am a newbie too so dont
> trust
> > me too much :)
> >
> > Thanks.
> > --
> > Nauman
> >
> >
> > Quoting yilmazer@xxxxxxxxxxx:
> >
> > > Hi,
> > > I have just started to use gems. I want to collect some statistics from
> ruby
> > > cache module. What I want to do is to track transitions of shared
> > > cache-lines
> > > with timing information.
> > >    t1: Modified
> > >    ..
> > >    tn: Modified/Shared
> > >    tm: Invalid
> > >    what is t1 time, tn and tm?
> > > I looked over the source code but I couldn't figure out where to start.
> If
> > > you
> > > can help me, I will very appreciate it.
> > > Thanks,
> > > Ayse Yilmazer.
> > >
> > > _______________________________________________
> > > Gems-users mailing list
> > > Gems-users@xxxxxxxxxxx
> > > https://lists.cs.wisc.edu/mailman/listinfo/gems-users
> > >
> >
> > _______________________________________________
> > Gems-users mailing list
> > Gems-users@xxxxxxxxxxx
> > https://lists.cs.wisc.edu/mailman/listinfo/gems-users
> >
> _______________________________________________
> Gems-users mailing list
> Gems-users@xxxxxxxxxxx
> https://lists.cs.wisc.edu/mailman/listinfo/gems-users
> 



[← Prev in Thread] Current Thread [Next in Thread→]