From 8260634af49e26db25149515787b56610b922d56 Mon Sep 17 00:00:00 2001 From: Loïc Guégan Date: Sun, 30 Jun 2024 14:49:37 +0200 Subject: Cleaning repository --- analysis/scheduler/wakeup.awk | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100755 analysis/scheduler/wakeup.awk (limited to 'analysis/scheduler/wakeup.awk') diff --git a/analysis/scheduler/wakeup.awk b/analysis/scheduler/wakeup.awk new file mode 100755 index 0000000..1bc8934 --- /dev/null +++ b/analysis/scheduler/wakeup.awk @@ -0,0 +1,43 @@ +#!/usr/bin/awk -f + +BEGIN { + RS="\n" + FS=" " + CSV_HEADER="node,wakets,sleepts,duration" + CSV_DATA="" + skip=1 +} + +/wakes up/{ + gsub("]","",$0) + wakets[$4][length(wakets[$4])+1]=$2 + skip=0 +} + +/is sleeping/{ + gsub("]","",$0) + if(!skip){ + sleepts[$4][length(sleepts[$4])+1]=$2 + } +} + +/LOG2PARSE/{ + gsub("]","",$0) + endts[$6][length(endts[$6])+1]=$2 +} + +END { + print(CSV_HEADER); + for(node in wakets){ + for(j=1;j<=length(wakets[node]);j++){ + start=wakets[node][j] + end=endts[node][1] + # Pay attention, the last sleep report for the last wake up is not printed + # so use the printed sleep only if available (otherwise we use the en of the simulation) + if(j<=length(sleepts[node])){ + end=sleepts[node][j] + } + print(node","start","end","end-start) + } + } +} -- cgit v1.2.3