oprofile Log

Commit Date  
[a7e408] by Robert Richter Robert Richter , pushed by Maynard Johnson Maynard Johnson

oprofile, doc: Fix missing xrefs

This patch fixes the following errors:

$ XML_CATALOG_FILES=xsl/catalog.xml xsltproc --nonet -o oprofile.html
--stringparam version 0.9.9git .../oprofile/doc/xsl/xhtml.xsl
ERROR: xref linking to controlling has no generated link text.
Error: no ID for constraint linkend: controlling.
ERROR: xref linking to controlling has no generated link text.
Error: no ID for constraint linkend: controlling.

Signed-off-by: Robert Richter <rric@kernel.org>

2013-07-29 15:15:50 Tree
[175ed4] by Maynard Johnson Maynard Johnson

Post-review fixups for new ocount feature

This patch fixes the issues raised during the review of the
'ocount' tool. Some of the issues were raised on the
oprofile-list, and some were raised internally by users
within my company. The issues raised internally were:
- Bug: Compile failure with recent gcc
- Request to display total time events were being counted in long output
- Bug: Counting multiple events in a run mode other than 'command [args]'
can result in incorrect output. For example:
Event counts (scaled) for the whole system:
Event Count % time enabled
CPU_CLK_UNHALTED 291,912,262 100.00
CPU_CLK_UNHALTED 27,431,626 100.00
- Bug: On ppc64 systems, event spec returned by _handle_powerpc_event_spec
may contain extra garbage after the event name.
- Request to change the --time-interval option to show counts just for
the interval, not cumulative counts

Signed-off-by: Maynard Johnson <maynardj@us.ibm.com>

2013-07-18 18:45:02 Tree
[cec825] by Maynard Johnson Maynard Johnson

Add ocount information to user manual

With the introduction of the new ocount tool, some new
sections in the OProfile user manual were needed to describe
its operation. Additionally, some minor changes were
needed elsewhere so as to include event counting (along
with profiling) where appropriate.

Signed-off-by: Maynard Johnson <maynardj@us.ibm.com>

2013-07-18 18:44:28 Tree
[a4cbf9] by Maynard Johnson Maynard Johnson

Add manpage for new ocount tool

Signed-off-by: Maynard Johnson <maynardj@us.ibm.com>

2013-07-18 18:43:01 Tree
[2046df] by William Cohen William Cohen

Add man page for oprof_start.

Signed-off-by: William Cohen <wcohen@redhat.com>

2013-07-16 15:10:08 Tree
[0f0e42] by William Cohen William Cohen

Add a short man page for op-check-perfevents.

Signed-off-by: William Cohen <wcohen@redhat.com>

2013-07-16 15:08:55 Tree
[043ea9] by William Cohen William Cohen

Document the opcontrol short form options on the man page

Signed-off-by: William Cohen <wcohen@redhat.com>

2013-07-16 15:07:33 Tree
[9371e1] by William Cohen William Cohen

Add the --merge option description to opannotate man page.

Signed-off-by: William Cohen <wcohen@redhat.com>

2013-07-16 15:06:55 Tree
[a5aaae] by William Cohen William Cohen

Document additional ophelp options on the man page

Signed-off-by: William Cohen <wcohen@redhat.com>

2013-07-16 15:05:34 Tree
[b2b9f2] by William Cohen William Cohen

Add the "--no-header" short form option, "-n", to the opreport man page

Signed-off-by: William Cohen <wcohen@redhat.com>

2013-07-16 15:04:11 Tree
[212c10] by Maynard Johnson Maynard Johnson

Make doc changes to reflect changes in behavior for named unit masks

These doc changes correspond to the previous 5 patches contributed
by Suravee, Andi, and Maynard that fixed functional issues with
named unit masks.

Signed-off-by: Maynard Johnson <maynardj@us.ibm.com>

2013-06-24 14:46:05 Tree
[40c0fa] by Maynard Johnson Maynard Johnson

Print debug message when module summary count differs from total symbols counts

A user who was profiling a Java application was generating various types of
reports with opreport. He noted an anomaly involving module sample counts for
certain binary images that were associated with the JVM (a couple shared libs
and the <PID>.jo file created by opjitconv). The 'opreport' and 'opreport --xml'
commands showed different module-level sample counts for these particular
binary images.

When the '--xml' option is passed to opreport, by default, it outputs
symbol-level sample counts, so there's no way to directly compare a
"no symbols" summary report between XML and flat text. The flat text
summary includes all samples attributed to a binary, but when a
symbols-level report is requested, we may find that some of those samples
are bogus or for some reason, cannot be resolved to a symbol (e.g., the
address lies outside the range of symbol addresses for this binary).
The XML module summary count actually sums up the individual symbols
counts, so that's why it's possible to see a differnce in XML module
summary counts and flat text module summary counts.

This patch adds the capability for opreport to detect a difference in
the module summary count and the total symbols count and to print an
INFO message when the '--verbose=debug' flag is passed. This capability
is documented in the opreport man page.

Signed-off-by: Maynard Johnson <maynardj@us.ibm.com>

2013-06-10 12:04:51 Tree
[85d9b9] by Maynard Johnson Maynard Johnson

Add support for IBM POWER8 processor

The Power ISA 2.07 was recently published at http://power.org/documentation.
The IBM POWER8 processor currently under development is an implementation
of the ISA 2.07. This patch provides the initial support for POWER8
to oprofile. NOTE: Only operf support is included with this patch. The
legacy opcontrol-based profiler and the oprofile kernel module have
not been (and may never be) updated to support this new processor.
Potentially, some future kernel versions may allow timer mode opcontrol
to work for POWER8, but at the time of this commit, the 3.10 kernel did not.

Signed-off-by: Maynard Johnson <maynardj@us.ibm.com>

2013-05-31 21:34:29 Tree
[4f683a] by Maynard Johnson Maynard Johnson

Fix spelling error and remove obsolete BUGS notation

Signed-off-by: Maynard Johnson <maynardj@us.ibm.com>

2013-05-31 13:16:14 Tree
[715616] by Maynard Johnson Maynard Johnson

Flesh out user manual doc on oparchive/opimport commands

There have been numerous questions over the years from users
who have a need to analyze their profile data offline, on
systems other than where the data was collected. Often,
these users are completely unaware of the oparchive and
opimport commands which are intended for use in such
situations. Part of the problem has been a lack of detailed
documentation about these commands. This patch adds
some detail to the user manual documentation for these commands
and also renames the oparchive section from
"6. Archiving measurements (oparchive)" to "6. Analyzing profile
data on another system (oparchive)".

This patch was motivated by questions raised in OProfile bug

Signed-off-by Maynard Johnson <maynardj@us.ibm.com>

2013-04-17 13:50:13 Tree
[12d9e9] by Maynard Johnson Maynard Johnson

Unit mask bitmasks containing non-unique values should fail

When named unit mask support was added by Andi Kleen (Intel) in the 0.9.7
timeframe, it became possible for multiple unit masks to have the same
hex value for a given event. The (only) way to disambiguate these non-unique
unit mask values is to specify them by name. It was pointed out during patch
reviews that OR'ing together such unit masks (for bitmask types of unit
masks) was problematic. Andi asserted that bitmasks containing any of the
non-unique values simly would not be supported. Unfortunately, we dropped
the ball and did not document this restriction, and neither did we put any
checks into the code to prevent users from doing this.


On i386/sandybridge, the int_misc event has the following possible unit
mask values that can be put into a bitmask:

Unit masks (default 0x40)
0x40: rat_stall_cycles Cycles Resource Allocation Table (RAT) external
stall is sent to Instruction Decode Queue (IDQ) for this thread.
0x03: recovery_cycles Number of cycles waiting to be recover after Nuke due
to all other cases except JEClear. (extra: cmask=1)
0x03: recovery_stalls_count Edge applied to recovery_cycles, thus counts
occurrences. (extra: edge cmask=1)

The event specification of int_misc:2000000:43 will be incorrectly accepted
as valid even though it is clearly ambiguous. With this patch, such unit mask
bitmask specifications will be detected, and we will exit gracefully with an
informative error message.

Signed-off-by: Maynard Johnson <maynardj@us.ibm.com>

2013-01-23 23:52:00 Tree
[360280] by Maynard Johnson Maynard Johnson

Allow ppc64 events to be specified with or without _GRP<n> suffix

All events for IBM PowerPC server processors (except CYCLES) have
a _GRP<n> suffix. This is because the legacy opcontrol profiler
can only profile events in the same group (i.e., having the same
_GRP<n> suffix). But operf has no such restriction because it
can multiplex events; thus, so we should allow the user to pass
event names without the _GRP<n> suffix.

Signed-off-by: Maynard Johnson <maynardj@us.ibm.com>

2013-01-11 19:29:57 Tree
[560d43] by Maynard Johnson Maynard Johnson

Fix incorrect statement about using '0' for default unit mask

In the section titled 'Specifying performance counter events',
it was stated that if no unit mask value is specified, a default
value of '0' will be used. This is not correct. It should state
that the default unit mask value for the given event will be used.

Signed-off-by: Maynard Johnson <maynardj@us.ibm.com>

2013-01-03 19:03:01 Tree
[771596] by Maynard Johnson Maynard Johnson

Various documentation cleanups

Signed-off-by: Maynard Johnson <maynardj@us.ibm.com>

2012-08-08 18:08:11 Tree
[bd140d] by Carl Love Carl Love , pushed by Maynard Johnson Maynard Johnson

Oprofile, opreport: fix to pass string of options from opannotate to objdump

Currently when passing a quoted string of two or more options from
opannotate to objdump, the objdump command fails. The issue is when
an argument string passed to exec_command contains spaces.
This patch takes the quoted string of options to pass to objdump and
breaks the list of options up into individual arguments. The objdump_params
is then updated so that there is one argument in each element of the vector
rather than string elements that may contain spaces.

This patch also updates the man page with examples of how to pass options
to the objdump from the opreport command.

Signed-off-by: Carl Love <cel@us.ibm.com>

2012-08-06 19:26:38 Tree
[44b633] by Maynard Johnson Maynard Johnson

Cleanup verbose variable usage in operf for easier debugging

This patch removes the "perf_events" verbose option which had
been used to enable debugging for both the recording phase of
profiling (where profile data from the kernel is being read by
the operf-record process) and the conversion phase. Instead,
two new distinct verbose options are introduced: "record" and

Signed-off-by: Maynard Johnson <maynardj@us.ibm.com>

2012-08-06 00:45:54 Tree
[021390] by Maynard Johnson Maynard Johnson

Add a new option to operf to do conversion to oprofile format after profiling is done

The profile data read from the perf_events kernel has to be converted to OProfile
format for the post-processing tools (e.g., opreport). By default, this conversion
is done on-the-fly during profling using a pipe. This method involves starting an
additional operf process that reads the data fed into the pipe by the operf-record
process. This additional process interprets the perf_events data and does the
conversion to OProfile format, persisting the ususal oprofile sample data files in
<session-dir>/samples/current. When operf is run in single application mode, the
extra overhead of the conversion process running during profiling time is not even
recorded, and thus is not easily noticeable. However, when doing a system-wide
profile, operf overhead can be substantial (easily over 6% on a busy system), and
the samples for operf *are* noticeable in the system-wide report.

This patch introduces the "--lazy-conversion" option which directs operf to write
the perf_events profile data to a temporary file during profiling. Then, after
profiling is done, the data in the temporary file is converted to OProfile format.

Signed-off-by: Maynard Johnson <maynardj@us.ibm.com>

2012-08-06 00:44:22 Tree
[2af280] by Maynard Johnson Maynard Johnson

Fix operf profiling of forked processes

When an application being profiled by operf does a fork, and where
that forked process does *not* do an exec after the fork, any work
performed by the forked process was not being profied. This patch
addresses that problem.

Signed-off-by: Maynard Johnson <maynardj@us.ibm.com>

2012-08-06 00:42:50 Tree
[b12f64] by Maynard Johnson Maynard Johnson

Change pp tools to abort if <cur_dir>/oprofile_data exists, but no samples found

In commit 01c7ce945cfe835b908c5f4f8c1125e65302b000 on July 3, 2012,
a change was made to the post-processing tools to look first in
<cur_dir>/oprofile_data; then, if no samples are found there,
the tool should fall back to the "standard" /var/lib/oprofile
session-dir. I've come the conclusion that this is not proper
behavior. For example, a user may run operf using some event that
never occurs during the profiling run, and, thus, no samples would
be stored in <cur_dir>/oprofile_data. But if that user then ran
opreport and there happened to be some old profile data in
/var/lib/oprofile, that old profile data would be displayed in
the report.

This new patch changes the behavior as follows:
The post-processing analysis tools will search for samples in
<current_dir>/oprofile_data first. If that directory exists
but has no samples, then the usual "No sample file found"
message is displayed. On the other hand, if that directory
does not exist, the post-processing tools use the standard
session-dir of /var/lib/oprofile. Also, the message that
indicates the session-dir being used will be displayed
whether or not samples are found so that users can see
clearly where the pp tool was looking for samples.

This patch also makes a small change in the "No sample file found"
message relating to the use of 'opcontrol --dump', which is only
appropriate when using legacy profiling versus operf profiling.

Signed-off-by: Maynard Johnson <maynardj@us.ibm.com>

2012-07-31 17:05:56 Tree
[d3c656] by Maynard Johnson Maynard Johnson

Fix operf to read unit mask in hex and document unit mask spec requirementes

Signed-off-by: Maynard Johnson <maynardj@us.ibm.com>

2012-07-26 16:02:39 Tree
Older >