Skip to content

Commit ee60713

Browse files
authored
adding mini srf (#51)
* update html report * improve VM filtering * move acknowledgements and compress metric table * adding mini sierra forest
1 parent 79002fe commit ee60713

File tree

7 files changed

+75
-3
lines changed

7 files changed

+75
-3
lines changed

Makefile

Lines changed: 1 addition & 0 deletions
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 "./events/metric_srf.json:." \
4950
--add-data "./src/base.html:." \
5051
--runtime-tmpdir . \
5152
--exclude-module readline

events/metric_srf.json

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
[
2+
{
3+
"name": "metric_CPU operating frequency (in GHz)",
4+
"expression": "(([cpu-cycles] / [ref-cycles] * [SYSTEM_TSC_FREQ]) / 1000000000)"
5+
},
6+
{
7+
"name": "metric_CPU utilization %",
8+
"expression": "100 * [ref-cycles] / [TSC]"
9+
},
10+
{
11+
"name": "metric_CPU utilization% in kernel mode",
12+
"expression": "100 * [ref-cycles:k] / [TSC]",
13+
"origin": "perfspect"
14+
},
15+
{
16+
"name": "metric_CPI",
17+
"name-txn": "metric_cycles per txn",
18+
"expression": "[cpu-cycles] / [instructions]",
19+
"expression-txn": "[cpu-cycles] / [TXN]"
20+
},
21+
{
22+
"name": "metric_kernel_CPI",
23+
"name-txn": "metric_kernel_cycles per txn",
24+
"expression": "[cpu-cycles:k] / [instructions:k]",
25+
"expression-txn": "[cpu-cycles:k] / [TXN]",
26+
"origin": "perfspect"
27+
},
28+
{
29+
"name": "metric_IPC",
30+
"name-txn": "metric_txn per cycle",
31+
"expression": "[instructions] / [cpu-cycles]",
32+
"expression-txn": "[TXN] / [cpu-cycles]",
33+
"origin": "perfspect"
34+
},
35+
{
36+
"name": "metric_giga_instructions_per_sec",
37+
"expression": "[instructions] / 1000000000",
38+
"origin": "perfspect"
39+
}
40+
]

events/srf.txt

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
###########################################################################################################
2+
# Copyright (C) 2021-2023 Intel Corporation
3+
# SPDX-License-Identifier: BSD-3-Clause
4+
###########################################################################################################
5+
6+
# SierraForest event list
7+
8+
cpu-cycles,
9+
ref-cycles,
10+
instructions;
11+
12+
cpu-cycles:k,
13+
ref-cycles:k,
14+
instructions:k;
15+
16+
#C6
17+
cstate_core/c6-residency/;
18+
cstate_pkg/c6-residency/;
19+
20+
#power
21+
power/energy-pkg/,
22+
power/energy-ram/;

perf-collect.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
"Icelake",
2828
"SapphireRapids",
2929
"EmeraldRapids",
30+
"SierraForest",
3031
]
3132

3233

@@ -318,6 +319,8 @@ def validate_file(fname):
318319
elif arch == "emeraldrapids":
319320
eventfile = "spr.txt"
320321
have_uncore = False
322+
elif arch == "sierraforest":
323+
eventfile = "srf.txt"
321324

322325
if eventfile is None:
323326
crash(f"failed to match architecture ({arch}) to event file name.")

perf-collect.spec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ block_cipher = None
77
a = Analysis(
88
['perf-collect.py'],
99
pathex=[],
10-
datas=[('./src/libtsc.so', '.'), ('./events/bdx.txt', '.'), ('./events/clx_skx.txt', '.'), ('./events/icx.txt', '.'), ('./events/spr.txt', '.')],
10+
datas=[('./src/libtsc.so', '.'), ('./events/bdx.txt', '.'), ('./events/clx_skx.txt', '.'), ('./events/icx.txt', '.'), ('./events/spr.txt', '.'), ('./events/srf.txt', '.')],
1111
hiddenimports=[],
1212
hookspath=[],
1313
hooksconfig={},

perf-postprocess.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -416,6 +416,8 @@ def get_metric_file_name(microarchitecture):
416416
metric_file = "metric_icx.json"
417417
elif microarchitecture == "sapphirerapids" or microarchitecture == "emeraldrapids":
418418
metric_file = "metric_spr.json"
419+
elif microarchitecture == "sierraforest":
420+
metric_file = "metric_srf.json"
419421
else:
420422
crash("Suitable metric file not found")
421423

src/perf_helpers.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,8 @@ def disable_nmi_watchdog():
158158
logging.info("nmi_watchdog disabled!")
159159
return nmi_watchdog_status
160160
except subprocess.CalledProcessError as e:
161-
crash(e.output + "\nFailed to disable nmi_watchdog.")
161+
logging.warning(e)
162+
logging.warning("Failed to disable nmi_watchdog.")
162163
except ValueError as e:
163164
crash(f"Failed to disable watchdog: {e}")
164165

@@ -175,7 +176,8 @@ def enable_nmi_watchdog():
175176
else:
176177
logging.info("nmi_watchdog enabled!")
177178
except subprocess.CalledProcessError as e:
178-
logging.warning(e.output + "\nFailed to re-enable nmi_watchdog!")
179+
logging.warning(e.output)
180+
logging.warning("Failed to re-enable nmi_watchdog!")
179181
except ValueError as e:
180182
logging.warning(f"Failed to re-enable nmi_watchdog: {e}")
181183

@@ -281,6 +283,8 @@ def get_arch_and_name(procinfo):
281283
arch = "sapphirerapids"
282284
elif model == 207 and cpufamily == 6:
283285
arch = "emeraldrapids"
286+
elif model == 175 and cpufamily == 6:
287+
arch = "sierraforest"
284288
return arch, modelname
285289

286290

0 commit comments

Comments
 (0)