Deterministic Performance Counter Work

I have been researching the inherent determinism (and overcount) of hardware performance counters.

Currently this work has mostly been about finding deterministic events on x86_64 machines, as well as finding sources of non-determinism and overcount.
Here is an ongoing paper with the most recent results:
A summary of my findings as of April 2013 can be found in the following ISPASS 2013 paper:

I presented an earlier version on this work at the FHPM 2010 Workshop:
A somewhat older and more disorganized list of the results I find are presented broken-out here.

Source Code

This project has two phases. The first involved generating a large hand-coded assembly benchmark that was used to find non-determinisms in the hardware performance counters on a variety of x86_64 systems.

The second phase is automating the code generating and having some sort of automatic search for such problems. This work is underway.

The most recent version of the tool used to gather this information can be obtained via:
git clone

An older stable release can be downloaded: deterministic-0.23.tar.bz2 (2M) 15 February 2013

Back to my projects page