From c44a1e0352b155cb5d9f4578fe77ba7599f7972f Mon Sep 17 00:00:00 2001
From: Florian Fischer <florian.fischer@muhq.space>
Date: Fri, 22 Apr 2022 20:58:19 +0200
Subject: [PATCH] Revert "simplify getting perf energy event"

This reverts commit c0ccb808529daa3f068986fd23984f3f52ec979a.

I am stupid and the CI can not use perf becaquse it is not installed.
---
 eval.py | 20 ++++++++++++--------
 1 file changed, 12 insertions(+), 8 deletions(-)

diff --git a/eval.py b/eval.py
index 71f20c4..a0629d4 100755
--- a/eval.py
+++ b/eval.py
@@ -135,15 +135,17 @@ MEASURE_CMD = f'{PERF_EXE} stat -x; -e {PERF_EVENTS} -o {{RESULT_FILE_STEM}}.sta
 
 def perf_get_energy_events() -> str:
     """Return the energy events supported by this system"""
-    return ','.join([  # type: ignore
-        l.split()[0] for l in subprocess.check_output('perf list'.split(),
-                                                      text=True).splitlines()
-        if 'energy' in l
-    ])
+    if not perf_get_energy_events.events:  # type: ignore
+        perf_get_energy_events.events = ','.join([  # type: ignore
+            l.split()[0] for l in subprocess.check_output(
+                'perf list'.split(), text=True).splitlines() if 'energy' in l
+        ])
+    return perf_get_energy_events.events  # type: ignore
 
 
-MEASURE_ENERGY_CMD = (f'{PERF_EXE} stat -a -x; -e {perf_get_energy_events()}'
-                      ' -o {RESULT_FILE_STEM}.energy.stats')
+perf_get_energy_events.events = ''  # type: ignore
+
+MEASURE_ENERGY_CMD = f'{PERF_EXE} stat -a -x; -e {{ENERGY_EVENTS}} -o {{RESULT_FILE_STEM}}.energy.stats'
 
 CACHE_DROP_FILE = '/proc/sys/vm/drop_caches'
 
@@ -311,8 +313,10 @@ def main(args):
                                                  f'{target}.{run}.emper-stats')
             measure_energy_proc = None
             if args.measure_energy:
+                energy_events = perf_get_energy_events()
                 measure_energy_cmd = MEASURE_ENERGY_CMD.format(
-                    RESULT_FILE_STEM=result_file_stem)
+                    RESULT_FILE_STEM=result_file_stem,
+                    ENERGY_EVENTS=energy_events)
                 measure_energy_proc = subprocess.Popen(
                     measure_energy_cmd.split())
 
-- 
GitLab