[LTP] [PATCH] controllers/cpuset: improve the node number calculation for N_NODES
Po-Hsu Lin
po-hsu.lin@canonical.com
Thu Sep 5 08:34:33 CEST 2019
Hello,
This issue is causing multiple failures when the test needs the cpuset_funcs.sh
* cpuset_base_ops
* cpuset_exclusive
* cpuset_hierarchy
* cpuset_hotplug cpuset_inherit
* cpuset_load_balance
* cpuset_memory cpuset_memory_pressure
* cpuset_memory_spread
* cpuset_sched_domains
* cpuset_syscall
It will be great if we can have this patch reviewed.
For the record, mail to the original author "miaox" has failed, server repies:
unknown user: "miaox"
On Fri, Jul 12, 2019 at 8:05 PM Po-Hsu Lin <po-hsu.lin@canonical.com> wrote:
>
> BugLink: https://bugs.launchpad.net/bugs/1836188
>
> It was spotted on a Power9 system with Ubuntu Cosmic installed, the
> N_NODES obtained from the file contains only "0,8":
> $ cat /sys/devices/system/node/has_normal_memory
> 0,8
>
> This will cause the N_NODES calculation in cpuset_funcs.sh to fail with:
> cpuset_funcs.sh: arithmetic expression: expecting EOF: "0,8 + 1"
>
> As it was not designed for counting the number of comma seperated nodes.
>
> Improve this by splitting the file output with newlines, iterate through
> them to count the number of nodes. If we ever encounter a sequence
> format like "3-6", use shell substitution to get these two numbers and
> with their difference plus 1 to get the number of nodes in this range.
>
> Signed-off-by: Po-Hsu Lin <po-hsu.lin@canonical.com>
> ---
> .../kernel/controllers/cpuset/cpuset_funcs.sh | 17 +++++++++++++----
> 1 file changed, 13 insertions(+), 4 deletions(-)
>
> diff --git a/testcases/kernel/controllers/cpuset/cpuset_funcs.sh b/testcases/kernel/controllers/cpuset/cpuset_funcs.sh
> index 935a41ed0..6861b8dbd 100755
> --- a/testcases/kernel/controllers/cpuset/cpuset_funcs.sh
> +++ b/testcases/kernel/controllers/cpuset/cpuset_funcs.sh
> @@ -28,12 +28,21 @@
>
> NR_CPUS=`tst_ncpus`
> if [ -f "/sys/devices/system/node/has_high_memory" ]; then
> - N_NODES="`cat /sys/devices/system/node/has_high_memory`"
> + N_NODES="`cat /sys/devices/system/node/has_high_memory | tr ',' '\n'`"
> else
> - N_NODES="`cat /sys/devices/system/node/has_normal_memory`"
> + N_NODES="`cat /sys/devices/system/node/has_normal_memory | tr ',' '\n'`"
> fi
> -N_NODES=${N_NODES#*-*}
> -N_NODES=$(($N_NODES + 1))
> +i=0
> +while read item; do
> + count=1
> + if [ "${item#*-*}" != "$item" ]; then
> + count=$((${item#*-*} - ${item%*-*} + 1))
> + fi
> + i=$((i + $count))
> +done <<EOL
> +$N_NODES
> +EOL
> +N_NODES=$i
>
> CPUSET="/dev/cpuset"
> CPUSET_TMP="/tmp/cpuset_tmp"
> --
> 2.17.1
>
More information about the ltp
mailing list