5. System requirements

Linux kernel

To use OProfile's JIT support, a kernel version 2.6.13 or later is required. In earlier kernel versions, the anonymous memory regions are not reported to OProfile and results in profiling reports without any samples in these regions.

Profiling the Cell Broadband Engine PowerPC Processing Element (PPE) requires a kernel version of 2.6.18 or more recent. Profiling the Cell Broadband Engine Synergistic Processing Element (SPE) requires a kernel version of 2.6.22 or more recent. Additionally, full support of SPE profiling requires a BFD library from binutils code dated January 2007 or later. To ensure the proper BFD support exists, run the configure utility with --with-target=cell-be. Profiling the Cell Broadband Engine using SPU events requires a kernel version of 2.6.29-rc1 or more recent.


Attempting to profile SPEs with kernel versions older than 2.6.22 may cause the system to crash.

Instruction-Based Sampling (IBS) profile on AMD family10h processors requires kernel version 2.6.28-rc2 or later.

Supported architecture

For Intel IA32, processors as old as P6 generation or Pentium 4 core are supported. The AMD Athlon, Opteron, Phenom, and Turion CPUs are also supported. Older IA32 CPU types can be used with the timer mode of OProfile; please see later in this manual for details. OProfile also supports most processor types of the following architectures: Alpha, MIPS, ARM, x86-64, sparc64, PowerPC, AVR32, and, in timer mode, PA-RISC and s390.

Uniprocessor or SMP

SMP machines are fully supported.

Required libraries

These libraries are required : popt, bfd, liberty (debian users: libiberty is provided in binutils-dev package), dl, plus the standard C++ libraries.

Required kernel headers

In order to build the perf_events-enabled operf program, you need to either install the kernel-headers package for your system or use the --with-kernel configure option.

Required user account

For secure processing of sample data from JIT virtual machines (e.g., Java), the special user account "oprofile" must exist on the system. The 'configure' and 'make install' operations will print warning messages if this account is not found. If you intend to profile JITed code, you must create a group account named 'oprofile' and then create the 'oprofile' user account, setting the default group to 'oprofile'. A runtime error message is printed to the oprofile log when processing JIT samples if this special user account cannot be found.

OProfile GUI

The use of the GUI to start the profiler requires the Qt library. Either Qt 3 or Qt 4 should work.


Probably not too strenuous a requirement, but older A.OUT binaries/libraries are not supported.

K&R coding style

OK, so it's not really a requirement, but I wish it was...