tools/testing/selftests/intel_pstate/run.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
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`
--
2.43.0
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
© 2016 - 2026 Red Hat, Inc.