Below is an announcement of the kernel perfmon/libpfm support and user
library for hardware performance monitoring on MIPS (and other
platforms). This support mirrors that which has been available on IA64
for quite some time and is an effort by Stefane Eranian, David Gibson
myself and others to establish a fully functional kernel substrate for
hardware performance analysis. This is based on a large body of
work/experience with PM kernel support both on Linux and many other
Note that the MIPS support is based on a 2.6.13-rc2 snapshot of the LM
code base, soon to be updated to 2.6.15. If you want to patch against
the head, you'll probably have to fix up the syscall numbers.
I have tested the code on a 20K system + 64bit kernel (that has 1 entire
PMC register) and soon will be testing on a 5K system when it comes back
from being serviced. n32/n64 ABI's have not yet been tested but support
PAPI is also in the works for these systems. Feel free to give it a spin
and tell us where it breaks or otherwise offends you.
P.S. The code should be relatively easy to extend to other members of
the product line...currently I've only got kernel code in for
5K/20K/25K, which are nearly identical as far as the PMC goes.
-------- Forwarded Message --------
From: Stephane Eranian <email@example.com>
Cc: firstname.lastname@example.org, email@example.com,
Subject: [Perfctr-devel] 2.6.16-rc1 perfmon2 new code base with
Montecito support + libpfm available
Date: Wed, 18 Jan 2006 12:56:30 -0800
I have released a new version of the perfmon base package.
This release is relative to 2.6.16-rc1.
Due to the addition of the migrate_pages() system call, all perfmon
system calls have been shifted by one. As a consequence, you must
relink your applications using the new version of libpfm which
is also released today: libpfm-3.2-060118.
This new kernel patch includes several important changes:
- added support for the Dual-Core Itanium 2 (Montecito) processor
- working support for MIPS5K and MIPS20k (by Phil Mucci)
- lots of cleanups in the PMU description modules. Some common
functionalities moved into core (masking of reserved fields)
- PFM_REGFL_NEMUL64 managed from perfmon core
The new version of the library, libpfm, includes the following changes:
- added support for MIPS5K, MIPS20K
- added pfm_get_event_counter() interface with man page
- added support for compiling using a 32-bit ABI on a 64-bit OS
(not available on all platforms, see config.mk)
- reworked all standalone examples
- cleanups and fixes in the generic examples
The two packages can be downloaded from the SourceForge website at:
I will be posting the patches directly to LKML for
review very shortly.