Skip to content

Commit 72c6ec7

Browse files
committed
self-tests: introduce self-tests for RPS default mask
jira LE-1907 Rebuild_History Non-Buildable kernel-rt-5.14.0-284.30.1.rt14.315.el9_2 commit-author Paolo Abeni <pabeni@redhat.com> commit c12e0d5 Empty-Commit: Cherry-Pick Conflicts during history rebuild. Will be included in final tarball splat. Ref for failed cherry-pick at: ciq/ciq_backports/kernel-rt-5.14.0-284.30.1.rt14.315.el9_2/c12e0d5f.failed Ensure that RPS default mask changes take place on all newly created netns/devices and don't affect existing ones. Signed-off-by: Paolo Abeni <pabeni@redhat.com> Reviewed-by: Simon Horman <simon.horman@corigine.com> Reviewed-by: Eric Dumazet <edumazet@google.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org> (cherry picked from commit c12e0d5) Signed-off-by: Jonathan Maple <jmaple@ciq.com> # Conflicts: # tools/testing/selftests/net/Makefile
1 parent c83442c commit 72c6ec7

File tree

1 file changed

+133
-0
lines changed

1 file changed

+133
-0
lines changed
Lines changed: 133 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
1+
self-tests: introduce self-tests for RPS default mask
2+
3+
jira LE-1907
4+
Rebuild_History Non-Buildable kernel-rt-5.14.0-284.30.1.rt14.315.el9_2
5+
commit-author Paolo Abeni <pabeni@redhat.com>
6+
commit c12e0d5f267d7eb45a2f8eaa9fd44eaa2871a95e
7+
Empty-Commit: Cherry-Pick Conflicts during history rebuild.
8+
Will be included in final tarball splat. Ref for failed cherry-pick at:
9+
ciq/ciq_backports/kernel-rt-5.14.0-284.30.1.rt14.315.el9_2/c12e0d5f.failed
10+
11+
Ensure that RPS default mask changes take place on
12+
all newly created netns/devices and don't affect
13+
existing ones.
14+
15+
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
16+
Reviewed-by: Simon Horman <simon.horman@corigine.com>
17+
Reviewed-by: Eric Dumazet <edumazet@google.com>
18+
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
19+
(cherry picked from commit c12e0d5f267d7eb45a2f8eaa9fd44eaa2871a95e)
20+
Signed-off-by: Jonathan Maple <jmaple@ciq.com>
21+
22+
# Conflicts:
23+
# tools/testing/selftests/net/Makefile
24+
diff --cc tools/testing/selftests/net/Makefile
25+
index fcd84643f887,3364c548a23b..000000000000
26+
--- a/tools/testing/selftests/net/Makefile
27+
+++ b/tools/testing/selftests/net/Makefile
28+
@@@ -28,9 -30,25 +28,16 @@@ TEST_PROGS += veth.s
29+
TEST_PROGS += gro.sh
30+
TEST_PROGS += gre_gso.sh
31+
TEST_PROGS += cmsg_so_mark.sh
32+
-TEST_PROGS += cmsg_time.sh cmsg_ipv6.sh
33+
-TEST_PROGS += srv6_end_dt46_l3vpn_test.sh
34+
-TEST_PROGS += srv6_end_dt4_l3vpn_test.sh
35+
-TEST_PROGS += srv6_end_dt6_l3vpn_test.sh
36+
-TEST_PROGS += srv6_hencap_red_l3vpn_test.sh
37+
-TEST_PROGS += srv6_hl2encap_red_l2vpn_test.sh
38+
-TEST_PROGS += srv6_end_next_csid_l3vpn_test.sh
39+
TEST_PROGS += vrf_strict_mode_test.sh
40+
-TEST_PROGS += arp_ndisc_evict_nocarrier.sh
41+
-TEST_PROGS += ndisc_unsolicited_na_test.sh
42+
-TEST_PROGS += arp_ndisc_untracked_subnets.sh
43+
TEST_PROGS += stress_reuseport_listen.sh
44+
++<<<<<<< HEAD
45+
++=======
46+
+ TEST_PROGS += l2_tos_ttl_inherit.sh
47+
+ TEST_PROGS += bind_bhash.sh
48+
+ TEST_PROGS += ip_local_port_range.sh
49+
+ TEST_PROGS += rps_default_mask.sh
50+
++>>>>>>> c12e0d5f267d (self-tests: introduce self-tests for RPS default mask)
51+
TEST_PROGS_EXTENDED := in_netns.sh setup_loopback.sh setup_veth.sh
52+
-TEST_PROGS_EXTENDED += toeplitz_client.sh toeplitz.sh
53+
TEST_GEN_FILES = socket nettest
54+
TEST_GEN_FILES += psock_fanout psock_tpacket msg_zerocopy reuseport_addr_any
55+
TEST_GEN_FILES += tcp_mmap tcp_inq psock_snd txring_overwrite
56+
* Unmerged path tools/testing/selftests/net/Makefile
57+
diff --git a/tools/testing/selftests/net/config b/tools/testing/selftests/net/config
58+
index 6f905b53904f..5aaaf9663e5f 100644
59+
--- a/tools/testing/selftests/net/config
60+
+++ b/tools/testing/selftests/net/config
61+
@@ -3,6 +3,9 @@ CONFIG_NET_NS=y
62+
CONFIG_BPF_SYSCALL=y
63+
CONFIG_TEST_BPF=m
64+
CONFIG_NUMA=y
65+
+CONFIG_RPS=y
66+
+CONFIG_SYSFS=y
67+
+CONFIG_PROC_SYSCTL=y
68+
CONFIG_NET_VRF=y
69+
CONFIG_NET_L3_MASTER_DEV=y
70+
CONFIG_IPV6=y
71+
diff --git a/tools/testing/selftests/net/rps_default_mask.sh b/tools/testing/selftests/net/rps_default_mask.sh
72+
new file mode 100755
73+
index 000000000000..c81c0ac7ddfe
74+
--- /dev/null
75+
+++ b/tools/testing/selftests/net/rps_default_mask.sh
76+
@@ -0,0 +1,57 @@
77+
+#!/bin/sh
78+
+# SPDX-License-Identifier: GPL-2.0
79+
+
80+
+readonly ksft_skip=4
81+
+readonly cpus=$(nproc)
82+
+ret=0
83+
+
84+
+[ $cpus -gt 2 ] || exit $ksft_skip
85+
+
86+
+readonly INITIAL_RPS_DEFAULT_MASK=$(cat /proc/sys/net/core/rps_default_mask)
87+
+readonly NETNS="ns-$(mktemp -u XXXXXX)"
88+
+
89+
+setup() {
90+
+ ip netns add "${NETNS}"
91+
+ ip -netns "${NETNS}" link set lo up
92+
+}
93+
+
94+
+cleanup() {
95+
+ echo $INITIAL_RPS_DEFAULT_MASK > /proc/sys/net/core/rps_default_mask
96+
+ ip netns del $NETNS
97+
+}
98+
+
99+
+chk_rps() {
100+
+ local rps_mask expected_rps_mask=$3
101+
+ local dev_name=$2
102+
+ local msg=$1
103+
+
104+
+ rps_mask=$(ip netns exec $NETNS cat /sys/class/net/$dev_name/queues/rx-0/rps_cpus)
105+
+ printf "%-60s" "$msg"
106+
+ if [ $rps_mask -eq $expected_rps_mask ]; then
107+
+ echo "[ ok ]"
108+
+ else
109+
+ echo "[fail] expected $expected_rps_mask found $rps_mask"
110+
+ ret=1
111+
+ fi
112+
+}
113+
+
114+
+trap cleanup EXIT
115+
+
116+
+echo 0 > /proc/sys/net/core/rps_default_mask
117+
+setup
118+
+chk_rps "empty rps_default_mask" lo 0
119+
+cleanup
120+
+
121+
+echo 1 > /proc/sys/net/core/rps_default_mask
122+
+setup
123+
+chk_rps "non zero rps_default_mask" lo 1
124+
+
125+
+echo 3 > /proc/sys/net/core/rps_default_mask
126+
+chk_rps "changing rps_default_mask dont affect existing netns" lo 1
127+
+
128+
+ip -n $NETNS link add type veth
129+
+ip -n $NETNS link set dev veth0 up
130+
+ip -n $NETNS link set dev veth1 up
131+
+chk_rps "changing rps_default_mask affect newly created devices" veth0 3
132+
+chk_rps "changing rps_default_mask affect newly created devices[II]" veth1 3
133+
+exit $ret

0 commit comments

Comments
 (0)