diff mbox series

[net] selftests: net: fix rps_default_mask with >32 CPUs

Message ID 20240119151248.3476897-1-kuba@kernel.org
State Superseded
Headers show
Series [net] selftests: net: fix rps_default_mask with >32 CPUs | expand

Commit Message

Jakub Kicinski Jan. 19, 2024, 3:12 p.m. UTC
If there is more than 32 cpus the bitmask will start to contain
commas, leading to:

./rps_default_mask.sh: line 36: [: 00000000,00000000: integer expression expected

Remove the commas, bash doesn't interpret leading zeroes as oct
so that should be good enough.

Fixes: c12e0d5f267d ("self-tests: introduce self-tests for RPS default mask")
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
---
CC: shuah@kernel.org
CC: horms@kernel.org
CC: linux-kselftest@vger.kernel.org
---
 tools/testing/selftests/net/rps_default_mask.sh | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Simon Horman Jan. 19, 2024, 9:07 p.m. UTC | #1
On Fri, Jan 19, 2024 at 07:12:48AM -0800, Jakub Kicinski wrote:
> If there is more than 32 cpus the bitmask will start to contain
> commas, leading to:
> 
> ./rps_default_mask.sh: line 36: [: 00000000,00000000: integer expression expected
> 
> Remove the commas, bash doesn't interpret leading zeroes as oct
> so that should be good enough.
> 
> Fixes: c12e0d5f267d ("self-tests: introduce self-tests for RPS default mask")
> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
> ---
> CC: shuah@kernel.org
> CC: horms@kernel.org
> CC: linux-kselftest@vger.kernel.org
> ---
>  tools/testing/selftests/net/rps_default_mask.sh | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/tools/testing/selftests/net/rps_default_mask.sh b/tools/testing/selftests/net/rps_default_mask.sh
> index a26c5624429f..f8e786e220b6 100755
> --- a/tools/testing/selftests/net/rps_default_mask.sh
> +++ b/tools/testing/selftests/net/rps_default_mask.sh
> @@ -33,6 +33,10 @@ chk_rps() {
>  
>  	rps_mask=$($cmd /sys/class/net/$dev_name/queues/rx-0/rps_cpus)
>  	printf "%-60s" "$msg"
> +
> +	# In case there is more than 32 CPUs we need to remove commas from masks
> +	rps_mask=${rps_mask/,}
> +	expected_rps_mask=${expected_rps_mask/,}

Hi Jakub,

AFAIK this will only remove the first incidence of a comma.
So I'm assuming this breaks with >64 CPUs.

>  	if [ $rps_mask -eq $expected_rps_mask ]; then
>  		echo "[ ok ]"
>  	else
Jakub Kicinski Jan. 19, 2024, 10:49 p.m. UTC | #2
On Fri, 19 Jan 2024 21:07:19 +0000 Simon Horman wrote:
> AFAIK this will only remove the first incidence of a comma.
> So I'm assuming this breaks with >64 CPUs.

Good point! I'll use ${var//,} in v2.
diff mbox series

Patch

diff --git a/tools/testing/selftests/net/rps_default_mask.sh b/tools/testing/selftests/net/rps_default_mask.sh
index a26c5624429f..f8e786e220b6 100755
--- a/tools/testing/selftests/net/rps_default_mask.sh
+++ b/tools/testing/selftests/net/rps_default_mask.sh
@@ -33,6 +33,10 @@  chk_rps() {
 
 	rps_mask=$($cmd /sys/class/net/$dev_name/queues/rx-0/rps_cpus)
 	printf "%-60s" "$msg"
+
+	# In case there is more than 32 CPUs we need to remove commas from masks
+	rps_mask=${rps_mask/,}
+	expected_rps_mask=${expected_rps_mask/,}
 	if [ $rps_mask -eq $expected_rps_mask ]; then
 		echo "[ ok ]"
 	else