Re: [Gems-users] Tarcking L2 access in L2directory-sm


Date: Wed, 03 Mar 2010 19:48:00 -0600
From: Muhammad Shoaib <shoaibbinalt@xxxxxxxx>
Subject: Re: [Gems-users] Tarcking L2 access in L2directory-sm
Thanks for the reply Dan.

I have another issue now, when I call my function "cal_act_Time()" for the track from other processor request ..nothing is getting printed 

in_port(requestNetwork_in, RequestMsg, GlobalRequestToL2Cache) {
    if (requestNetwork_in.isReady()) {
      peek(requestNetwork_in, RequestMsg) {
          cal_act_Time()


while access to the local L1 requests are recorded/printed correctly as following (same procedure as above).

in_port(requestNetwork_in, RequestMsg, L1RequestToL2Cache) {
    if (requestNetwork_in.isReady()) {
      peek(requestNetwork_in, RequestMsg) {
          cal_act_Time()

So does this make sense, there should be global message transfers (I have also tried couple of benchmarks but got the same result)?? OR I am missing something there!!!


Shoaib


On 02/24/10, Dan Gibson <degibson@xxxxxxxx> wrote:
Messages arrive at L2s when that L2 does not (yet) cache the particular block (e.g., an L2 cache miss). When you execute L2cacheMemory[addr], there is an assertion that the line is present. If the line is not present, L2cacheMemory[addr] is meaningless. Hence, you cannot assume in your implementation of cal_act_Time() that the addresses associated with each message resides in-cache without first checking that this is the case.

Regards,
Dan

On Wed, Feb 24, 2010 at 2:20 PM, Muhammad Shoaib <shoaibbinalt@xxxxxxxx <shoaibbinalt@xxxxxxxx>> wrote:

List,

I was just trying to catch all the accesses to L2, either from its L1 or from other processors. So is that right, if I insert a function 'cal_act_Time(in_msg.Address)' for all global requests in the following way???

in_port(requestNetwork_in, RequestMsg, GlobalRequestToL2Cache) {
    if (requestNetwork_in.isReady()) {
      peek(requestNetwork_in, RequestMsg) {
          cal_act_Time(in_msg.Address)........
   ......
where i am accessing L2cacheMemory[addr] in my defined function.

The problem with this is that when I use it in this way ..i get the following falied assertion

failed assertion 'loc != -1' at fn ENTRY& CacheMemory<ENTRY>::lookup(const Address&) [with ENTRY = L2Cache_Entry] in system/CacheMemory.h:502

I know that this assertion happens whenever the address is not in the cache...so does this mean i can not call my function here??


Shoaib
_______________________________________________
Gems-users mailing list
Gems-users@xxxxxxxxxxx <Gems-users@xxxxxxxxxxx>
https://lists.cs.wisc.edu/mailman/listinfo/gems-users
Use Google to search the GEMS Users mailing list by adding "site:https://lists.cs.wisc.edu/archive/gems-users/" to your search.





--
http://www.cs.wisc.edu/~gibson [esc]:wq!

--
Muhammad Shoaib Bin Altaf
ECE Graduate Student
UW Madison,WI
[← Prev in Thread] Current Thread [Next in Thread→]