Commit [021390]  Maximize  Restore  History

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>

Maynard Johnson Maynard Johnson 2012-08-06

changed doc/operf.1.in
changed doc/oprofile.xml
changed libperf_events/operf_counter.cpp
changed libperf_events/operf_counter.h
changed libperf_events/operf_event.h
changed libperf_events/operf_stats.cpp
changed libperf_events/operf_utils.cpp
changed libperf_events/operf_utils.h
changed pe_profiling/operf.cpp
doc/operf.1.in Diff Switch to side-by-side view
Loading...
doc/oprofile.xml Diff Switch to side-by-side view
Loading...
libperf_events/operf_counter.cpp Diff Switch to side-by-side view
Loading...
libperf_events/operf_counter.h Diff Switch to side-by-side view
Loading...
libperf_events/operf_event.h Diff Switch to side-by-side view
Loading...
libperf_events/operf_stats.cpp Diff Switch to side-by-side view
Loading...
libperf_events/operf_utils.cpp Diff Switch to side-by-side view
Loading...
libperf_events/operf_utils.h Diff Switch to side-by-side view
Loading...
pe_profiling/operf.cpp Diff Switch to side-by-side view
Loading...

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

JavaScript is required for this form.





No, thanks