summaryrefslogtreecommitdiff
path: root/tools/testing/selftests/bpf/benchs/run_common.sh
blob: 6c5e6023a69f8dd7e74fc086b37d61d3d0b96b6a (plain)
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
#!/bin/bash
# SPDX-License-Identifier: GPL-2.0

RUN_BENCH="sudo ./bench -w3 -d10 -a"

function header()
{
	local len=${#1}

	printf "\n%s\n" "$1"
	for i in $(seq 1 $len); do printf '='; done
	printf '\n'
}

function subtitle()
{
	local len=${#1}
	printf "\t%s\n" "$1"
}

function hits()
{
	echo "$*" | sed -E "s/.*hits\s+([0-9]+\.[0-9]+ ± [0-9]+\.[0-9]+M\/s).*/\1/"
}

function drops()
{
	echo "$*" | sed -E "s/.*drops\s+([0-9]+\.[0-9]+ ± [0-9]+\.[0-9]+M\/s).*/\1/"
}

function percentage()
{
	echo "$*" | sed -E "s/.*Percentage\s=\s+([0-9]+\.[0-9]+).*/\1/"
}

function ops()
{
	echo -n "throughput: "
	echo -n "$*" | sed -E "s/.*throughput\s+([0-9]+\.[0-9]+ ± [0-9]+\.[0-9]+\sM\sops\/s).*/\1/"
	echo -n -e ", latency: "
	echo "$*" | sed -E "s/.*latency\s+([0-9]+\.[0-9]+\sns\/op).*/\1/"
}

function total()
{
	echo "$*" | sed -E "s/.*total operations\s+([0-9]+\.[0-9]+ ± [0-9]+\.[0-9]+M\/s).*/\1/"
}

function summarize()
{
	bench="$1"
	summary=$(echo $2 | tail -n1)
	printf "%-20s %s (drops %s)\n" "$bench" "$(hits $summary)" "$(drops $summary)"
}

function summarize_percentage()
{
	bench="$1"
	summary=$(echo $2 | tail -n1)
	printf "%-20s %s%%\n" "$bench" "$(percentage $summary)"
}

function summarize_ops()
{
	bench="$1"
	summary=$(echo $2 | tail -n1)
	printf "%-20s %s\n" "$bench" "$(ops $summary)"
}

function summarize_total()
{
	bench="$1"
	summary=$(echo $2 | tail -n1)
	printf "%-20s %s\n" "$bench" "$(total $summary)"
}