2022-11-03 13:47:04

by Colin Ian King

[permalink] [raw]
Subject: [PATCH] cpufreq: longhaul: Make array speeds static const

Don't populate the read-only array speeds on the stack but instead
make it static. Also makes the object code a little smaller.

Signed-off-by: Colin Ian King <[email protected]>
---
drivers/cpufreq/longhaul.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/cpufreq/longhaul.c b/drivers/cpufreq/longhaul.c
index 3e000e1a75c6..25f8ef7bac47 100644
--- a/drivers/cpufreq/longhaul.c
+++ b/drivers/cpufreq/longhaul.c
@@ -407,7 +407,7 @@ static int guess_fsb(int mult)
{
int speed = cpu_khz / 1000;
int i;
- int speeds[] = { 666, 1000, 1333, 2000 };
+ static const int speeds[] = { 666, 1000, 1333, 2000 };
int f_max, f_min;

for (i = 0; i < 4; i++) {
--
2.38.1



2022-11-03 14:30:03

by Joe Perches

[permalink] [raw]
Subject: Re: [PATCH] cpufreq: longhaul: Make array speeds static const

On Thu, 2022-11-03 at 13:21 +0000, Colin Ian King wrote:
> Don't populate the read-only array speeds on the stack but instead
> make it static. Also makes the object code a little smaller.
[]
> diff --git a/drivers/cpufreq/longhaul.c b/drivers/cpufreq/longhaul.c
[]
> @@ -407,7 +407,7 @@ static int guess_fsb(int mult)
> {
> int speed = cpu_khz / 1000;
> int i;
> - int speeds[] = { 666, 1000, 1333, 2000 };
> + static const int speeds[] = { 666, 1000, 1333, 2000 };
> int f_max, f_min;
>
> for (i = 0; i < 4; i++) {

style trivia: the loop test is probably better using ARRAY_SIZE

for (i = 0; i < ARRAY_SIZE(speeds); i++)


2022-11-03 14:53:46

by Colin Ian King

[permalink] [raw]
Subject: Re: [PATCH] cpufreq: longhaul: Make array speeds static const

On 03/11/2022 14:15, Joe Perches wrote:
> On Thu, 2022-11-03 at 13:21 +0000, Colin Ian King wrote:
>> Don't populate the read-only array speeds on the stack but instead
>> make it static. Also makes the object code a little smaller.
> []
>> diff --git a/drivers/cpufreq/longhaul.c b/drivers/cpufreq/longhaul.c
> []
>> @@ -407,7 +407,7 @@ static int guess_fsb(int mult)
>> {
>> int speed = cpu_khz / 1000;
>> int i;
>> - int speeds[] = { 666, 1000, 1333, 2000 };
>> + static const int speeds[] = { 666, 1000, 1333, 2000 };
>> int f_max, f_min;
>>
>> for (i = 0; i < 4; i++) {
>
> style trivia: the loop test is probably better using ARRAY_SIZE
>
> for (i = 0; i < ARRAY_SIZE(speeds); i++)
>
I'll send a V2 for that. Good idea.

Colin

2022-11-03 14:56:51

by Colin Ian King

[permalink] [raw]
Subject: Re: [PATCH] cpufreq: longhaul: Make array speeds static const

On 03/11/2022 14:37, Viresh Kumar wrote:
> On 03-11-22, 13:21, Colin Ian King wrote:
>> Don't populate the read-only array speeds on the stack but instead
>> make it static. Also makes the object code a little smaller.
>
> How will that benefit ? I am just looking for a valid answer in commit log.

When the array is non-static there will be some executable code to put
these values into the array that's on the stack (e.g. at run time). When
it is static the array is filled at compile time and there is no
executable code required to populate the array at run time.



>
>> Signed-off-by: Colin Ian King <[email protected]>
>> ---
>> drivers/cpufreq/longhaul.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/cpufreq/longhaul.c b/drivers/cpufreq/longhaul.c
>> index 3e000e1a75c6..25f8ef7bac47 100644
>> --- a/drivers/cpufreq/longhaul.c
>> +++ b/drivers/cpufreq/longhaul.c
>> @@ -407,7 +407,7 @@ static int guess_fsb(int mult)
>> {
>> int speed = cpu_khz / 1000;
>> int i;
>> - int speeds[] = { 666, 1000, 1333, 2000 };
>> + static const int speeds[] = { 666, 1000, 1333, 2000 };
>
> Why not make it global then ?

Making it static inside the function limits the scope to the function
and so it's not globally visible. We don't like making stuff global
unless we really need to.

Colin



2022-11-03 15:26:01

by Viresh Kumar

[permalink] [raw]
Subject: Re: [PATCH] cpufreq: longhaul: Make array speeds static const

On 03-11-22, 13:21, Colin Ian King wrote:
> Don't populate the read-only array speeds on the stack but instead
> make it static. Also makes the object code a little smaller.

How will that benefit ? I am just looking for a valid answer in commit log.

> Signed-off-by: Colin Ian King <[email protected]>
> ---
> drivers/cpufreq/longhaul.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/cpufreq/longhaul.c b/drivers/cpufreq/longhaul.c
> index 3e000e1a75c6..25f8ef7bac47 100644
> --- a/drivers/cpufreq/longhaul.c
> +++ b/drivers/cpufreq/longhaul.c
> @@ -407,7 +407,7 @@ static int guess_fsb(int mult)
> {
> int speed = cpu_khz / 1000;
> int i;
> - int speeds[] = { 666, 1000, 1333, 2000 };
> + static const int speeds[] = { 666, 1000, 1333, 2000 };

Why not make it global then ?

--
viresh