Re: [Gems-users] How to count "Privileged" instructions in Opal??


Date: Tue, 2 Jun 2009 19:58:50 +0200
From: David Bonavila <david.bonavila@xxxxxxxxxxxxxxxxxx>
Subject: Re: [Gems-users] How to count "Privileged" instructions in Opal??

Hi.

I have added the following lines to the pseq.C file:

/*------------------------------------------------------------------------*/
/* Variable declarations                                                  */
/*------------------------------------------------------------------------*/
int iPriv[2] = { 0, 0 };
// I am simulating a 2-core processor
int iUser[2] = { 0, 0 };

if (d_instr) {
  last_mode = d_instr->getPrivilegeMode(); // this line already existed
  if (last_mode) iPriv[proc]++; // I have added these two lines
  else iUser[proc]++;
}

out_info("  %-50.50s %10llu\n", "PRIVILEGED INSTRUCTIONS:", iPriv[k]);
out_info("  %-50.50s %10llu\n", "USER_MODE  INSTRUCTIONS:", iUser[k]);


I have simulated 1 Million instructions with Opal, and the Opal output file has this:

[0]   PRIVILEGED INSTRUCTIONS:                                 219278
[0]   USER_MODE  INSTRUCTIONS:                                 175210

[1]   PRIVILEGED INSTRUCTIONS:                                 219278
[1]   USER_MODE  INSTRUCTIONS:                                 175210

The two processors have executed the same number of privileged instructions??
And the total instructions (Privileged + User) is different from 1M (I have changed Opal so the number of instructions passed to the opal0.sim-step command is the TOTAL number of instructions executed between all processors, not just CPU0).
I am simulating a workload which runs only 1 thread.

Is all this right??
Am I doing something wrong??

Thanks!!

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