Re: [PATCH] tools/rcutorture: Make identify_qemu_vcpus() independant of local language

From: Paul E. McKenney
Date: Thu Nov 19 2020 - 16:59:06 EST


On Thu, Nov 19, 2020 at 01:30:24AM +0100, Frederic Weisbecker wrote:
> The implementation expects `lscpu` to have a "CPU: " line, for example:
>
> CPU(s): 8
>
> But some local language settings may advocate for their own version:
>
> Processeur(s) : 8
>
> As a result the function may return an empty string and rcutorture would
> dump the following warning (still with the local taste):
>
> kvm-test-1-run.sh: ligne 138 : test: : nombre entier attendu comme expression
>
> Just use a command whose output every language agree with.
>
> Signed-off-by: Frederic Weisbecker <frederic@xxxxxxxxxx>
> Cc: Paul E. McKenney <paulmck@xxxxxxxxxx>
> Cc: Josh Triplett <josh@xxxxxxxxxxxxxxxx>
> Cc: Steven Rostedt <rostedt@xxxxxxxxxxx>
> Cc: Mathieu Desnoyers <mathieu.desnoyers@xxxxxxxxxxxx>
> Cc: Lai Jiangshan <jiangshanlai@xxxxxxxxx>
> Cc: rcu@xxxxxxxxxxxxxxx

Queued for review and testing, thank you! As usual, I could not resist
the urge to edit a bit, so please let me know if I messed anything up.

If there are too many of these, it might be easier for kvm.sh to switch
itself to EN-US mode, but this change both simplified the code and helped
defend the purity of the French language, so steady as she goes! ;-)

Thanx, Paul

------------------------------------------------------------------------

commit 655f941b96cbfc6f8869142ece092d8617425948
Author: Frederic Weisbecker <frederic@xxxxxxxxxx>
Date: Thu Nov 19 01:30:24 2020 +0100

tools/rcutorture: Make identify_qemu_vcpus() independent of local language

The rcutorture scripts' identify_qemu_vcpus() function expects `lscpu`
to have a "CPU: " line, for example:

CPU(s): 8

But different local language settings can give different results:

Processeur(s) : 8

As a result, identify_qemu_vcpus() may return an empty string, resulting
in the following warning (with the same local language settings):

kvm-test-1-run.sh: ligne 138 : test: : nombre entier attendu comme expression

This commit therefore changes identify_qemu_vcpus() to use getconf,
which produces local-language-independend output.

Signed-off-by: Frederic Weisbecker <frederic@xxxxxxxxxx>
Cc: Paul E. McKenney <paulmck@xxxxxxxxxx>
Cc: Josh Triplett <josh@xxxxxxxxxxxxxxxx>
Cc: Steven Rostedt <rostedt@xxxxxxxxxxx>
Cc: Mathieu Desnoyers <mathieu.desnoyers@xxxxxxxxxxxx>
Cc: Lai Jiangshan <jiangshanlai@xxxxxxxxx>
Cc: rcu@xxxxxxxxxxxxxxx

diff --git a/tools/testing/selftests/rcutorture/bin/functions.sh b/tools/testing/selftests/rcutorture/bin/functions.sh
index 8266349..fef8b4b 100644
--- a/tools/testing/selftests/rcutorture/bin/functions.sh
+++ b/tools/testing/selftests/rcutorture/bin/functions.sh
@@ -232,7 +232,7 @@ identify_qemu_args () {
# Returns the number of virtual CPUs available to the aggregate of the
# guest OSes.
identify_qemu_vcpus () {
- lscpu | grep '^CPU(s):' | sed -e 's/CPU(s)://' -e 's/[ ]*//g'
+ getconf _NPROCESSORS_ONLN
}

# print_bug