Hello,
I have released another version of the perfmon new code base package.
This version of the kernel patch is relative to 2.6.19-rc6-git10.
This is a major update because it completes the changes requested
during the code review on LKML. As a consequence, the kernel interface
is NOT backward compatible with previous v2.2 versions. This release has
the v2.3 version number. Backward compatibility with v2.0 is maintained
on Itanium processors.
The kernel patch is split between infrastructure work and perfmon2 proper.
The infrastructure contains the following changes which will be integrated
into mainline before perfmon2 is. Those changes should appear in 2.6.20.
They are provided in the base.diff file.
The infrastructure changes include:
- x86_64: fix idle_notifier to cover all interrupts entry/exit for idle thread
- i386 : add idle notifier (copy of x86_64 notifier)
- ia64 : idle notifier (copy of x86_64 notifier)
- i386 : add X86_FEATURE_ceforge.net, [email protected],X86_FEATURE_PEBS to cpufeature.h
- x86_64: add X86_FEATURE_BTS,X86_FEATURE_PEBS to cpufeature.h
- i386 : add PMU related MSR definitions to msr.h
- x86_64: NMI watchdog uses PERFCTR1 to allow PEBS on Intel Core (requires PERFCTR0)
- all : remove unused carta_random32.h
The perfmon2 kernel changes the release to v2.3 and includes the following changes:
- updated to 2.6.19-rc6-git10
- sampling format identified with clear text string, not UUID anymore
- pfm_create_context() returns file descriptor
- sampling format name passed as argument
- struct pfarg_ctx_t simplified
- using random32() instead of carta_random32() (now obsolete)
- in struct pfarg_pmd, reg_random_seed is obsolete
- added support for Intel Core processors (Core 2 Duo)
- unified PEBS support between P4 and Intel Core
- fix bugs with munmap() of sampling buffer
- changed sysfs to handle new naming for sampling formats
- change rsvd_mask logic in PMU description modules
- make idle notifier registration lazy (only when needed)
- rewritten NMI integration using die_notifier()
- NMI watchdog support and auto-detection for AMD K8, Intel Core
- fix potential issues with locking/irq masking using LockDep checker
- cleaned MIPS PMU description table setup
- various MIPS bugs fixes (Phil Mucci, Manoj Ekbote)
- various PowerPC updates include PPC32 description table (Phil Mucci)
Due to problems with the git10 tree, the MIPS kernel does not compile regardless of
perfmon2. A new patch will be generated once this problem is removed.
I have also released a new libpfm, libpfm-3.2-061127, with lots of
changes. Here are some of the most important ones:
- added support for Intel Core (Core 2 Duo)
- updated all example, header files to perfmon v2.3
- updated man pages
- Intel Core PEBS example
- fixed rtop on 32-bit platforms
- various MIPS updates (Phil Mucci)
- big-endian support for MIPS
- various Makefile improvements
Also a new version of pfmon, pfmon-3.2-061127, with a lot
of changes as well:
- updated to perfmon v2.3 interface
- support for Intel Core processors (Core 2 Duo)
- support for Intel Core PEBS as a sampling format
- complete rewrite of system-wide core loops to avoid race conditions with signals
- added --print-interval to print intermediate deltas in system-wide mode
- better handling of perfmon errors
- corrected Montecito checks for L2D_CANCEL events
- factorized 'detailed' sampling format for all arch
- inst-hist default formats for all arch
- corrected sampling buffer auto-sizing based on resource limit constraints
- updated online documentation
This version of pfmon requires libpfm-3.2-061127.
You can get a more detailed log of changes the the CVS tree.
You can grab the new packages at our web site:
http://perfmon2.sf.net
Enjoy,
PS: I will post a kernel patch to LKML and a diffstat on the perfmon mailing list.
--
-Stephane
Stephane Eranian wrote:
> Hello,
>
> I have released another version of the perfmon new code base package.
> This version of the kernel patch is relative to 2.6.19-rc6-git10.
>
> This is a major update because it completes the changes requested
> during the code review on LKML. As a consequence, the kernel interface
> is NOT backward compatible with previous v2.2 versions. This release has
> the v2.3 version number. Backward compatibility with v2.0 is maintained
> on Itanium processors.
Hi Stephane,
I have built the kernel with the new patches and tried things out on x86_64 an
x88_64 machine with Fedora Core 4. I attempted use the new libpfm and pfmon to
update the source RPMs and I noticed that there were some return values from
read() and write() being ignored. When pfmon is being built as an RPM ignoring
the read and write return values cause the rpmbuild to fail. Attached is a
simple patch that stuffs the return values into dummy variable to avoid the
warnings. This patch allows libpfm and pfmon the source RPMs to compile on FC4
and Fedora Core rawhide.
-Will