Skip to content

Commit

Permalink
expanded TMA, updated html, similarity analysis, older kernel uncore …
Browse files Browse the repository at this point in the history
…detection (#32)
  • Loading branch information
hilldani authored May 19, 2023
1 parent 6b8d9b5 commit acc456e
Show file tree
Hide file tree
Showing 18 changed files with 1,686 additions and 1,298 deletions.
1 change: 1 addition & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ build-public/postprocess:
--add-data "./events/metric_bdx.json:." \
--add-data "./events/metric_icx.json:." \
--add-data "./events/metric_spr.json:." \
--add-data "./src/base.html:." \
--runtime-tmpdir . \
--exclude-module readline
cp $(TMPDIR)/dist/perf-postprocess build/
Expand Down
19 changes: 13 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# 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)

[Quick Start](#quick-start-requires-perf-installed) | [Requirements](#requirements) | [Build from source](#build-from-source) | [Caveats](#caveats) | [How to contribute](#how-to-contribute)
[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)

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

Expand Down Expand Up @@ -30,13 +30,22 @@ sudo ./perf-collect --timeout 10
./perf-postprocess
```

## Output

perf-collect outputs:
1. `perfstat.csv`: raw event counts with system metadata

perf-postprocess outputs:
1. `metric_out.sys.average.csv`: average metrics
2. `metric_out.sys.csv`: metric values at every interval
3. `metric_out.html`: html view of a few select metrics

![basic_stats](https://raw.githubusercontent.com/wiki/intel/PerfSpect/newhtml.gif)

## Deploy in Kubernetes

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

![basic_stats](https://raw.githubusercontent.com/wiki/intel/PerfSpect/basic_stats.JPG)
![perfspect-demo1](https://raw.githubusercontent.com/wiki/intel/PerfSpect/demo.gif)

## Requirements

### Packages:
Expand Down Expand Up @@ -75,8 +84,6 @@ make
## Caveats

1. The tool can collect only the counters supported by underlying linux perf version.
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`
3. The html report creation is not yet supported for cid collection.

## How to contribute

Expand Down
2 changes: 1 addition & 1 deletion _version.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.2.9
1.2.10
49 changes: 24 additions & 25 deletions events/clx_skx.txt
Original file line number Diff line number Diff line change
Expand Up @@ -35,11 +35,25 @@ cstate_core/c6-residency/;
cstate_pkg/c6-residency/;

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

cpu/event=0xd1,umask=0x40,period=100007,name='MEM_LOAD_RETIRED.FB_HIT'/,
cpu/event=0xd1,umask=0x08,period=100003,name='MEM_LOAD_RETIRED.L1_MISS'/,
cpu/event=0x48,umask=0x02,cmask=0x01,period=2000003,name='L1D_PEND_MISS.FB_FULL:c1'/,
cpu/event=0xa3,umask=0x04,cmask=0x04,period=2000003,name='CYCLE_ACTIVITY.STALLS_TOTAL'/,
cpu-cycles,
ref-cycles,
instructions;

cpu/event=0xa3,umask=0x10,cmask=0x16,period=2000003,name='CYCLE_ACTIVITY.CYCLES_MEM_ANY'/,
cpu/event=0xa3,umask=0x08,cmask=0x08,period=2000003,name='CYCLE_ACTIVITY.CYCLES_L1D_MISS'/,
cpu-cycles,
ref-cycles,
instructions;


#avx related power levels
cpu/event=0x28,umask=0x07,period=200003,name='CORE_POWER.LVL0_TURBO_LICENSE'/,
cpu/event=0x28,umask=0x18,period=200003,name='CORE_POWER.LVL1_TURBO_LICENSE'/,
Expand All @@ -48,9 +62,10 @@ cpu/event=0x0e,umask=0x01,period=2000003,name='UOPS_ISSUED.ANY'/;

cpu/event=0x3c,umask=0x0,period=2000003,name='CPU_CLK_UNHALTED.THREAD_ANY'/,
cpu/event=0x9c,umask=0x01,period=2000003,name='IDQ_UOPS_NOT_DELIVERED.CORE'/,
cpu/event=0xc2,umask=0x02,period=2000003,name='UOPS_RETIRED.RETIRE_SLOTS'/,
cpu/event=0xc2,umask=0x02,period=2000003,name='UOPS_RETIRED.RETIRE_SLOTS'/;
#INT_MISC.RECOVERY_CYCLES_ANY
cpu/event=0x0d,umask=0x01,period=2000003,name='INT_MISC.RECOVERY_CYCLES_ANY'/;
cpu/event=0x0d,umask=0x01,period=2000003,name='INT_MISC.RECOVERY_CYCLES_ANY'/,
cpu/event=0x0d,umask=0x01,period=2000003,name='INT_MISC.RECOVERY_CYCLES'/;

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

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

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

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

cpu/event=0x80,umask=0x4,name='ICACHE_16B.IFDATA_STALL'/,
cpu/event=0x80,umask=0x4,cmask=0x1,edge=0x1,name='ICACHE_16B_c1_e1_IFDATA_STALL'/,
cpu/event=0x80,umask=0x4,cmask=0x1,edge=0x1,name='ICACHE_16B.IFDATA_STALL:c1:e1'/,
cpu/event=0x85,umask=0x0e,period=100003,name='ITLB_MISSES.WALK_COMPLETED'/,
cpu/event=0x85,umask=0x10,period=100003,name='ITLB_MISSES.WALK_ACTIVE'/,
instructions,
cpu-cycles;

cpu/event=0x49,umask=0x20,period=100003,name='DTLB_STORE_MISSES.STLB_HIT'/,
cpu/event=0x49,umask=0x20,cmask=0x01,period=100003,name='DTLB_STORE_MISSES.STLB_HIT:c1'/,
cpu/event=0x49,umask=0x10,period=100003,name='DTLB_STORE_MISSES.WALK_ACTIVE'/,
cpu/event=0x14,umask=0x01,period=2000003,name='ARITH.DIVIDER_ACTIVE'/,
cpu/event=0xb1,umask=0x02,inv=0x1,cmask=0x1,period=2000003,name='UOPS_EXECUTED.CORE_CYCLES_NONE'/,
Expand All @@ -111,7 +125,6 @@ cpu-cycles;
cpu/event=0xb1,umask=0x02,cmask=0x1,period=2000003,name='UOPS_EXECUTED.CORE_CYCLES_GE_1'/,
cpu/event=0xb1,umask=0x02,cmask=0x2,period=2000003,name='UOPS_EXECUTED.CORE_CYCLES_GE_2'/,
cpu/event=0xb1,umask=0x02,cmask=0x3,period=2000003,name='UOPS_EXECUTED.CORE_CYCLES_GE_3'/,
cpu/event=0xb1,umask=0x02,cmask=0x4,period=2000003,name='UOPS_EXECUTED.CORE_CYCLES_GE_4'/,
cpu-cycles;

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

#UNC_M_RPQ_INSERTS/OCCUPANCY
imc/event=0x10,umask=0x0,name='UNC_M_RPQ_INSERTS'/,
imc/event=0x80,umask=0x0,name='UNC_M_RPQ_OCCUPANCY'/,
imc/event=0,umask=0,name='UNC_M_CLOCKTICKS'/;

#demand reads local and remote collected separately
cha/event=0x35,umask=0x21,config1=0x4043200000000,name='UNC_CHA_TOR_INSERTS.IA_MISS.0x40432'/,
cha/event=0x36,umask=0x21,config1=0x4043200000000,name='UNC_CHA_TOR_OCCUPANCY.IA_MISS.0x40432'/;
cha/event=0x35,umask=0x21,config1=0x4043100000000,name='UNC_CHA_TOR_INSERTS.IA_MISS.0x40431'/,
cha/event=0x36,umask=0x21,config1=0x4043100000000,name='UNC_CHA_TOR_OCCUPANCY.IA_MISS.0x40431'/;

#UNC_CHA_TOR_INSERTS.IA_MISS_CRD,UNC_CHA_TOR_OCCUPANCY.IA_MISS_CRD
cha/event=0x35,umask=0x21,config1=0x12CC023300000000,name='UNC_CHA_TOR_INSERTS.IA_MISS.0x12CC0233'/,
cha/event=0x36,umask=0x21,config1=0x12CC023300000000,name='UNC_CHA_TOR_OCCUPANCY.IA_MISS.0x12CC0233'/;
cha/event=0x35,umask=0x21,config1=0x12CC023300000000,name='UNC_CHA_TOR_INSERTS.IA_MISS.0x12CC0233'/;

#UNC_CHA_TOR_INSERTS.IA_MISS_RFO,UNC_CHA_TOR_OCCUPANCY.IA_MISS_RFO
cha/event=0x35,umask=0x21,config1=0x12C4003300000000,name='UNC_CHA_TOR_INSERTS.IA_MISS.0x12C40033'/,
cha/event=0x36,umask=0x21,config1=0x12C4003300000000,name='UNC_CHA_TOR_OCCUPANCY.IA_MISS.0x12C40033'/;

#UNC_CHA_TOR_INSERTS.IA_HIT_DRD,UNC_CHA_TOR_OCCUPANCY.IA_HIT_DRD
cha/event=0x35,umask=0x11,config1=0x4043300000000,name='UNC_CHA_TOR_INSERTS.IA_HIT.0x40433'/,
cha/event=0x36,umask=0x11,config1=0x4043300000000,name='UNC_CHA_TOR_OCCUPANCY.IA_HIT.0x40433'/;
cha/event=0x35,umask=0x21,config1=0x12C4003300000000,name='UNC_CHA_TOR_INSERTS.IA_MISS.0x12C40033'/;

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

#UNC_CHA_TOR_INSERTS.IA_MISS_DRD,UNC_CHA_TOR_OCCUPANCY.IA_MISS_DRD
cha/event=0x35,umask=0x21,config1=0x12D4043300000000,name='UNC_CHA_TOR_INSERTS.IA_MISS.0x12D40433'/,
cha/event=0x36,umask=0x21,config1=0x12D4043300000000,name='UNC_CHA_TOR_OCCUPANCY.IA_MISS.0x12D40433'/;
#cha/event=0xa5,umask=0x02,name='UNC_CHA_FAST_ASSERTED.HORZ'/;
cha/event=0x35,umask=0x21,config1=0x12D4043300000000,name='UNC_CHA_TOR_INSERTS.IA_MISS.0x12D40433'/;

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

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


#power related
power/energy-pkg/,
power/energy-ram/;
Loading

0 comments on commit acc456e

Please sign in to comment.