From c7e88eb1eb2919ba32c37ffe78f5085ede68c6aa Mon Sep 17 00:00:00 2001
From: Florian Fischer <florian.fischer@muhq.space>
Date: Mon, 30 May 2022 10:55:53 +0200
Subject: [PATCH] add line plots, exclude non waitfree notifications, add
 stealing and completer plots

---
 muhq-ma-plots.sh | 28 ++++++++++++++++++++++++----
 1 file changed, 24 insertions(+), 4 deletions(-)

diff --git a/muhq-ma-plots.sh b/muhq-ma-plots.sh
index d5d6444..5b143da 100755
--- a/muhq-ma-plots.sh
+++ b/muhq-ma-plots.sh
@@ -25,10 +25,11 @@ DATA="$(realpath "${DATA}")"
 LATENCY_DATA="${DATA}/latency"
 THROUGHPUT_DATA="${DATA}/throughput"
 
-COMMON_EXCLUDE="-ix *lockless*"
+COMMON_EXCLUDE="-ix *lockless* *io-notification-waitfd*"
 PLOT="${SCRIPTDIR}/plot.py ${COMMON_EXCLUDE}"
 
 LATENCY_PLOT="${SCRIPTDIR}/plot_tail_latency.py --plot bar-tikz --"
+LATENCY_LINE_PLOT="${SCRIPTDIR}/plot_tail_latency.py --plot line"
 LATENCIES="latencies.2.csv"
 
 COMP="0us-100ms-0.5"
@@ -51,11 +52,16 @@ plot_throughput() {
 	${PLOT} -o ma-waitfd.tex -i emper-vanilla '*waitfd*' ${EXCLUDE_COMP} -- "$THROUGHPUT_DATA"
 	${PLOT} -o ma-waitfd-delay.tex -i emper-vanilla-${COMP} '*waitfd*'-${COMP} -- "$THROUGHPUT_DATA"
 
+	${PLOT} -o ma-completer.tex -i emper-{waitfd,pipe}{,-no-comp} ${EXCLUDE_COMP} -- "$THROUGHPUT_DATA"
+
+	${PLOT} -o ma-vanilla-stealing.tex -i emper-vanilla emper-waitfd emper-io-stealing ${EXCLUDE_COMP} -- "$THROUGHPUT_DATA"
+	${PLOT} -o ma-io-strategies-stealing.tex -i emper-io-stealing-{waitfd,pipe}* emper-{waitfd,pipe} ${EXCLUDE_COMP} -- "$THROUGHPUT_DATA"
+
 	${PLOT} -o ma-stealing.tex -i emper-vanilla '*io-stealing*' ${EXCLUDE_COMP} -- "$THROUGHPUT_DATA"
 	${PLOT} -o ma-stealing-delay.tex -i emper-{vanilla,*stealing}*-${COMP} -- "$THROUGHPUT_DATA"
 
-	${PLOT} -o ma-notification.tex -i emper-vanilla '*notification*' ${EXCLUDE_COMP} -- "$THROUGHPUT_DATA"
-	${PLOT} -o ma-notification-delay.tex -i emper-vanilla-${COMP} '*notification*'-${COMP} -- "$THROUGHPUT_DATA"
+	${PLOT} -o ma-notification.tex -i emper-{vanilla,waitfd} '*notification*' ${EXCLUDE_COMP} -- "$THROUGHPUT_DATA"
+	${PLOT} -o ma-notification-delay.tex -i emper-{vanilla,waitfd}-${COMP} '*notification*'-${COMP} -- "$THROUGHPUT_DATA"
 
 	${PLOT} -o ma-base-strategies.tex -i emper-{vanilla,simple-arch*,pipe,waitfd} ${EXCLUDE_COMP} -- "$THROUGHPUT_DATA"
 	${PLOT} -o ma-strategies.tex -i emper-vanilla '*pipe*' '*waitfd*' ${EXCLUDE_COMP} -- "$THROUGHPUT_DATA"
@@ -75,12 +81,26 @@ plot_throughput() {
 plot_latency() {
 	echo "generating latency plots ..."
 	${LATENCY_PLOT} ${LATENCY_DATA}/{emper-vanilla,go,tokio}-200us/$LATENCIES > ma-runtime-latency.tex
-	${LATENCY_PLOT} ${LATENCY_DATA}/{emper-vanilla,emper-waitfd,go,tokio}-200us/$LATENCIES > ma-comparision-latency.tex
+	${LATENCY_PLOT} ${LATENCY_DATA}/{emper-vanilla,emper-io-notification-waitfree-no-comp,go,tokio}-200us/$LATENCIES > ma-comparision-latency.tex
 
 	${LATENCY_PLOT} ${LATENCY_DATA}/emper-{waitfd,pipe,vanilla}-${COMP}/$LATENCIES > ma-strategy-latency.tex
 
 	${LATENCY_PLOT} ${LATENCY_DATA}/emper-{pipe*,vanilla}-${COMP}/$LATENCIES > ma-pipe-latency.tex
 	${LATENCY_PLOT} ${LATENCY_DATA}/emper-{waitfd*,io-notification*,vanilla}-${COMP}/$LATENCIES > ma-waitfd-latency.tex
+
+	${LATENCY_PLOT} ${LATENCY_DATA}/emper-{waitfd,pipe}{,-no-comp}-${COMP}/$LATENCIES > ma-completer-latency.tex
+	${LATENCY_PLOT} ${LATENCY_DATA}/emper-{io-stealing*,pipe,waitfd}-${COMP}/$LATENCIES > ma-stealing-latency.tex
+
+	${LATENCY_LINE_PLOT} --out ma-runtime-latency.png -- ${LATENCY_DATA}/{emper-vanilla,go,tokio}-200us/$LATENCIES
+	${LATENCY_LINE_PLOT} --out ma-comparision-latency.png -- ${LATENCY_DATA}/{emper-vanilla,emper-io-notification-waitfree-no-comp,go,tokio}-200us/$LATENCIES
+
+	${LATENCY_LINE_PLOT} --out ma-strategy-latency.png -- ${LATENCY_DATA}/emper-{waitfd,pipe,vanilla}-${COMP}/$LATENCIES
+
+	${LATENCY_LINE_PLOT} --out ma-pipe-latency.png -- ${LATENCY_DATA}/emper-{pipe*,vanilla}-${COMP}/$LATENCIES
+	${LATENCY_LINE_PLOT} --out ma-waitfd-latency.png -- ${LATENCY_DATA}/emper-{waitfd*,io-notification*,vanilla}-${COMP}/$LATENCIES
+
+	${LATENCY_LINE_PLOT} --out ma-completer-latency.png -- ${LATENCY_DATA}/emper-{waitfd,pipe}{,-no-comp}-${COMP}/$LATENCIES
+	${LATENCY_LINE_PLOT} --out ma-stealing-latency.png -- ${LATENCY_DATA}/emper-{io-stealing*,pipe,waitfd}-${COMP}/$LATENCIES
 }
 
 
-- 
GitLab