The perfmon2 interface specification
Stéphane Eranian · 2005
Performance Monitoring Unit, PMU, performance tools, hardware counters, IPF, IA64 Linux, perfmon kernel interface Monitoring program execution is becoming key to achieving world class performance. All modern processors implement a sophisticated set of hardware performance counters to collect a lot of micro-architectural events which are important clues for software optimizations. Yet there is no standardized interface to access those counters which makes developing portable performance tools challenging. We have designed a powerful monitoring interface to access the performance counters present on all modern processors. The interface is generic and does not compromise access to processor specific features. It enables a diversity of tools to be developed or ported. In particular tools can collect simple counts or profiles on a per-thread or system-wide basis. The interface introduces several innovations such as customizable kernellevel sampling buffer formats, time and overflow-based event set multiplexing. An implementation exists for Linux 2.6 kernel for the Itanium Processor Family (IPF). Several open-source and commercial tools based on interface are available from HP and others. This document presents version 0.6 of the full specification of the interface including the Itaniumspecific features.