Hi,
I'm working on a program that dynamically inserts prefetches in program code.
Now I'm trying to measure the number of prefetches executed by the
program, when I use:
pfmon -u -e PREFETCH_INSTRUCTIONS_DISPATCHED:ALL ./myprog
I get:
0 PREFETCH_INSTRUCTIONS_DISPATCHED:ALL
I'm sure the prefetches are inserted into the code, but for some
reason they are not dispatched...
I've written some test programs in C:
#include <stdio.h>
int main() {
int my_var = 3;
asm(
" prefetcht0 (%0) \n"
: /* no output registers */
: "r" (my_var)
);
return 0;
}
If I compile and execute the code above, I get 1 prefetch instruction
dispatched. However, If I compile and execute the code below, I get 0
prefetch instruction dispatched.
#include <stdio.h>
int main() {
int b = 3;
int my_var = (int)(&b);
asm(
" prefetcht0 (%0) \n"
: /* no output registers */
: "r" (my_var)
);
return 0;
}
Is there an explanation for this behaviour ? Are the counters missing
the events or are the prefetches not executed ?
Thanks !
Frederick
------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
perfmon2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/perfmon2-devel