Skip to content
John D McCalpin edited this page Aug 19, 2020 · 1 revision

Welcome to the periodic-performance-counters wiki!

Hardware performance counters in modern processors are complex, subtle, and poorly documented.

Putting on my cynical hat, I claim that we are starting with two strikes against us:

  • We don't know (in detail) what the performance counter is supposed to count.
    • Performance counters are typically tied very closely to the processor implementation, the details of which are not public.
  • We don't know if the performance counter counts that quantity accurately.
    • "Bugs" in performance counters are seldom a high priority in processor validation.

It is often possible to work past these two "strikes", but most performance tools sneak in a third:

  • We don't know (in detail) how the performance counter events are programmed.

Instead of attempting to abstract the interface to the performance counters, this project focuses on remaining completely concrete -- requiring the user to specify every detail of the hardware performance counter configuration, and providing a framework to program the counters and acquire the counts at specified intervals.

Clone this wiki locally