From 77112c7645e941e5be47a491030fc33a61917843 Mon Sep 17 00:00:00 2001
From: Peter Cai <peter.cai@uwaterloo.ca>
Date: Tue, 28 Feb 2023 10:11:54 -0500
Subject: [PATCH] Normalize LLC misses to per-request

---
 analyze/memcached_conn_scan.py | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/analyze/memcached_conn_scan.py b/analyze/memcached_conn_scan.py
index b6cbc70..2121765 100644
--- a/analyze/memcached_conn_scan.py
+++ b/analyze/memcached_conn_scan.py
@@ -24,7 +24,7 @@ def extract_conn_qps_exp(exp):
             ret[1].append(qps)
 
         with open(os.path.join('../data/', exp, 'stat_c%d.txt' % (f,)), 'r') as fi:
-            misses = parse_perf_stat(fi.read())
+            misses = parse_perf_stat(fi.read()) / qps
             ret[2].append(misses)
 
     return ret
@@ -60,9 +60,9 @@ def show_plot(threads, include_caladan = False):
     if include_caladan and threads == 1:
         # Because we cannot run caladan on 1 threads, we use the t2 data
         # but we half the QPS
-        name = 'caladan (per-thread)'
+        name = 'caladan'
         data[name] = extract_conn_qps_exp('memcached_conn_scan.5.4.0-136-generic.caladan.t2')
-        data[name] = (data[name][0], [qps / 2 for qps in data[name][1]], [misses / 2 for misses in data[name][2]])
+        data[name] = (data[name][0], [qps / 2 for qps in data[name][1]], data[name][2])
 
     for k in data:
         plt.plot(data[k][0], data[k][1], label = k)
@@ -90,7 +90,7 @@ def show_plot(threads, include_caladan = False):
         plt.plot(data[k][0], data[k][2], label = k)
 
     plt.xlabel('Connections (per client w/ 7 * 8 clients)')
-    plt.ylabel('LLC misses')
+    plt.ylabel('LLC misses per request')
 
     plt.legend()
     if os.getenv('SAVE_FIGURE') != 'true':
-- 
GitLab