intel_idle: shrink states tables
PATCH 1/3 intel_idle: shrink states tables
There is no reason to define CPUIDLE_STATE_MAX (currently 10) entries in states tables if the driver always stops iterating over table when it encounters first .enter == NULL entry.
$ size drivers/idle/intel_idle.o.* text data bss dec hex filename 2886 5440 32 8358 20a6 drivers/idle/intel_idle.o.before 2886 3752 32 6670 1a0e drivers/idle/intel_idle.o.after
Signed-off-by Bartlomiej Zolnierkiewicz <[email protected]>
Signed-off-by Kyungmin Park <[email protected]>
Cc Len Brown <[email protected]>
--- drivers/idle/intel_idle.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-)
drivers/idle/intel_idle.c +6 -6
@@ -123,7 +123,7 @@ static struct cpuidle_state *cpuidle_state_table;* which is also the index into the MWAIT hint array. * Thus C0 is a dummy. */ -static struct cpuidle_state nehalem_cstates[CPUIDLE_STATE_MAX ] = { +static struct cpuidle_state nehalem_cstates[] = { { .name ="C1-NHM" , .desc ="MWAIT 0x00" ,
@@ -156,7 +156,7 @@ static struct cpuidle_state nehalem_cstates[CPUIDLE_STATE_MAX] = { .enter = NULL } }; -static struct cpuidle_state snb_cstates[CPUIDLE_STATE_MAX ] = { +static struct cpuidle_state snb_cstates[] = { { .name ="C1-SNB" , .desc ="MWAIT 0x00" ,
@@ -196,7 +196,7 @@ static struct cpuidle_state snb_cstates[CPUIDLE_STATE_MAX] = { .enter = NULL } }; -static struct cpuidle_state ivb_cstates[CPUIDLE_STATE_MAX ] = { +static struct cpuidle_state ivb_cstates[] = { { .name ="C1-IVB" , .desc ="MWAIT 0x00" ,
@@ -236,7 +236,7 @@ static struct cpuidle_state ivb_cstates[CPUIDLE_STATE_MAX] = { .enter = NULL } }; -static struct cpuidle_state hsw_cstates[CPUIDLE_STATE_MAX ] = { +static struct cpuidle_state hsw_cstates[] = { { .name ="C1-HSW" , .desc ="MWAIT 0x00" ,
@@ -297,7 +297,7 @@ static struct cpuidle_state hsw_cstates[CPUIDLE_STATE_MAX] = { .enter = NULL } }; -static struct cpuidle_state atom_cstates[CPUIDLE_STATE_MAX ] = { +static struct cpuidle_state atom_cstates[] = { { .name ="C1E-ATM" , .desc ="MWAIT 0x00" ,
@@ -628,7 +628,7 @@ static int intel_idle_cpu_init(int cpu)int num_substates, mwait_hint, mwait_cstate, mwait_substate;if (cpuidle_state_table[cstate].enter ==NULL ) -continue ; +break ;if (cstate +1 > max_cstate) {printk (PREFIX "max_cstate %d reached\n" , max_cstate);
Signature · 1 line
1.8.2.3
Quoted 4 lines · Bartlomiej Zolnierkiewicz
There is no reason to define
CPUIDLE_STATE_MAX(currently 10) entries in states tables if the driver always stops iterating over table when it encounters first .enter == NULL entry.
Quoted 8 lines
$ size drivers/idle/intel_idle.o.* text data bss dec hex filename 2886 5440 32 8358 20a6 drivers/idle/intel_idle.o.before 2886 3752 32 6670 1a0e drivers/idle/intel_idle.o.afterSigned-off-by Bartlomiej Zolnierkiewicz <[email protected]>Signed-off-by Kyungmin Park <[email protected]>Cc Len Brown <[email protected]>
Thanks, I'll queue this series up for 3.13.
Quoted 63 lines
--- drivers/idle/intel_idle.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-)drivers/idle/intel_idle.c +6
-6@@ -123,7 +123,7 @@ static struct cpuidle_state *cpuidle_state_table;* which is also the index into the MWAIT hint array. * Thus C0 is a dummy. */ -static struct cpuidle_state nehalem_cstates[CPUIDLE_STATE_MAX ] = { +static struct cpuidle_state nehalem_cstates[] = { { .name ="C1-NHM" , .desc ="MWAIT 0x00" ,@@ -156,7 +156,7 @@ static struct cpuidle_state nehalem_cstates[CPUIDLE_STATE_MAX] = { .enter = NULL } }; -static struct cpuidle_state snb_cstates[CPUIDLE_STATE_MAX ] = { +static struct cpuidle_state snb_cstates[] = { { .name ="C1-SNB" , .desc ="MWAIT 0x00" ,@@ -196,7 +196,7 @@ static struct cpuidle_state snb_cstates[CPUIDLE_STATE_MAX] = { .enter = NULL } }; -static struct cpuidle_state ivb_cstates[CPUIDLE_STATE_MAX ] = { +static struct cpuidle_state ivb_cstates[] = { { .name ="C1-IVB" , .desc ="MWAIT 0x00" ,@@ -236,7 +236,7 @@ static struct cpuidle_state ivb_cstates[CPUIDLE_STATE_MAX] = { .enter = NULL } }; -static struct cpuidle_state hsw_cstates[CPUIDLE_STATE_MAX ] = { +static struct cpuidle_state hsw_cstates[] = { { .name ="C1-HSW" , .desc ="MWAIT 0x00" ,@@ -297,7 +297,7 @@ static struct cpuidle_state hsw_cstates[CPUIDLE_STATE_MAX] = { .enter = NULL } }; -static struct cpuidle_state atom_cstates[CPUIDLE_STATE_MAX ] = { +static struct cpuidle_state atom_cstates[] = { { .name ="C1E-ATM" , .desc ="MWAIT 0x00" ,@@ -628,7 +628,7 @@ static int intel_idle_cpu_init(int cpu)int num_substates, mwait_hint, mwait_cstate, mwait_substate;if (cpuidle_state_table[cstate].enter ==NULL ) -continue ; +break ;if (cstate +1 > max_cstate) {printk (PREFIX "max_cstate %d reached\n" , max_cstate);
Signature · 2 lines
I speak only for myself. Rafael J. Wysocki, Intel Open Source Technology Center.
Quoted 9 lines · Bartlomiej Zolnierkiewicz
There is no reason to define
CPUIDLE_STATE_MAX(currently 10) entries in states tables if the driver always stops iterating over table when it encounters first .enter == NULL entry.$ size drivers/idle/intel_idle.o.* text data bss dec hex filename 2886 5440 32 8358 20a6 drivers/idle/intel_idle.o.before 2886 3752 32 6670 1a0e drivers/idle/intel_idle.o.after
Quoted 4 lines
Signed-off-by Bartlomiej Zolnierkiewicz <[email protected]>Signed-off-by Kyungmin Park <[email protected]>Cc Len Brown <[email protected]>---
Acked-by Daniel Lezcano <[email protected]>
Quoted 62 lines
drivers/idle/intel_idle.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-)drivers/idle/intel_idle.c +6
-6@@ -123,7 +123,7 @@ static struct cpuidle_state *cpuidle_state_table;* which is also the index into the MWAIT hint array. * Thus C0 is a dummy. */ -static struct cpuidle_state nehalem_cstates[CPUIDLE_STATE_MAX ] = { +static struct cpuidle_state nehalem_cstates[] = { { .name ="C1-NHM" , .desc ="MWAIT 0x00" ,@@ -156,7 +156,7 @@ static struct cpuidle_state nehalem_cstates[CPUIDLE_STATE_MAX] = { .enter = NULL } }; -static struct cpuidle_state snb_cstates[CPUIDLE_STATE_MAX ] = { +static struct cpuidle_state snb_cstates[] = { { .name ="C1-SNB" , .desc ="MWAIT 0x00" ,@@ -196,7 +196,7 @@ static struct cpuidle_state snb_cstates[CPUIDLE_STATE_MAX] = { .enter = NULL } }; -static struct cpuidle_state ivb_cstates[CPUIDLE_STATE_MAX ] = { +static struct cpuidle_state ivb_cstates[] = { { .name ="C1-IVB" , .desc ="MWAIT 0x00" ,@@ -236,7 +236,7 @@ static struct cpuidle_state ivb_cstates[CPUIDLE_STATE_MAX] = { .enter = NULL } }; -static struct cpuidle_state hsw_cstates[CPUIDLE_STATE_MAX ] = { +static struct cpuidle_state hsw_cstates[] = { { .name ="C1-HSW" , .desc ="MWAIT 0x00" ,@@ -297,7 +297,7 @@ static struct cpuidle_state hsw_cstates[CPUIDLE_STATE_MAX] = { .enter = NULL } }; -static struct cpuidle_state atom_cstates[CPUIDLE_STATE_MAX ] = { +static struct cpuidle_state atom_cstates[] = { { .name ="C1E-ATM" , .desc ="MWAIT 0x00" ,@@ -628,7 +628,7 @@ static int intel_idle_cpu_init(int cpu)int num_substates, mwait_hint, mwait_cstate, mwait_substate;if (cpuidle_state_table[cstate].enter ==NULL ) -continue ; +break ;if (cstate +1 > max_cstate) {printk (PREFIX "max_cstate %d reached\n" , max_cstate);
Signature · 5 lines
<http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook | <http://twitter.com/#!/linaroorg> Twitter | <http://www.linaro.org/linaro-blog/> Blog