Commit [b2c445]  Maximize  Restore  History

operf, add throttling and multiplexing stats

This patch checks to see if the event was throttled or multiplexed. The
events are recorded by creating a file with the name of the event in the
stats sub directory throttled or multiplexed respectively.

Functions are added to the post processing to print messages if multiplexing
and/or throttling occurred during the data collection.

The patch has been tested on an Intel Core(TM)2 Duo CPU T9400 2.53GHz
The following are excerpts from the script used to do the testing.

The events tested are as follows:
event1=INST_RETIRED_ANY_P
event2=CPU_CLK_UNHALTED
event3=INST_RETIRED_ANY_P
event4=L2_RQSTS
event5=LLC_REFS
event6=CPU_CLK_UNHALTED
event7=CPU_CLK_UNHALTED

Each of the tests below were run with each of the following frequencies
to test with and without event throttling.

freq=6000

freq=600000

SYSTEM WIDE TESTS
$path/operf --events $event1:$freq:0:1:1 --system-wide

$path/operf -l --events $event1:$freq:0:1:1 --system-wide

$path/operf --events $event1:$freq:0:1:1 --events $event2:$freq:0:1:1 --events
$event4:$freq:0:1:1 --events $event5:$freq:0:1:1 --events $event6:$freq:0:1:1
--events $event7:$freq:0:1:1 --system-wide

$path/operf -l --events $event1:$freq:0:1:1 --events $event2:$freq:0:1:1 --eve
nts $event4:$freq:0:1:1 --events $event5:$freq:0:1:1 --events $event6:$freq:0:
1:1 --events $event7:$freq:0:1:1 --system-wide

WORKLOAD TESTS
$path/operf --events $event1:$freq:0:1:1 dd bs=16 if=/dev/urandom of=/dev/nu
ll count=500000

$path/operf -l --events $event1:$freq:0:1:1 dd bs=16 if=/dev/urandom of=/dev
/null count=500000

$path/operf --events $event1:$freq:0:1:1 --events $event2:$freq:0:1:1 --events
$event4:$freq:0:1:1 --events $event5:$freq:0:1:1 --events $event6:$freq:0:1:1
--events $event7:$freq:0:1:1 dd bs=16 if=/dev/urandom of=/dev/null count=5000
00

$path/operf -l --events $event1:$freq:0:1:1 --events $event2:$freq:0:1:1 --ev
ents $event4:$freq:0:1:1 --events $event5:$freq:0:1:1 --events $event6:$freq:0
:1:1 --events $event7:$freq:0:1:1 dd bs=16 if=/dev/urandom of=/dev/null count
=500000

The tests described above were also performed on an IBM POWER7
3000.000000MHz revision : 2.1 with the the following events.

event1=PM_INST_CMPL_GRP1
event2=PM_INST_DISP_GRP1
event3=PM_CYC_GRP1
event4=PM_THRD_CONC_RUN_INST_GRP225
event5=PM_DATA_FROM_L2_GRP67
event6=PM_BR_TAKEN_GRP4
event7=PM_DATA_FROM_L3_GRP68

And the two sampling frequencies:

freq=10000

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

Carl Love Carl Love 2013-01-23

Maynard Johnson Maynard Johnson 2013-01-23

changed libperf_events/operf_counter.cpp
changed libperf_events/operf_event.h
changed libperf_events/operf_stats.cpp
changed libperf_events/operf_stats.h
changed libperf_events/operf_utils.cpp
changed libpp/profile_spec.cpp
changed pe_profiling/operf.cpp
libperf_events/operf_counter.cpp 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_stats.h Diff Switch to side-by-side view
Loading...
libperf_events/operf_utils.cpp Diff Switch to side-by-side view
Loading...
libpp/profile_spec.cpp 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:





No, thanks