Skip to content

Commit acc456e

Browse files
authored
expanded TMA, updated html, similarity analysis, older kernel uncore detection (#32)
1 parent 6b8d9b5 commit acc456e

18 files changed

+1686
-1298
lines changed

Makefile

+1
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ build-public/postprocess:
4646
--add-data "./events/metric_bdx.json:." \
4747
--add-data "./events/metric_icx.json:." \
4848
--add-data "./events/metric_spr.json:." \
49+
--add-data "./src/base.html:." \
4950
--runtime-tmpdir . \
5051
--exclude-module readline
5152
cp $(TMPDIR)/dist/perf-postprocess build/

README.md

+13-6
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# PerfSpect · [![Build](https://github.com/intel/PerfSpect/actions/workflows/build.yml/badge.svg)](https://github.com/intel/PerfSpect/actions/workflows/build.yml)[![License](https://img.shields.io/badge/License-BSD--3-blue)](https://github.com/intel/PerfSpect/blob/master/LICENSE)
22

3-
[Quick Start](#quick-start-requires-perf-installed) | [Requirements](#requirements) | [Build from source](#build-from-source) | [Caveats](#caveats) | [How to contribute](#how-to-contribute)
3+
[Quick Start](#quick-start-requires-perf-installed) | [Output](#output) | [Requirements](#requirements) | [Build from source](#build-from-source) | [Caveats](#caveats) | [How to contribute](#how-to-contribute)
44

55
PerfSpect is a system performance characterization tool built on top of linux perf. It contains two parts
66

@@ -30,13 +30,22 @@ sudo ./perf-collect --timeout 10
3030
./perf-postprocess
3131
```
3232

33+
## Output
34+
35+
perf-collect outputs:
36+
1. `perfstat.csv`: raw event counts with system metadata
37+
38+
perf-postprocess outputs:
39+
1. `metric_out.sys.average.csv`: average metrics
40+
2. `metric_out.sys.csv`: metric values at every interval
41+
3. `metric_out.html`: html view of a few select metrics
42+
43+
![basic_stats](https://raw.githubusercontent.com/wiki/intel/PerfSpect/newhtml.gif)
44+
3345
## Deploy in Kubernetes
3446

3547
Modify the template [deamonset.yml](docs/daemonset.yml) to deploy in kubernetes
3648

37-
![basic_stats](https://raw.githubusercontent.com/wiki/intel/PerfSpect/basic_stats.JPG)
38-
![perfspect-demo1](https://raw.githubusercontent.com/wiki/intel/PerfSpect/demo.gif)
39-
4049
## Requirements
4150

4251
### Packages:
@@ -75,8 +84,6 @@ make
7584
## Caveats
7685

7786
1. The tool can collect only the counters supported by underlying linux perf version.
78-
2. If you run into locale issues - `UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 4519: ordinal not in range(128)`, more than likely the locales needs to be set appropriately. You could also try running post-process step with `LC_ALL=C.UTF-8 LANG=C.UTF-8 ./perf-postprocess -r result.csv`
79-
3. The html report creation is not yet supported for cid collection.
8087

8188
## How to contribute
8289

_version.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.2.9
1+
1.2.10

events/clx_skx.txt

+24-25
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,25 @@ cstate_core/c6-residency/;
3535
cstate_pkg/c6-residency/;
3636

3737
cpu/event=0xb0,umask=0x10,period=100003,name='OFFCORE_REQUESTS.L3_MISS_DEMAND_DATA_RD'/,
38-
cpu/event=0xa8,umask=0x01,period=2000003,name='LSD.UOPS'/,
3938
cpu-cycles,
4039
ref-cycles,
4140
instructions;
4241

42+
cpu/event=0xd1,umask=0x40,period=100007,name='MEM_LOAD_RETIRED.FB_HIT'/,
43+
cpu/event=0xd1,umask=0x08,period=100003,name='MEM_LOAD_RETIRED.L1_MISS'/,
44+
cpu/event=0x48,umask=0x02,cmask=0x01,period=2000003,name='L1D_PEND_MISS.FB_FULL:c1'/,
45+
cpu/event=0xa3,umask=0x04,cmask=0x04,period=2000003,name='CYCLE_ACTIVITY.STALLS_TOTAL'/,
46+
cpu-cycles,
47+
ref-cycles,
48+
instructions;
49+
50+
cpu/event=0xa3,umask=0x10,cmask=0x16,period=2000003,name='CYCLE_ACTIVITY.CYCLES_MEM_ANY'/,
51+
cpu/event=0xa3,umask=0x08,cmask=0x08,period=2000003,name='CYCLE_ACTIVITY.CYCLES_L1D_MISS'/,
52+
cpu-cycles,
53+
ref-cycles,
54+
instructions;
55+
56+
4357
#avx related power levels
4458
cpu/event=0x28,umask=0x07,period=200003,name='CORE_POWER.LVL0_TURBO_LICENSE'/,
4559
cpu/event=0x28,umask=0x18,period=200003,name='CORE_POWER.LVL1_TURBO_LICENSE'/,
@@ -48,9 +62,10 @@ cpu/event=0x0e,umask=0x01,period=2000003,name='UOPS_ISSUED.ANY'/;
4862

4963
cpu/event=0x3c,umask=0x0,period=2000003,name='CPU_CLK_UNHALTED.THREAD_ANY'/,
5064
cpu/event=0x9c,umask=0x01,period=2000003,name='IDQ_UOPS_NOT_DELIVERED.CORE'/,
51-
cpu/event=0xc2,umask=0x02,period=2000003,name='UOPS_RETIRED.RETIRE_SLOTS'/,
65+
cpu/event=0xc2,umask=0x02,period=2000003,name='UOPS_RETIRED.RETIRE_SLOTS'/;
5266
#INT_MISC.RECOVERY_CYCLES_ANY
53-
cpu/event=0x0d,umask=0x01,period=2000003,name='INT_MISC.RECOVERY_CYCLES_ANY'/;
67+
cpu/event=0x0d,umask=0x01,period=2000003,name='INT_MISC.RECOVERY_CYCLES_ANY'/,
68+
cpu/event=0x0d,umask=0x01,period=2000003,name='INT_MISC.RECOVERY_CYCLES'/;
5469

5570
cpu/event=0x79,umask=0x30,period=2000003,name='IDQ.MS_UOPS'/,
5671
cpu/event=0x60,umask=0x10,period=2000003,name='OFFCORE_REQUESTS_OUTSTANDING.L3_MISS_DEMAND_DATA_RD'/,
@@ -67,7 +82,7 @@ cpu-cycles;
6782

6883
cpu/event=0xa3,umask=0x14,cmask=0x14,period=2000003,name='CYCLE_ACTIVITY.STALLS_MEM_ANY'/,
6984
cpu/event=0xa3,umask=0x0c,cmask=0x0c,period=2000003,name='CYCLE_ACTIVITY.STALLS_L1D_MISS'/,
70-
cpu/event=0x08,umask=0x20,period=2000003,name='DTLB_LOAD_MISSES.STLB_HIT'/,
85+
cpu/event=0x08,umask=0x20,cmask=0x01,period=2000003,name='DTLB_LOAD_MISSES.STLB_HIT:c1'/,
7186
cpu/event=0x08,umask=0x10,cmask=0x01,period=100003,name='DTLB_LOAD_MISSES.WALK_ACTIVE'/,
7287
cpu-cycles;
7388

@@ -90,18 +105,17 @@ cpu/event=0x60,umask=0x10,cmask=0x01,period=2000003,name='OFFCORE_REQUESTS_OUTST
90105
cpu/event=0x49,umask=0x0e,period=100003,name='DTLB_STORE_MISSES.WALK_COMPLETED'/,
91106
cpu-cycles;
92107

93-
cpu/event=0x60,umask=0x01,period=2000003,name='OFFCORE_REQUESTS_OUTSTANDING.DEMAND_DATA_RD'/,
94108
cpu/event=0x60,umask=0x01,cmask=0x01,period=2000003,name='OFFCORE_REQUESTS_OUTSTANDING.CYCLES_WITH_DEMAND_DATA_RD'/,
95109
cpu-cycles;
96110

97111
cpu/event=0x80,umask=0x4,name='ICACHE_16B.IFDATA_STALL'/,
98-
cpu/event=0x80,umask=0x4,cmask=0x1,edge=0x1,name='ICACHE_16B_c1_e1_IFDATA_STALL'/,
112+
cpu/event=0x80,umask=0x4,cmask=0x1,edge=0x1,name='ICACHE_16B.IFDATA_STALL:c1:e1'/,
99113
cpu/event=0x85,umask=0x0e,period=100003,name='ITLB_MISSES.WALK_COMPLETED'/,
100114
cpu/event=0x85,umask=0x10,period=100003,name='ITLB_MISSES.WALK_ACTIVE'/,
101115
instructions,
102116
cpu-cycles;
103117

104-
cpu/event=0x49,umask=0x20,period=100003,name='DTLB_STORE_MISSES.STLB_HIT'/,
118+
cpu/event=0x49,umask=0x20,cmask=0x01,period=100003,name='DTLB_STORE_MISSES.STLB_HIT:c1'/,
105119
cpu/event=0x49,umask=0x10,period=100003,name='DTLB_STORE_MISSES.WALK_ACTIVE'/,
106120
cpu/event=0x14,umask=0x01,period=2000003,name='ARITH.DIVIDER_ACTIVE'/,
107121
cpu/event=0xb1,umask=0x02,inv=0x1,cmask=0x1,period=2000003,name='UOPS_EXECUTED.CORE_CYCLES_NONE'/,
@@ -111,7 +125,6 @@ cpu-cycles;
111125
cpu/event=0xb1,umask=0x02,cmask=0x1,period=2000003,name='UOPS_EXECUTED.CORE_CYCLES_GE_1'/,
112126
cpu/event=0xb1,umask=0x02,cmask=0x2,period=2000003,name='UOPS_EXECUTED.CORE_CYCLES_GE_2'/,
113127
cpu/event=0xb1,umask=0x02,cmask=0x3,period=2000003,name='UOPS_EXECUTED.CORE_CYCLES_GE_3'/,
114-
cpu/event=0xb1,umask=0x02,cmask=0x4,period=2000003,name='UOPS_EXECUTED.CORE_CYCLES_GE_4'/,
115128
cpu-cycles;
116129

117130
cpu/event=0x3c,umask=0x2,name='CPU_CLK_THREAD_UNHALTED.ONE_THREAD_ACTIVE'/,
@@ -129,38 +142,25 @@ cpu/event=0xb7,umask=0x01,offcore_rsp=0x3FB80007F7,name='OCR.ALL_READS.L3_MISS_L
129142
imc/event=0x04,umask=0x03,name='UNC_M_CAS_COUNT.RD'/,
130143
imc/event=0x04,umask=0x0c,name='UNC_M_CAS_COUNT.WR'/;
131144

132-
#UNC_M_RPQ_INSERTS/OCCUPANCY
133-
imc/event=0x10,umask=0x0,name='UNC_M_RPQ_INSERTS'/,
134-
imc/event=0x80,umask=0x0,name='UNC_M_RPQ_OCCUPANCY'/,
135-
imc/event=0,umask=0,name='UNC_M_CLOCKTICKS'/;
136-
137145
#demand reads local and remote collected separately
138146
cha/event=0x35,umask=0x21,config1=0x4043200000000,name='UNC_CHA_TOR_INSERTS.IA_MISS.0x40432'/,
139147
cha/event=0x36,umask=0x21,config1=0x4043200000000,name='UNC_CHA_TOR_OCCUPANCY.IA_MISS.0x40432'/;
140148
cha/event=0x35,umask=0x21,config1=0x4043100000000,name='UNC_CHA_TOR_INSERTS.IA_MISS.0x40431'/,
141149
cha/event=0x36,umask=0x21,config1=0x4043100000000,name='UNC_CHA_TOR_OCCUPANCY.IA_MISS.0x40431'/;
142150

143151
#UNC_CHA_TOR_INSERTS.IA_MISS_CRD,UNC_CHA_TOR_OCCUPANCY.IA_MISS_CRD
144-
cha/event=0x35,umask=0x21,config1=0x12CC023300000000,name='UNC_CHA_TOR_INSERTS.IA_MISS.0x12CC0233'/,
145-
cha/event=0x36,umask=0x21,config1=0x12CC023300000000,name='UNC_CHA_TOR_OCCUPANCY.IA_MISS.0x12CC0233'/;
152+
cha/event=0x35,umask=0x21,config1=0x12CC023300000000,name='UNC_CHA_TOR_INSERTS.IA_MISS.0x12CC0233'/;
146153

147154
#UNC_CHA_TOR_INSERTS.IA_MISS_RFO,UNC_CHA_TOR_OCCUPANCY.IA_MISS_RFO
148-
cha/event=0x35,umask=0x21,config1=0x12C4003300000000,name='UNC_CHA_TOR_INSERTS.IA_MISS.0x12C40033'/,
149-
cha/event=0x36,umask=0x21,config1=0x12C4003300000000,name='UNC_CHA_TOR_OCCUPANCY.IA_MISS.0x12C40033'/;
150-
151-
#UNC_CHA_TOR_INSERTS.IA_HIT_DRD,UNC_CHA_TOR_OCCUPANCY.IA_HIT_DRD
152-
cha/event=0x35,umask=0x11,config1=0x4043300000000,name='UNC_CHA_TOR_INSERTS.IA_HIT.0x40433'/,
153-
cha/event=0x36,umask=0x11,config1=0x4043300000000,name='UNC_CHA_TOR_OCCUPANCY.IA_HIT.0x40433'/;
155+
cha/event=0x35,umask=0x21,config1=0x12C4003300000000,name='UNC_CHA_TOR_INSERTS.IA_MISS.0x12C40033'/;
154156

155157
#UNC_CHA_TOR_INSERTS.IA_MISS_DEMAND_RD,UNC_CHA_TOR_OCCUPANCY.IA_MISS_DEMAND_RD (demand data only - both local and remote)
156158
cha/event=0x35,umask=0x21,config1=0x4043300000000,name='UNC_CHA_TOR_INSERTS.IA_MISS.0x40433'/,
157159
cha/event=0x36,umask=0x21,config1=0x4043300000000,name='UNC_CHA_TOR_OCCUPANCY.IA_MISS.0x40433'/,
158160
cha/event=0x0,umask=0x0,name='UNC_CHA_CLOCKTICKS'/;
159161

160162
#UNC_CHA_TOR_INSERTS.IA_MISS_DRD,UNC_CHA_TOR_OCCUPANCY.IA_MISS_DRD
161-
cha/event=0x35,umask=0x21,config1=0x12D4043300000000,name='UNC_CHA_TOR_INSERTS.IA_MISS.0x12D40433'/,
162-
cha/event=0x36,umask=0x21,config1=0x12D4043300000000,name='UNC_CHA_TOR_OCCUPANCY.IA_MISS.0x12D40433'/;
163-
#cha/event=0xa5,umask=0x02,name='UNC_CHA_FAST_ASSERTED.HORZ'/;
163+
cha/event=0x35,umask=0x21,config1=0x12D4043300000000,name='UNC_CHA_TOR_INSERTS.IA_MISS.0x12D40433'/;
164164

165165
#IO bandwidth
166166
iio/event=0x83,umask=0x04,ch_mask=0x00,fc_mask=0x07,name='UNC_IIO_DATA_REQ_OF_CPU.MEM_READ.PART0'/,
@@ -180,7 +180,6 @@ upi/event=0x1,umask=0x0,name='UNC_UPI_CLOCKTICKS'/;
180180

181181
upi/event=0x21,umask=0x0,name='UNC_UPI_L1_POWER_CYCLES'/;
182182

183-
184183
#power related
185184
power/energy-pkg/,
186185
power/energy-ram/;

0 commit comments

Comments
 (0)