new perfmon code base, libpfm, and pfmon packages

From: Stephane Eranian
Date: Mon Aug 21 2006 - 11:50:16 EST


I have released another version of the perfmon new code base package.
This version of the kernel patch is relative to This version
has taken more time than usual due some vacation and also massive rewriting
of the context switch code and various other changes in the generic kernel.

The kernel patch includes:
- completely rewritten PMU context switch code (perfmon_ctxsw.c). The
new code takes advantage of the TIF mechanism in switch_to() for i386 and
x86_64. Given that support for TIF in switch_to() is not yet in, you need a prepatch that is included in the kernel package.
Now have only one kernel hook (pfm_ctxsw()) for context switch.

- Fix P6 single enable bit (now more efficient to start/stop)

- simplified the way we determine which thread is active for P4 with HT

- renamed all AMD related code to amd64 (from x86_64 or amd)

- lots of coding style cleanups

- MIPS irq update by Phil Mucci

I have also released a new libpfm, libpfm-3.2-060821, which includes:

- preliminary support for P4 32 and 64 bit mode by Kevin Corry from IBM

- rewritten AMD event table to expose unit masks and allow masks to be
combined. Some event names have therefore changed!

- new pfmsetup example to help automate kernel interface testing by
Kevin Corry from IBM

- new showevtinfo example to list events and their description

- remove useless pfm_print_event_info*() calls from library
- added pfm_get_event_mask_code()
- updated man pages for pfm_dispatch_events()
- new man pages for all unit mask related interface calls
- move all perfmon system calls number definitions to perfmon.h
- made PFM_PLM* description more generic.
- renamed all AMD file to amd64* from gen_x86_64*
- added support for Pentium II (Chuck Ebbert)

This version of the library works with and

Also a new version of pfmon, pfmon-3.2-060821, to take advantage of the
update in libpfm:

- preliminary support for P4 32 and 64 bits by Kevin Corry from IBM.
Do not get too excited and it does not count anything just yet!

- renamed all AMd related file/struct to amd64
- all help message reformatted to 80 columns by Kevin Corry from IBM

- added internal routine to show event info
- added support to display event and unit masks names in results

- fix the detection of unavailable PMC registers. it was causing crashes
when used with sampling.

- fix P6 edge/inv filter bug whereby 2nd event was not setup properly

You can get a more detailed log of changes the the CVS tree.

You can grab the new packages at our web site:



PS: I will post an kernel patch and a diffstat on the perfmon mailing list.

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/