Performance Reader LKM Details:

This is not as sophisticated as Brinkley Sprunt's Brink & Abyss, but really lightweight and easy to program as long as you know what counters/events you wanna use. Implements 6 syscalls to access/manipulate/define events/counters. Has a verification option which after manipulating the counters outputs back to the TTY calling the syscall the value read from the updated register and the desired change, so you can easily follow if things work correctly w/o going to kernel log offline. Uses a define_events file, where you define a complete CCCR and ESCR structure for each CCCR and ESCR. You can modify counters themselves directly & do:

  • start
  • reset
  • halt
  • define events
  • get event counts
  • set replay MSRs (for replay tagging)

PerformanceReader can do normal and at retirement counting with replay/front end/execution/?? tagging. It cannot do interrupt based PEBS or IEBS though.


    Department of Electrical Engineering