Skip to content

Commit 3a7d84e

Browse files
Paolo Abenidavem330
authored andcommitted
self-tests: more rps self tests
Explicitly check for child netns and main ns independency Signed-off-by: Paolo Abeni <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent 50bcfe8 commit 3a7d84e

File tree

1 file changed

+29
-12
lines changed

1 file changed

+29
-12
lines changed

tools/testing/selftests/net/rps_default_mask.sh

Lines changed: 29 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@ ret=0
88
[ $cpus -gt 2 ] || exit $ksft_skip
99

1010
readonly INITIAL_RPS_DEFAULT_MASK=$(cat /proc/sys/net/core/rps_default_mask)
11-
readonly NETNS="ns-$(mktemp -u XXXXXX)"
11+
readonly TAG="$(mktemp -u XXXXXX)"
12+
readonly VETH="veth${TAG}"
13+
readonly NETNS="ns-${TAG}"
1214

1315
setup() {
1416
ip netns add "${NETNS}"
@@ -21,11 +23,15 @@ cleanup() {
2123
}
2224

2325
chk_rps() {
24-
local rps_mask expected_rps_mask=$3
25-
local dev_name=$2
26+
local rps_mask expected_rps_mask=$4
27+
local dev_name=$3
28+
local netns=$2
29+
local cmd="cat"
2630
local msg=$1
2731

28-
rps_mask=$(ip netns exec $NETNS cat /sys/class/net/$dev_name/queues/rx-0/rps_cpus)
32+
[ -n "$netns" ] && cmd="ip netns exec $netns $cmd"
33+
34+
rps_mask=$($cmd /sys/class/net/$dev_name/queues/rx-0/rps_cpus)
2935
printf "%-60s" "$msg"
3036
if [ $rps_mask -eq $expected_rps_mask ]; then
3137
echo "[ ok ]"
@@ -39,19 +45,30 @@ trap cleanup EXIT
3945

4046
echo 0 > /proc/sys/net/core/rps_default_mask
4147
setup
42-
chk_rps "empty rps_default_mask" lo 0
48+
chk_rps "empty rps_default_mask" $NETNS lo 0
4349
cleanup
4450

4551
echo 1 > /proc/sys/net/core/rps_default_mask
4652
setup
47-
chk_rps "non zero rps_default_mask" lo 1
53+
chk_rps "changing rps_default_mask dont affect existing devices" "" lo $INITIAL_RPS_DEFAULT_MASK
4854

4955
echo 3 > /proc/sys/net/core/rps_default_mask
50-
chk_rps "changing rps_default_mask dont affect existing netns" lo 1
56+
chk_rps "changing rps_default_mask dont affect existing netns" $NETNS lo 0
57+
58+
ip link add name $VETH type veth peer netns $NETNS name $VETH
59+
ip link set dev $VETH up
60+
ip -n $NETNS link set dev $VETH up
61+
chk_rps "changing rps_default_mask affect newly created devices" "" $VETH 3
62+
chk_rps "changing rps_default_mask don't affect newly child netns[II]" $NETNS $VETH 0
63+
ip netns del $NETNS
64+
65+
setup
66+
chk_rps "rps_default_mask is 0 by default in child netns" "$NETNS" lo 0
67+
68+
ip netns exec $NETNS sysctl -qw net.core.rps_default_mask=1
69+
ip link add name $VETH type veth peer netns $NETNS name $VETH
70+
chk_rps "changing rps_default_mask in child ns don't affect the main one" "" lo $INITIAL_RPS_DEFAULT_MASK
71+
chk_rps "changing rps_default_mask in child ns affects new childns devices" $NETNS $VETH 1
72+
chk_rps "changing rps_default_mask in child ns don't affect existing devices" $NETNS lo 0
5173

52-
ip -n $NETNS link add type veth
53-
ip -n $NETNS link set dev veth0 up
54-
ip -n $NETNS link set dev veth1 up
55-
chk_rps "changing rps_default_mask affect newly created devices" veth0 3
56-
chk_rps "changing rps_default_mask affect newly created devices[II]" veth1 3
5774
exit $ret

0 commit comments

Comments
 (0)