I'm experimenting performance counter to find deterministic events.

I originally thought that the number of retired instructions will be the
same for every run of the program with the same input. However, it was not.

The following is the result with the 'task' example provided in libpfm4
package.

 ./task -e "inst_retired" gcc
gcc: no input files
             125240*3* inst_retired

 ./task -e "inst_retired" gcc
gcc: no input files
             125240*5* inst_retired


As you can see above, they are different for each run. I only enabled 'user'
mode counting to exclude any perturbation.

        fds[0].hw.exclude_kernel = 1;
        fds[0].hw.exclude_idle = 1;
        fds[0].hw.exclude_hv = 1;


What is the reason of this unexpected non-determinism?

Best Regards,

Heechul
------------------------------------------------------------------------------
SOLARIS 10 is the OS for Data Centers - provides features such as DTrace,
Predictive Self Healing and Award Winning ZFS. Get Solaris 10 NOW
http://p.sf.net/sfu/solaris-dev2dev
_______________________________________________
perfmon2-devel mailing list
perfmon2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/perfmon2-devel

Reply via email to