-
Notifications
You must be signed in to change notification settings - Fork 9
/
poisson.sh
executable file
·59 lines (45 loc) · 1.4 KB
/
poisson.sh
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
#!/bin/bash
if [[ -z "${1}" ]]
then
rate=10000
else
rate="${1}"
fi
if [[ -z "${2}" ]]
then
size=64
else
size="${2}"
fi
if [[ -z "${3}" ]]
then
freq=100
else
freq="${3}"
fi
echo "starting VPP and sleep for 10 seconds"
./startup_vpp.sh p2p &
sleep 10
echo "setting up xconnect"
./vppctl_p2p.sh l2patch
out_file="vpp-poisson-${rate}-${size}-${freq}.csv"
echo "Output file: ${out_file}"
echo "starting perf"
sudo perf stat -e instructions,branches,branch-misses,branch-load-misses,cache-misses,cache-references,cycles,context-switches,cpu-clock,minor-faults,page-faults,task-clock,bus-cycles,ref-cycles,L1-dcache-load-misses,L1-dcache-loads,L1-dcache-stores,L1-icache-load-misses,LLC-load-misses,LLC-store-misses,LLC-stores,LLC-loads,dTLB-stores,dTLB-load-misses,dTLB-store-misses,iTLB-loads,iTLB-load-misses,node-load-misses,node-loads,node-store-misses,node-stores -x, -o "${out_file}" -r 1 -p `pidof vpp` -I "${freq}" &
echo "starting MoonGen with rate: ${rates} mpbs, ${size} bytes, profiling freq ${freq} ms"
cd ../moongen
r="$(bc <<< "scale=2; $rate/($size+20)/8")"
s="$((size - 4))"
echo "input parameters to MoonGen: ${r}, ${s}"
sudo ./poisson-test.sh -r "${r}" -s "${s}" &
echo "sleep 30 secs"
sleep 30
echo "stop perf and MoonGen"
sudo kill -9 $(pidof perf)
echo "Perf killed"
pid_moon=$(pidof MoonGen)
sudo kill -9 $pid_moon
echo "MoonGen killed"
cd -
echo "killing VPP"
sudo killall vpp_main