Donate Share

OProfile

File Release Notes and Changelog

Release Name: 0.9.4

Notes:
OProfile is a powerful system-wide profiler for Linux. Read
more at http://oprofile.sf.net

OProfile 0.9.4 has been released. OProfile is still in alpha,
but has been proven stable for many users.

New features
------------

OProfile now supports profiling Java applications.  See Section 1.4
"Installation" in the user manual for instructions on how to build
OProfile so that it includes this support.

OProfile also includes a framework for adding support for profiling
other just-in-time (JIT) compiled languages.  A new manual titled
"OProfile JIT agent developer guide" is provided to aid developers.

Added Xen support for IA64

Added AVR32 support

Add '--root' option to opreport which act as a replacement (a prefix)
for the / fs

Performance improvement for 'opreport --xml --details'.

OProfile tends to output obscure error message. Some of these have been fixed.

Changes required to build with gcc 4.3

Bug fixes
---------

Fix sym_offset calculation bug, seen on 64 bit systems with code mapped
with an address >4G

Fix opcontrol's calculation of kernel address range to include code found
in sections other than just .text

Fix opcontrol's short forms of --list-events (-l) and --dump (-d) so they
work for non-root users

Fix MMCR values and counter-to-event mappings on a few 970MP groups

Turn off profiling in hypervisor on 970MP to prevent lost interrupts

Update family10 events and unit_masks files to match the BIOS and Kernel
Developer's Guide (current, as of May 20, 2008)

Since --xml is not compatible with the --sort option, we warned against
the use of --sort, but didn't reset the sort options to default.  This is
now fixed.

Fix silent failure of oprof_start for when a counter is missing (e.g, NMI
watchdog is up)

Change opcontrol to use "-SIG" instead of "-s SIG" since Busybox's
implementation of "kill" doesn't understand the "-s SIG" option

Fix 'opannotate -s' to work with inlined code

Update POWER6 event files (add new event groupings; make some fixes to others)

Fix "Dangling ESCAPE CODE" error that can occur on Cell BE SPE profiling

Fix opreport for Cell BE SPE profiles to attribute samples to dynamically
generated call stubs executed from SPE stack (for example, I/O calls to
the libc library)

Fix loop in 'opcontrol --dump' code when using --session-dir on a network
drive (clock issues)

Fix problem with 'oparchive --list-files' that can occur if file doesn't exist

Fix user/kernel domain profiling switches for ppc64 architectures

Fix the bfd_get_synthetic_symtab check in m4 macro to work correctly with
'--with-binutils' configure option

Fix ARM big-endian syscall

bug #1820202, differential profile broken in 0.9.3, is fixed

bug #1717298, mips events have incorrect id numbers, is fixed, all event
number > 9 was incorrectly setup

bug #1564920, opcontrol does not check if objdump exists is fixed, we error
out and pinpoint the right error now

bug #1819350, oparchive doesn't work with kernel module, is fixed (need another related fix, if you read that I forget about that, ping me please -- phe)

bug #1828566, --xml and -t and callgraph now output symboldata for all
caller/callees

bug #1930788, opreport error: basic_string::erase

Allow performance counter allocation to work even when some performance 
counters are already reserved (e.g. by nmi watchdog)


Known problems
--------------

When using callgraph profiling, it's possible that invalid sample
files are created (bug #1685267).

Many Alpha ev67 events do not work (bug #931875).

A few Pentium IV events are not supported (bug #841099).

For 2.2 kernels, the module must be compiled as the same user
that owns the kernel source tree.

With an AMD64 kernel, OProfile must be built in 64 bit mode due to lack
of kernel support.

opreport -c gives strange output for binaries without symbols.

Callgraph output for the new JIT support is incorrect.  See Chapter 4,
section 2.3.2 of OProfile user manual.

When using the JVMPI agent to profile Java code, the following error
is printed by the agent if the JVM moves objects in the heap:
   "Error: Cannot find class for compiled method"
Workaround: If your JVM is 1.5, then use JVMTI agent instead of JVMPI agent.
            If your JVM is pre-1.5, see oprofile-list for a patch.


Changes: