Skip to main content

Pmcount for Linux on Power Architecture

A hardware performance counter tool for the IBM POWER4, POWER4+, POWER5, POWER5+, POWER6, and PowerPC 970 processors.

Date Posted: August 24, 2006

alphaworks tab navigation


 

Update: September 10, 2009
This update adds support for POWER6 architecture.

 

What is Pmcount for Linux on Power Architecture?

Pmcount for Linux® on Power Architecture™ is a Linux tool for configuring, collecting, and printing the performance counter events on the PowerPC® 970, POWER4™, POWER4+™, POWER5™, POWER5+™, and POWER6+™ processors. This Linux version of "pmcount" is functionally equivalent (command line arguments, output format, etc.) to the AIX® "pmcount" tool. The AIX user guide was used as the design specification for developing the Linux version of the tool.

The tool consists of the user tool (pmcount), the processor-specific event and group files (for example, power4.evs and power4.gps), two kernel modules, a data collection script, and documentation. The kernel modules (Kprobe modules) are compiled and loaded in order to provide additional functionality in the kernel. This functionality is necessary for providing 64-bit virtual counters and for supporting collection of data for a particular workload. These modules are compiled for the kernel that is currently running on the machine. (Please note that the operating system version must be at least 2.6.14 in order to use the kernel modules.)

Pmcount for Linux on Power Architecture is necessary for helping to identify and correct performance issues for the Linux on Power systems. It has been used by the benchmarking team to improve the industry-standard benchmark runs such as TPC-C, customer benchmarks, etc. The tool is necessary for diving deep into performance issues and identifying or eliminating possible problems, such as poor data placement (too many L2 caches or too many DTLB misses), a low CPI, excessive remote memory accesses, etc.

How does it work?

In order to use Pmcount for Linux on Power Architecture, the user specifies the group of events to be measured. The tool uses the event and group files provided by the hardware team to determine the control register settings for that group of events. Note these settings are processor-specific. The user can specify collection of data for a period of time or a workload that is to be run while collecting the performance counter data. The user can specify collection of data in user mode, kernel mode, or hypervisor mode. The user can also specify whether the counters are to be disabled in global mode when the operating system is in the idle loop. Once the data is collected, it is printed by the tool in the same format as the AIX tool. The Linux version of the tool can also attach itself to a currently-running process and collect data for a specified period of time. This functionality is not currently available in AIX. This feature is valuable for collecting data on database processes such as the log writer.

Following are examples of how to use the tool:

About the technology author(s)

Carl Love, Ph.D., is a system engineer in the IBM Systems and Technology group.

Trademarks




Related technologies