This fix solves theses errors, when calling kselftest with targets "intel_pstate":
./run.sh: line 90: / 1000: syntax error: operand expected (error token is "/ 1000")
./run.sh: line 92: / 1000: syntax error: operand expected (error token is "/ 1000")
To error was found by running tests manually with the command: make kselftest TARGETS=intel_pstate
Signed-off-by: Alessandro Zanni alessandro.zanni87@gmail.com ---
Notes: v2: removed debug echos
tools/testing/selftests/intel_pstate/run.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tools/testing/selftests/intel_pstate/run.sh b/tools/testing/selftests/intel_pstate/run.sh index e7008f614ad7..0c1b6c1308a4 100755 --- a/tools/testing/selftests/intel_pstate/run.sh +++ b/tools/testing/selftests/intel_pstate/run.sh @@ -87,9 +87,9 @@ mkt_freq=${_mkt_freq}0
# Get the ranges from cpupower _min_freq=$(cpupower frequency-info -l | tail -1 | awk ' { print $1 } ') -min_freq=$(($_min_freq / 1000)) +min_freq=$((_min_freq / 1000)) _max_freq=$(cpupower frequency-info -l | tail -1 | awk ' { print $2 } ') -max_freq=$(($_max_freq / 1000)) +max_freq=$((_max_freq / 1000))
[ $EVALUATE_ONLY -eq 0 ] && for freq in `seq $max_freq -100 $min_freq`
On 10/14/24 11:21, Alessandro Zanni wrote:
This fix solves theses errors, when calling kselftest with targets "intel_pstate":
./run.sh: line 90: / 1000: syntax error: operand expected (error token is "/ 1000")
./run.sh: line 92: / 1000: syntax error: operand expected (error token is "/ 1000")
To error was found by running tests manually with the command: make kselftest TARGETS=intel_pstate
Signed-off-by: Alessandro Zanni alessandro.zanni87@gmail.com
Notes: v2: removed debug echos
See my comments on your v1. It would help to wait a bit to send v2.
I can't reproduce this problem on Linux 6.12-rc3. What's you environment like?
tools/testing/selftests/intel_pstate/run.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tools/testing/selftests/intel_pstate/run.sh b/tools/testing/selftests/intel_pstate/run.sh index e7008f614ad7..0c1b6c1308a4 100755 --- a/tools/testing/selftests/intel_pstate/run.sh +++ b/tools/testing/selftests/intel_pstate/run.sh @@ -87,9 +87,9 @@ mkt_freq=${_mkt_freq}0 # Get the ranges from cpupower _min_freq=$(cpupower frequency-info -l | tail -1 | awk ' { print $1 } ') -min_freq=$(($_min_freq / 1000)) +min_freq=$((_min_freq / 1000)) _max_freq=$(cpupower frequency-info -l | tail -1 | awk ' { print $2 } ') -max_freq=$(($_max_freq / 1000)) +max_freq=$((_max_freq / 1000)) [ $EVALUATE_ONLY -eq 0 ] && for freq in `seq $max_freq -100 $min_freq`
thanks, -- Shuah
On 24/10/14 06:05, Shuah Khan wrote:
On 10/14/24 11:21, Alessandro Zanni wrote:
This fix solves theses errors, when calling kselftest with targets "intel_pstate":
./run.sh: line 90: / 1000: syntax error: operand expected (error token is "/ 1000")
./run.sh: line 92: / 1000: syntax error: operand expected (error token is "/ 1000")
To error was found by running tests manually with the command: make kselftest TARGETS=intel_pstate
Signed-off-by: Alessandro Zanni alessandro.zanni87@gmail.com
Notes: v2: removed debug echos
See my comments on your v1. It would help to wait a bit to send v2.
Ok and thanks for the comments.
I can't reproduce this problem on Linux 6.12-rc3. What's you environment like?
My kernel version is 6.12.0-rc3 from "make kernelversion".
I think the errors are related to the bash type and version, rather than the kernel version. My bash version is: GNU bash, version 5.2.21(1)-release (x86_64-pc-linux-gnu)
In fact, some shell do not complete expressions in variables and $var and command substitutions are done before the arithmetic expression itself is parsed. That expansion happens without regard for the arithmetic syntax, so with $var you can mess with that. So, I suggest to avoid to use $var inside a arithmetic expansion in order to be cross-platform.
tools/testing/selftests/intel_pstate/run.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tools/testing/selftests/intel_pstate/run.sh b/tools/testing/selftests/intel_pstate/run.sh index e7008f614ad7..0c1b6c1308a4 100755 --- a/tools/testing/selftests/intel_pstate/run.sh +++ b/tools/testing/selftests/intel_pstate/run.sh @@ -87,9 +87,9 @@ mkt_freq=${_mkt_freq}0 # Get the ranges from cpupower _min_freq=$(cpupower frequency-info -l | tail -1 | awk ' { print $1 } ') -min_freq=$(($_min_freq / 1000)) +min_freq=$((_min_freq / 1000)) _max_freq=$(cpupower frequency-info -l | tail -1 | awk ' { print $2 } ') -max_freq=$(($_max_freq / 1000)) +max_freq=$((_max_freq / 1000)) [ $EVALUATE_ONLY -eq 0 ] && for freq in `seq $max_freq -100 $min_freq`
thanks, -- Shuah
Thanks, Alessandro
On 24/10/14 06:05, Shuah Khan wrote:
On 10/14/24 11:21, Alessandro Zanni wrote:
This fix solves theses errors, when calling kselftest with targets "intel_pstate":
./run.sh: line 90: / 1000: syntax error: operand expected (error token is "/ 1000")
./run.sh: line 92: / 1000: syntax error: operand expected (error token is "/ 1000")
To error was found by running tests manually with the command: make kselftest TARGETS=intel_pstate
Signed-off-by: Alessandro Zanni alessandro.zanni87@gmail.com
Notes: v2: removed debug echos
See my comments on your v1. It would help to wait a bit to send v2.
Ok and thanks for the comments.
I can't reproduce this problem on Linux 6.12-rc3. What's you environment like?
My kernel version is 6.12.0-rc3 from "make kernelversion".
I think the errors are related to the bash type and version, rather than the kernel version. My bash version is: GNU bash, version 5.2.21(1)-release (x86_64-pc-linux-gnu)
In fact, some shell do not complete expressions in variables and $var and command substitutions are done before the arithmetic expression itself is parsed. That expansion happens without regard for the arithmetic syntax, so with $var you can mess with that. So, I suggest to avoid to use $var inside a arithmetic expansion in order to be cross-platform.
Hello, any thoughts about this patch?
Were you able to replicate the error?
tools/testing/selftests/intel_pstate/run.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tools/testing/selftests/intel_pstate/run.sh b/tools/testing/selftests/intel_pstate/run.sh index e7008f614ad7..0c1b6c1308a4 100755 --- a/tools/testing/selftests/intel_pstate/run.sh +++ b/tools/testing/selftests/intel_pstate/run.sh @@ -87,9 +87,9 @@ mkt_freq=${_mkt_freq}0 # Get the ranges from cpupower _min_freq=$(cpupower frequency-info -l | tail -1 | awk ' { print $1 } ') -min_freq=$(($_min_freq / 1000)) +min_freq=$((_min_freq / 1000)) _max_freq=$(cpupower frequency-info -l | tail -1 | awk ' { print $2 } ') -max_freq=$(($_max_freq / 1000)) +max_freq=$((_max_freq / 1000)) [ $EVALUATE_ONLY -eq 0 ] && for freq in `seq $max_freq -100 $min_freq`
thanks, -- Shuah
Thanks, Alessandro
Feel free to indicate if I can provide something useful for your evaluation.
Thanks, Alessandro
On 10/21/24 09:04, Alessandro Zanni wrote:
On 24/10/14 06:05, Shuah Khan wrote:
On 10/14/24 11:21, Alessandro Zanni wrote:
This fix solves theses errors, when calling kselftest with targets "intel_pstate":
./run.sh: line 90: / 1000: syntax error: operand expected (error token is "/ 1000")
./run.sh: line 92: / 1000: syntax error: operand expected (error token is "/ 1000")
To error was found by running tests manually with the command: make kselftest TARGETS=intel_pstate
Signed-off-by: Alessandro Zanni alessandro.zanni87@gmail.com
Notes: v2: removed debug echos
See my comments on your v1. It would help to wait a bit to send v2.
Ok and thanks for the comments.
I can't reproduce this problem on Linux 6.12-rc3. What's you environment like?
My kernel version is 6.12.0-rc3 from "make kernelversion".
I think the errors are related to the bash type and version, rather than the kernel version. My bash version is: GNU bash, version 5.2.21(1)-release (x86_64-pc-linux-gnu)
In fact, some shell do not complete expressions in variables and $var and command substitutions are done before the arithmetic expression itself is parsed. That expansion happens without regard for the arithmetic syntax, so with $var you can mess with that. So, I suggest to avoid to use $var inside a arithmetic expansion in order to be cross-platform.
Hello, any thoughts about this patch?
Were you able to replicate the error?
Yes I was able to reproduce what you are seeing.
tools/testing/selftests/intel_pstate/run.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tools/testing/selftests/intel_pstate/run.sh b/tools/testing/selftests/intel_pstate/run.sh index e7008f614ad7..0c1b6c1308a4 100755 --- a/tools/testing/selftests/intel_pstate/run.sh +++ b/tools/testing/selftests/intel_pstate/run.sh @@ -87,9 +87,9 @@ mkt_freq=${_mkt_freq}0 # Get the ranges from cpupower _min_freq=$(cpupower frequency-info -l | tail -1 | awk ' { print $1 } ') -min_freq=$(($_min_freq / 1000)) +min_freq=$((_min_freq / 1000)) _max_freq=$(cpupower frequency-info -l | tail -1 | awk ' { print $2 } ') -max_freq=$(($_max_freq / 1000)) +max_freq=$((_max_freq / 1000)) [ $EVALUATE_ONLY -eq 0 ] && for freq in `seq $max_freq -100 $min_freq`
The patch is fine. I applied and run it. I found another problem when cpupower command doesn't run
# ./run.sh: line 89: cpupower: command not found # ./run.sh: line 91: cpupower: command not found
So you would have to check if min_freq and max_freq are valid and don't continue if cpupower isn't found. This test depends on cpupower.
You can do that as a separate patch and send it as a series with commit log changes I suggested on v1 of this patch.
thanks, -- Shuah
On 10/21/24 09:04, Alessandro Zanni wrote:
On 24/10/14 06:05, Shuah Khan wrote:
On 10/14/24 11:21, Alessandro Zanni wrote:
This fix solves theses errors, when calling kselftest with targets "intel_pstate":
./run.sh: line 90: / 1000: syntax error: operand expected (error token is "/ 1000")
./run.sh: line 92: / 1000: syntax error: operand expected (error token is "/ 1000")
To error was found by running tests manually with the command: make kselftest TARGETS=intel_pstate
Signed-off-by: Alessandro Zanni alessandro.zanni87@gmail.com
Notes: v2: removed debug echos
See my comments on your v1. It would help to wait a bit to send v2.
Ok and thanks for the comments.
I can't reproduce this problem on Linux 6.12-rc3. What's you environment like?
My kernel version is 6.12.0-rc3 from "make kernelversion".
I think the errors are related to the bash type and version, rather than the kernel version. My bash version is: GNU bash, version 5.2.21(1)-release (x86_64-pc-linux-gnu)
In fact, some shell do not complete expressions in variables and $var and command substitutions are done before the arithmetic expression itself is parsed. That expansion happens without regard for the arithmetic syntax, so with $var you can mess with that. So, I suggest to avoid to use $var inside a arithmetic expansion in order to be cross-platform.
Hello, any thoughts about this patch?
Were you able to replicate the error?
Yes I was able to reproduce what you are seeing.
tools/testing/selftests/intel_pstate/run.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tools/testing/selftests/intel_pstate/run.sh b/tools/testing/selftests/intel_pstate/run.sh index e7008f614ad7..0c1b6c1308a4 100755 --- a/tools/testing/selftests/intel_pstate/run.sh +++ b/tools/testing/selftests/intel_pstate/run.sh @@ -87,9 +87,9 @@ mkt_freq=${_mkt_freq}0 # Get the ranges from cpupower _min_freq=$(cpupower frequency-info -l | tail -1 | awk ' { print $1 } ') -min_freq=$(($_min_freq / 1000)) +min_freq=$((_min_freq / 1000)) _max_freq=$(cpupower frequency-info -l | tail -1 | awk ' { print $2 } ') -max_freq=$(($_max_freq / 1000)) +max_freq=$((_max_freq / 1000)) [ $EVALUATE_ONLY -eq 0 ] && for freq in `seq $max_freq -100 $min_freq`
The patch is fine. I applied and run it. I found another problem when cpupower command doesn't run
# ./run.sh: line 89: cpupower: command not found # ./run.sh: line 91: cpupower: command not found
So you would have to check if min_freq and max_freq are valid and don't continue if cpupower isn't found. This test depends on cpupower.
Thanks for the feedback. I'm going to work also on the cpupower issue.
You can do that as a separate patch and send it as a series with commit log changes I suggested on v1 of this patch.
Ok.
thanks, -- Shuah
Thank again, Alessandro
linux-kselftest-mirror@lists.linaro.org