mirror of
https://github.com/torvalds/linux.git
synced 2024-11-14 16:12:02 +00:00
self-tests: more rps self tests
Explicitly check for child netns and main ns independency Signed-off-by: Paolo Abeni <pabeni@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
50bcfe8df7
commit
3a7d84eae0
@ -8,7 +8,9 @@ ret=0
|
||||
[ $cpus -gt 2 ] || exit $ksft_skip
|
||||
|
||||
readonly INITIAL_RPS_DEFAULT_MASK=$(cat /proc/sys/net/core/rps_default_mask)
|
||||
readonly NETNS="ns-$(mktemp -u XXXXXX)"
|
||||
readonly TAG="$(mktemp -u XXXXXX)"
|
||||
readonly VETH="veth${TAG}"
|
||||
readonly NETNS="ns-${TAG}"
|
||||
|
||||
setup() {
|
||||
ip netns add "${NETNS}"
|
||||
@ -21,11 +23,15 @@ cleanup() {
|
||||
}
|
||||
|
||||
chk_rps() {
|
||||
local rps_mask expected_rps_mask=$3
|
||||
local dev_name=$2
|
||||
local rps_mask expected_rps_mask=$4
|
||||
local dev_name=$3
|
||||
local netns=$2
|
||||
local cmd="cat"
|
||||
local msg=$1
|
||||
|
||||
rps_mask=$(ip netns exec $NETNS cat /sys/class/net/$dev_name/queues/rx-0/rps_cpus)
|
||||
[ -n "$netns" ] && cmd="ip netns exec $netns $cmd"
|
||||
|
||||
rps_mask=$($cmd /sys/class/net/$dev_name/queues/rx-0/rps_cpus)
|
||||
printf "%-60s" "$msg"
|
||||
if [ $rps_mask -eq $expected_rps_mask ]; then
|
||||
echo "[ ok ]"
|
||||
@ -39,19 +45,30 @@ trap cleanup EXIT
|
||||
|
||||
echo 0 > /proc/sys/net/core/rps_default_mask
|
||||
setup
|
||||
chk_rps "empty rps_default_mask" lo 0
|
||||
chk_rps "empty rps_default_mask" $NETNS lo 0
|
||||
cleanup
|
||||
|
||||
echo 1 > /proc/sys/net/core/rps_default_mask
|
||||
setup
|
||||
chk_rps "non zero rps_default_mask" lo 1
|
||||
chk_rps "changing rps_default_mask dont affect existing devices" "" lo $INITIAL_RPS_DEFAULT_MASK
|
||||
|
||||
echo 3 > /proc/sys/net/core/rps_default_mask
|
||||
chk_rps "changing rps_default_mask dont affect existing netns" lo 1
|
||||
chk_rps "changing rps_default_mask dont affect existing netns" $NETNS lo 0
|
||||
|
||||
ip link add name $VETH type veth peer netns $NETNS name $VETH
|
||||
ip link set dev $VETH up
|
||||
ip -n $NETNS link set dev $VETH up
|
||||
chk_rps "changing rps_default_mask affect newly created devices" "" $VETH 3
|
||||
chk_rps "changing rps_default_mask don't affect newly child netns[II]" $NETNS $VETH 0
|
||||
ip netns del $NETNS
|
||||
|
||||
setup
|
||||
chk_rps "rps_default_mask is 0 by default in child netns" "$NETNS" lo 0
|
||||
|
||||
ip netns exec $NETNS sysctl -qw net.core.rps_default_mask=1
|
||||
ip link add name $VETH type veth peer netns $NETNS name $VETH
|
||||
chk_rps "changing rps_default_mask in child ns don't affect the main one" "" lo $INITIAL_RPS_DEFAULT_MASK
|
||||
chk_rps "changing rps_default_mask in child ns affects new childns devices" $NETNS $VETH 1
|
||||
chk_rps "changing rps_default_mask in child ns don't affect existing devices" $NETNS lo 0
|
||||
|
||||
ip -n $NETNS link add type veth
|
||||
ip -n $NETNS link set dev veth0 up
|
||||
ip -n $NETNS link set dev veth1 up
|
||||
chk_rps "changing rps_default_mask affect newly created devices" veth0 3
|
||||
chk_rps "changing rps_default_mask affect newly created devices[II]" veth1 3
|
||||
exit $ret
|
||||
|
Loading…
Reference in New Issue
Block a user