From f3220fdfa35c7fbca62430707623be3c36487cf2 Mon Sep 17 00:00:00 2001
From: GuillaumeDIDIER <guillaume.didier95@hotmail.fr>
Date: Wed, 5 Aug 2020 11:11:49 +0200
Subject: [PATCH] Python script fixes

---
 cache_utils/2T-opt-2020-07-31/analyse_csv.py  | 24 +++++++++++++++++--
 .../2T-opt-2020-07-31/analyse_medians.py      |  6 +++++
 requirements.txt                              |  5 ++++
 3 files changed, 33 insertions(+), 2 deletions(-)

diff --git a/cache_utils/2T-opt-2020-07-31/analyse_csv.py b/cache_utils/2T-opt-2020-07-31/analyse_csv.py
index 6a3d70a..c9caf37 100644
--- a/cache_utils/2T-opt-2020-07-31/analyse_csv.py
+++ b/cache_utils/2T-opt-2020-07-31/analyse_csv.py
@@ -9,13 +9,29 @@ from functools import partial
 
 import sys
 
+# For cyber cobay sanity check :
+from gmpy2 import popcount
+functions_i9_9900 = [
+             0b1111111111010101110101010001000000,
+             0b0110111110111010110001001000000000,
+             0b1111111000011111110010110000000000]
+
+
+def complex_hash(addr):
+    r = 0
+    for f in reversed(functions_i9_9900):
+        r <<= 1
+        r |= (popcount(f & addr) & 1)
+    return r
+
+
 def convert64(x):
     return np.int64(int(x, base=16))
 
 def convert8(x):
     return np.int8(int(x, base=16))
 
-df = pd.read_csv(sys.argv[1] + "-result_lite.csv.bz2",
+df = pd.read_csv(sys.argv[1] + "-results_lite.csv.bz2",
         dtype={
             "main_core": np.int8,
             "helper_core": np.int8,
@@ -59,6 +75,10 @@ sample_flush_columns = [
 print(df.columns)
 #df["Hash"] = df["Addr"].apply(lambda x: (x >> 15)&0x3)
 
+addresses = df["address"].unique()
+print(addresses)
+print(*[bin(a) for a in addresses], sep='\n')
+
 print(df.head())
 
 print(df["hash"].unique())
@@ -124,7 +144,7 @@ stats["clflush_shared_hit"] = hit_shared.values
 
 stats.to_csv(sys.argv[1] + ".stats.csv", index=False)
 
-print(stats.to_string())
+#print(stats.to_string())
 
 plt.show()
 exit(0)
diff --git a/cache_utils/2T-opt-2020-07-31/analyse_medians.py b/cache_utils/2T-opt-2020-07-31/analyse_medians.py
index c846bc1..23ed107 100644
--- a/cache_utils/2T-opt-2020-07-31/analyse_medians.py
+++ b/cache_utils/2T-opt-2020-07-31/analyse_medians.py
@@ -75,6 +75,12 @@ graph_upper_miss = int(((max_time_miss + 9) // 10) * 10)
 
 print("Graphing from {} to {}".format(graph_lower_miss, graph_upper_miss))
 
+g_ = sns.FacetGrid(stats, col="main_core_fixed", row="slice_group")
+
+g_.map(sns.distplot, 'clflush_miss_n', bins=range(graph_lower_miss, graph_upper_miss), color="b")
+#g.map(sns.scatterplot, 'slice_group', 'clflush_local_hit_n', color="g")
+plt.show()
+
 g = sns.FacetGrid(stats, row="main_core_fixed")
 
 g.map(sns.scatterplot, 'slice_group', 'clflush_miss_n', color="b")
diff --git a/requirements.txt b/requirements.txt
index 1ac0819..f2d42cf 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,3 +1,8 @@
 pandas==1.0.3
 seaborn==0.10.0
 wquantiles==0.5
+
+matplotlib~=3.2.1
+numpy~=1.18.2
+gmpy2~=2.0.8
+scipy~=1.4.1