Re: [Gems-users] Gems 2.0 MESI_CMP_directory L1 + L2 miss profiling


Date: Wed, 17 Jun 2009 09:32:02 -0500
From: Polina Dudnik <pdudnik@xxxxxxxxx>
Subject: Re: [Gems-users] Gems 2.0 MESI_CMP_directory L1 + L2 miss profiling
OK,

So, the Coherence Request Types are listed in MESI_CMP_directory-msg.sm. And some of the request types that convertToGenericType is trying to convert are simply not there, undefined. So, one of your options is to change convertToGenericType function to be:

GenericRequestType convertToGenericType(CoherenceRequestType type) {
  if(type == CoherenceRequestType:PUTX) {
    return GenericRequestType:PUTX;
  } else if(type == CoherenceRequestType:GETS) {
    return GenericRequestType:GETS;
  } else if(type == CoherenceRequestType:GET_INSTR) {
    return GenericRequestType:GET_INSTR;
  } else if(type == CoherenceRequestType:GETX) {
    return GenericRequestType:GETX;
  } else if(type == CoherenceRequestType:UPGRADE) {
    return GenericRequestType:UPGRADE;
  } else if(type == CoherenceRequestType:PUTX) {
    return GenericRequestType:PUTX;
  } else if(type == CoherenceRequestType:INV) {
    return GenericRequestType:INV;
//  } else if(type == CoherenceRequestType:INV_S) {
//    return GenericRequestType:INV_S;
//  } else if(type == CoherenceRequestType:L1_DG) {
//    return GenericRequestType:DOWNGRADE;
//  } else if(type == CoherenceRequestType:WB_ACK) {
//    return GenericRequestType:WB_ACK;
//  } else if(type == CoherenceRequestType:EXE_ACK) {
//    return GenericRequestType:EXE_ACK;
  } else {
    DEBUG_EXPR(type);
    error("invalid CoherenceRequestType");
  }
}

Now, I have not run this, but it is possible that you get invalid CoherenceRequestType type errors, in that case, just add the missing types to the
// CoherenceRequestType
enumeration(CoherenceRequestType, desc="...") {

Which is again in MESI_CMP_directory-msg.sm
One other discaimer: given that this code was commented out, it is possible it is not working correctly, so beware.

Hope this helps.
On Tue, Jun 16, 2009 at 11:03 PM, Lyon Shinseky <lyon.shinseky@xxxxxxxxx> wrote:

Here's what i get after uncommenting uu_profileMiss calls (and the call inside the action definition) and the convertToGenericType slicc function in MESI_CMP_directory-L1cache.sm and MESI_CMP_directory-msg.sm

SLICC v0.3
Parsing...
  ../protocols/RubySlicc_Exports.sm
  ../protocols/RubySlicc_Types.sm
  ../protocols/RubySlicc_Util.sm
  ../protocols/RubySlicc_ComponentMapping.sm
  ../protocols/RubySlicc_Profiler.sm
  ../protocols/RubySlicc_Defines.sm
  ../protocols/RubySlicc_MemControl.sm
  ../protocols/MESI_CMP_directory-msg.sm
  ../protocols/MESI_CMP_directory-L2cache.sm
  ../protocols/MESI_CMP_directory-L1cache.sm
  ../protocols/MESI_CMP_directory-mem.sm
  ../protocols/standard_CMP-protocol.sm
Generator pass 1...
Generator pass 2...

../protocols/MESI_CMP_directory-msg.sm:124: Error: Type 'CoherenceRequestType' does not have enumeration 'PUTS'
make[1]: *** [generated/MESI_CMP_directory/generated] Error 1
make[1]: Leaving directory `/home/yara/vijay/hsohail/gems-backup/ruby'
make: *** [all] Error 2

I can't see what i would've goofed up since i got MOESI_CMP_directory to compile without any issues with the uu_profileMiss action uncommented.

Any help would be greatly appreciated.


Lyon





_______________________________________________
Gems-users mailing list
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.


_______________________________________________
Gems-users mailing list
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.



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