Classic compiler build, running approximately an hour and providing a good stress test. Compile workloads seem to have some of the highest frontend metrics (green) and many small quick processes. Branch prediction can also be higher (yellow) and there is some memory (blue).

AMD metrics show a lot of branches and sometimes higher miss rate. The “on_cpu” amount also reflects waiting for disk and parts where the compilation is not as multi-threaded.
elapsed 3427.385
on_cpu 0.624 # 9.99 / 16 cores
utime 32190.169
stime 2045.712
nvcsw 1985244 # 48.41%
nivcsw 2115761 # 51.59%
inblock 516424 # 150.68/sec
onblock 98507112 # 28741.19/sec
cpu-clock 34213116381288 # 34213.116 seconds
task-clock 34214907130799 # 34214.907 seconds
page faults 513204835 # 14999.451/sec
context switches 3464477 # 101.256/sec
cpu migrations 239642 # 7.004/sec
major page faults 17576 # 0.514/sec
minor page faults 513187259 # 14998.938/sec
alignment faults 0 # 0.000/sec
emulation faults 0 # 0.000/sec
branches 30568358827057 # 192.709 branches per 1000 inst
branch misses 701201423712 # 2.29% branch miss
conditional 17638912593304 # 111.199 conditional branches per 1000 inst
indirect 487258108842 # 3.072 indirect branches per 1000 inst
cpu-cycles 138568869943175 # 2.53 GHz
instructions 156207628466024 # 1.13 IPC
slots 283067952990174 #
retiring 55133090858931 # 19.5% (23.1%)
-- ucode 32000982449 # 0.0%
-- fastpath 55101089876482 # 19.5%
frontend 115172179636077 # 40.7% (48.2%)
-- latency 86764652204442 # 30.7%
-- bandwidth 28407527431635 # 10.0%
backend 57849381391632 # 20.4% (24.2%)
-- cpu 6077068920462 # 2.1%
-- memory 51772312471170 # 18.3%
speculation 10655334197850 # 3.8% ( 4.5%)
-- branch mispredict 8804136631900 # 3.1%
-- pipeline restart 1851197565950 # 0.7%
smt-contention 44257340647327 # 15.6% ( 0.0%)
cpu-cycles 138652693363066 # 2.52 GHz
instructions 156238086746318 # 1.13 IPC
instructions 52819253385890 # 40.743 l2 access per 1000 inst
l2 hit from l1 1931591401779 # 16.62% l2 miss
l2 miss from l1 244520309408 #
l2 hit from l2 pf 107325558661 #
l3 hit from l2 pf 59042583282 #
l3 miss from l2 pf 54059169410 #
instructions 52796829647902 # 7.270 float per 1000 inst
float 512 179380 # 0.000 AVX-512 per 1000 inst
float 256 21703524 # 0.000 AVX-256 per 1000 inst
float 128 383802719307 # 7.269 AVX-128 per 1000 inst
float MMX 0 # 0.000 MMX per 1000 inst
float scalar 0 # 0.000 scalar per 1000 inst
Intel metrics including 10% of the time attributed to branch misprediction.
elapsed 3634.438
on_cpu 0.676 # 10.82 / 16 cores
utime 37835.081
stime 1472.287
nvcsw 1922325 # 49.28%
nivcsw 1978190 # 50.72%
inblock 614832 # 169.17/sec
onblock 98598064 # 27128.83/sec
cpu-clock 39269125917324 # 39269.126 seconds
task-clock 39271771617236 # 39271.772 seconds
page faults 512960631 # 13061.815/sec
context switches 3281468 # 83.558/sec
cpu migrations 389949 # 9.929/sec
major page faults 12097 # 0.308/sec
minor page faults 512948534 # 13061.507/sec
alignment faults 0 # 0.000/sec
emulation faults 0 # 0.000/sec
branches 30254370267193 # 191.071 branches per 1000 inst
branch misses 455639475516 # 1.51% branch miss
conditional 30254391920953 # 191.071 conditional branches per 1000 inst
indirect 8710920825064 # 55.014 indirect branches per 1000 inst
slots 220536156479210 #
retiring 90522893095036 # 41.0% (41.0%)
-- ucode 7820401372828 # 3.5%
-- fastpath 82702491722208 # 37.5%
frontend 81438050633294 # 36.9% (36.9%)
-- latency 38745936530923 # 17.6%
-- bandwidth 42692114102371 # 19.4%
backend 25344106231891 # 11.5% (11.5%)
-- cpu 11855996482089 # 5.4%
-- memory 13488109749802 # 6.1%
speculation 23721466183852 # 10.8% (10.8%)
-- branch mispredict 22607620934670 # 10.3%
-- pipeline restart 1113845249182 # 0.5%
smt-contention 0 # 0.0% ( 0.0%)
cpu-cycles 84130561222309 # 1.46 GHz
instructions 121342432799798 # 1.44 IPC
l2 access 3608782396433 # 39.796 l2 access per 1000 inst
l2 miss 782438848933 # 21.68% l2 miss
Over 600,000 processes provides a good stress test for the cpu tracing. The 500+ processes marked as running are ones where we somehow received the fork event but missed an exit event to close out the process. The largest fraction of overall time is spent in the compiler processes.
676238 processes
14002 cc1plus 27709.21 796.22
27073 cc1 2320.38 152.84
38430 as 441.70 51.52
9 genattrtab 245.76 0.94
8420 ld 184.42 32.95
9 genautomata 136.13 3.53
227581 bash 37.29 62.66
9 genoutput 34.05 0.48
27 genpreds 22.00 0.35
9 genrecog 19.84 0.58
144 msgmerge 17.94 0.16
9 genextract 11.62 0.16
9 gencodes 11.49 0.12
908 make 11.28 4.12
9 genemit 11.23 0.27
9 genconfig 11.20 0.12
9 genopinit 10.97 0.16
9 genpeep 10.91 0.17
9 genattr 10.84 0.18
9 genflags 10.80 0.21
9 genattr-common 10.68 0.16
9 gentarget-def 10.68 0.14
1111 f951 7.18 0.70
15 pod2man 7.08 0.02
9 genconditions 6.90 0.11
468 fixincl 5.12 0.19
1122 mawk 3.41 0.02
1 xz 3.34 0.18
24 perl 2.93 0.21
18 gengtype 2.71 0.20
24 genchecksum 1.27 0.21
18 genmatch 1.13 0.12
71119 sed 0.84 0.00
38 vulkaninfo 0.76 1.06
579 ar 0.69 6.85
261 print 0.65 0.06
33 cc1obj 0.42 0.05
6 php 0.28 1.25
297 ranlib 0.27 6.04
46226 cat 0.26 2.29
13 tar 0.21 2.89
9 genenums 0.12 0.00
9 genconstants 0.11 0.00
57476 rm 0.09 5.62
4 vulkani:disk$0 0.08 0.11
9 genmddeps 0.08 0.01
2 llvmpipe-0 0.04 0.06
2 llvmpipe-1 0.04 0.06
2 llvmpipe-10 0.04 0.06
2 llvmpipe-11 0.04 0.06
2 llvmpipe-12 0.04 0.06
2 llvmpipe-13 0.04 0.06
2 llvmpipe-14 0.04 0.06
2 llvmpipe-15 0.04 0.06
2 llvmpipe-2 0.04 0.06
2 llvmpipe-3 0.04 0.06
2 llvmpipe-4 0.04 0.06
2 llvmpipe-5 0.04 0.06
2 llvmpipe-6 0.04 0.06
2 llvmpipe-7 0.04 0.06
2 llvmpipe-8 0.04 0.06
2 llvmpipe-9 0.04 0.06
6 clang 0.04 0.02
7030 xg++ 0.00 0.23
197 find 0.00 0.20
4574 mkdir 0.00 0.09
396 nm 0.00 0.09
3216 g++ 0.00 0.06
1 lspci 0.00 0.03
28728 xgcc 0.00 0.02
39074 basename 0.00 0.00
22391 mv 0.00 0.00
12805 grep 0.00 0.00
7569 collect2 0.00 0.00
6644 rmdir 0.00 0.00
5727 cp 0.00 0.00
5502 expr 0.00 0.00
5136 dirname 0.00 0.00
4566 strip 0.00 0.00
4459 gcc 0.00 0.00
3663 ln 0.00 0.00
3199 uname 0.00 0.00
2295 cmp 0.00 0.00
1626 chmod 0.00 0.00
1372 sort 0.00 0.00
1120 gfortran 0.00 0.00
1057 tr 0.00 0.00
1023 conftest 0.00 0.00
541 hostname 0.00 0.00
420 diff 0.00 0.00
408 ls 0.00 0.00
312 arch 0.00 0.00
291 awk 0.00 0.00
248 sh 0.00 0.00
231 install 0.00 0.00
207 touch 0.00 0.00
198 objdump 0.00 0.00
165 echo 0.00 0.00
160 mktemp 0.00 0.00
140 tmpmultilib3 0.00 0.00
135 missing 0.00 0.00
93 getconf 0.00 0.00
84 file 0.00 0.00
84 true 0.00 0.00
84 uniq 0.00 0.00
82 tmpmultilib4 0.00 0.00
72 sleep 0.00 0.00
72 tmpmultilib 0.00 0.00
54 msgfmt 0.00 0.00
48 configure 0.00 0.00
47 cc 0.00 0.00
44 move-if-change 0.00 0.00
36 genhooks 0.00 0.00
36 genmodes 0.00 0.00
36 xgettext 0.00 0.00
20 which 0.00 0.00
18 bison 0.00 0.00
18 gencfn-macros 0.00 0.00
18 ld.gold 0.00 0.00
15 compare-debug 0.00 0.00
15 tmpmultilib2 0.00 0.00
10 date 0.00 0.00
9 c++filt 0.00 0.00
9 gencheck 0.00 0.00
9 gencondmd 0.00 0.00
9 gengenrtl 0.00 0.00
9 genversion 0.00 0.00
9 git 0.00 0.00
9 mkheader.sh 0.00 0.00
9 objcopy 0.00 0.00
9 python3 0.00 0.00
9 readelf 0.00 0.00
9 stty 0.00 0.00
9 tail 0.00 0.00
8 stat 0.00 0.00
8 systemd-detect- 0.00 0.00
7 gsettings 0.00 0.00
6 llvm-link 0.00 0.00
6 pwd 0.00 0.00
5 glxinfo 0.00 0.00
5 gmain 0.00 0.00
5 phoronix-test-s 0.00 0.00
4 dconf worker 0.00 0.00
3 build-gcc 3 xargs 0.00 0.00
2 clinfo 0.00 0.00
2 lscpu 0.00 0.00
2 setterm 0.00 0.00
1 dmesg 0.00 0.00
1 dmidecode 0.00 0.00
1 ifconfig 0.00 0.00
1 ip 0.00 0.00
1 lsmod 0.00 0.00
1 ps 0.00 0.00
1 qdbus 0.00 0.00
1 readlink 0.00 0.00
1 realpath 0.00 0.00
1 systemctl 0.00 0.00
1 template.sh 0.00 0.00
1 wc 0.00 0.00
573 processes running
640 maximum processes
