blob: fd76b2266abc5830cc0ec42987b97a54fd15dc5b (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
|
#!/bin/bash
EPS_FLAG=
while true; do
case $1 in
--eps)
shift
EPS_FLAG="--eps"
;;
*)
break
;;
esac
done
PLOTTER="plot_scatter $EPS_FLAG --lines "
function get_tmp_file {
OS=`uname`
if [ $OS == "Linux" ]
then
mktemp
else # Darwin
mktemp -t ecrts
fi
}
function get_val {
echo "$1" | sed 's/.*=//g'
}
function plot_file {
SCHED="G-EDF"
FILE=$1
NAME=`basename $FILE | sed -e 's/.csv//g'`
STRIPPED=`get_tmp_file`
# remove comments for Gnuplot
egrep -v '^#' $FILE > $STRIPPED
if [ ! -s $STRIPPED ]
then
echo "Skipping $FILE since there wasn't any data to be found. "
return
fi
# decode file name
PARAMS=
for KV in `echo $NAME | sed -e 's/_/ /g'`
do
case $KV in
pedf)
SCHED="P-EDF"
;;
gedf)
SCHED="G-EDF"
;;
hard)
TEST="hard"
;;
soft)
TEST="soft"
;;
axis*)
AXIS=`get_val $KV`
;;
rmax*|rmin*|wmax*|wmin*)
# ignored, not shown
;;
*)
PARAMS="$PARAMS $KV"
;;
esac
done
YRANGE=" --yrange -0.05 1.05 --yticks 0 0.1"
case $AXIS in
ucap)
XRANGE="--xrange 0.5 32.5 --xticks 0 2"
XRANGE="--xrange 0.5 22.5 --xticks 0 2"
if [ "$SCHED" == "G-EDF" ] && [ "$TEST" == "hard" ]
then
XRANGE="--xrange 0.5 14.5 --xticks 0 1"
fi
AXIS_LABEL="task set utilization (prior to inflation)"
;;
res)
XRANGE="--xrange 0 5.05 --xticks 0 1"
AXIS_LABEL="average number of resources per task"
;;
nest)
XRANGE="--xrange 0 0.505 --xticks 0 0.1"
AXIS_LABEL="probability of nested requests"
;;
contention)
XRANGE="--xrange 45 555 --xticks 0 50"
AXIS_LABEL="requests per resource per second"
;;
wratio)
XRANGE="--xrange 0 0.505 --xticks 0 0.1"
AXIS_LABEL="ratio of write requests"
;;
*)
echo "Unkown axis: $AXIS."
AXIS_LABEL="$AXIS"
;;
esac
TITLE="$TEST schedulability under $SCHED with$PARAMS"
RANGE="$XRANGE $YRANGE"
$PLOTTER $RANGE "$NAME" "$AXIS_LABEL" "ratio of schedulable task sets" "$TITLE" \
$STRIPPED 1 2 "task-fair mutex" \
$STRIPPED 1 3 "task-fair RW" \
$STRIPPED 1 4 "phase-fair RW"
rm $STRIPPED
}
while [ ! -z "$1" ]
do
echo "Plotting $1..."
plot_file $1
shift
done
|