forked from ~ljy/RK356X_SDK_RELEASE

hc
2023-12-11 d2ccde1c8e90d38cee87a1b0309ad2827f3fd30d
kernel/tools/testing/selftests/net/udpgso_bench.sh
....@@ -3,6 +3,48 @@
33 #
44 # Run a series of udpgso benchmarks
55
6
+readonly GREEN='\033[0;92m'
7
+readonly YELLOW='\033[0;33m'
8
+readonly RED='\033[0;31m'
9
+readonly NC='\033[0m' # No Color
10
+
11
+readonly KSFT_PASS=0
12
+readonly KSFT_FAIL=1
13
+readonly KSFT_SKIP=4
14
+
15
+num_pass=0
16
+num_err=0
17
+num_skip=0
18
+
19
+kselftest_test_exitcode() {
20
+ local -r exitcode=$1
21
+
22
+ if [[ ${exitcode} -eq ${KSFT_PASS} ]]; then
23
+ num_pass=$(( $num_pass + 1 ))
24
+ elif [[ ${exitcode} -eq ${KSFT_SKIP} ]]; then
25
+ num_skip=$(( $num_skip + 1 ))
26
+ else
27
+ num_err=$(( $num_err + 1 ))
28
+ fi
29
+}
30
+
31
+kselftest_exit() {
32
+ echo -e "$(basename $0): PASS=${num_pass} SKIP=${num_skip} FAIL=${num_err}"
33
+
34
+ if [[ $num_err -ne 0 ]]; then
35
+ echo -e "$(basename $0): ${RED}FAIL${NC}"
36
+ exit ${KSFT_FAIL}
37
+ fi
38
+
39
+ if [[ $num_skip -ne 0 ]]; then
40
+ echo -e "$(basename $0): ${YELLOW}SKIP${NC}"
41
+ exit ${KSFT_SKIP}
42
+ fi
43
+
44
+ echo -e "$(basename $0): ${GREEN}PASS${NC}"
45
+ exit ${KSFT_PASS}
46
+}
47
+
648 wake_children() {
749 local -r jobs="$(jobs -p)"
850
....@@ -25,6 +67,7 @@
2567 local -r args=$@
2668
2769 ./in_netns.sh $0 __subprocess ${args}
70
+ kselftest_test_exitcode $?
2871 }
2972
3073 run_udp() {
....@@ -34,7 +77,22 @@
3477 run_in_netns ${args}
3578
3679 echo "udp gso"
37
- run_in_netns ${args} -S
80
+ run_in_netns ${args} -S 0
81
+
82
+ echo "udp gso zerocopy"
83
+ run_in_netns ${args} -S 0 -z
84
+
85
+ echo "udp gso timestamp"
86
+ run_in_netns ${args} -S 0 -T
87
+
88
+ echo "udp gso zerocopy audit"
89
+ run_in_netns ${args} -S 0 -z -a
90
+
91
+ echo "udp gso timestamp audit"
92
+ run_in_netns ${args} -S 0 -T -a
93
+
94
+ echo "udp gso zerocopy timestamp audit"
95
+ run_in_netns ${args} -S 0 -T -z -a
3896 }
3997
4098 run_tcp() {
....@@ -45,10 +103,15 @@
45103
46104 echo "tcp zerocopy"
47105 run_in_netns ${args} -t -z
106
+
107
+ # excluding for now because test fails intermittently
108
+ # add -P option to include poll() to reduce possibility of lost messages
109
+ #echo "tcp zerocopy audit"
110
+ #run_in_netns ${args} -t -z -P -a
48111 }
49112
50113 run_all() {
51
- local -r core_args="-l 4"
114
+ local -r core_args="-l 3"
52115 local -r ipv4_args="${core_args} -4 -D 127.0.0.1"
53116 local -r ipv6_args="${core_args} -6 -D ::1"
54117
....@@ -57,12 +120,13 @@
57120 run_udp "${ipv4_args}"
58121
59122 echo "ipv6"
60
- run_tcp "${ipv4_args}"
123
+ run_tcp "${ipv6_args}"
61124 run_udp "${ipv6_args}"
62125 }
63126
64127 if [[ $# -eq 0 ]]; then
65128 run_all
129
+ kselftest_exit
66130 elif [[ $1 == "__subprocess" ]]; then
67131 shift
68132 run_one $@