andikleen / pmu-tools

Intel PMU profiling tools
GNU General Public License v2.0
2.02k stars 336 forks source link

Nonsensical toplev.py values #369

Open samhsia opened 3 years ago

samhsia commented 3 years ago

What should I do to handle level 1 toplev.py breakdowns that do not make any sense?

More specifically, this is the script that I'm using: python3 /dir/pmu-tools/toplev.py -D 100 -l1 --core C0 taskset -c 0 --no-desc -v --csv , my_script

The breakdown that I get is:

CPUs,Area,Value,Unit,Description,Sample,Stddev,Multiplex,Bottleneck,Idle
C0,Frontend_Bound,53.9,% Slots,,frontend_retired.latency_ge_4:pp,0.0,100.0,,Y
C0,Bad_Speculation,13273.4,% Slots,,,0.0,100.0,<==,Y
C0,Backend_Bound,-13254.6,% Slots <,,,0.0,100.0,,Y
C0,Retiring,27.3,% Slots <,,uops_retired.retire_slots,0.0,100.0,,Y
C0-T0,MUX,100.0,%,,,0.0,100.0,,
C0-T1,MUX,100.0,%,,,0.0,100.0,,
Run toplev --describe Bad_Speculation^ to get more information on bottleneck
# 4.11-full-perf on Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz [skl]
Add --nodes '!+Bad_Speculation*/2,+MUX' for breakdown.

I'm very confused about how to get interpretable bad speculation and backend bound numbers when I've already made my script repeatable to the point that it takes 125 seconds to run.

andikleen commented 3 years ago

On Thu, Mar 04, 2021 at 10:19:46AM -0800, Samuel Hsia wrote:

What should I do to handle level 1 toplev.py breakdowns that do not make any sense?

More specifically, this is the script that I'm using: python3 /group/vlsiarch/schsia/pmu-tools/toplev.py -D 100 -l1 --core C0 taskset -c 0 --no-desc -v --csv , my_script

Something is wrong with the collection.

Can you add --perf-output p and post p?

Also does perf stat --topdown work?

-Andi

samhsia commented 3 years ago

Thanks for your prompt response!

What do you mean by

post p

?

  1. When I add --perf-output to my script, I see:
CPU0;158451128317;;cpu/event=0x3c,umask=0x0,any=1/u;37922876087;100.00
CPU4;158451125921;;cpu/event=0x3c,umask=0x0,any=1/u;37922873056;100.00
CPU0;342963488726;;cpu/event=0x9c,umask=0x1/u;37922880292;100.00
CPU4;2235665;;cpu/event=0x9c,umask=0x1/u;37922877922;100.00
CPU0;174869464030;;cpu/event=0xc2,umask=0x2/u;37922877924;100.00
CPU4;679767;;cpu/event=0xc2,umask=0x2/u;37922875229;100.00
CPU0;5397541536;;cpu/event=0xd,umask=0x1,any=1/u;37922874988;100.00
CPU4;5397541525;;cpu/event=0xd,umask=0x1,any=1/u;37922871965;100.00
CPU0;140737488355327;;cpu/event=0xe,umask=0x1/u;37922872704;100.00
CPU4;829076;;cpu/event=0xe,umask=0x1/u;37922869384;100.00
  1. When I run perf stat --topdown I see
    Error: unknown option `topdown'
    Usage: perf stat [<options>] [<command>]