Message ID | 1408707540-12393-1-git-send-email-mika.westerberg@linux.intel.com (mailing list archive) |
---|---|
State | Accepted, archived |
Headers | show |
On 2014/8/22 19:39, Mika Westerberg wrote: > From: Mahesh Kumar P <mahesh.kumar.p@intel.com> > > Cherrytrail/Braswell is a successor of Intel Baytrail but has slighly > different CPU idle values and latencies. > > Signed-off-by: Kumar P Mahesh <mahesh.kumar.p@intel.com> > Signed-off-by: Alan Cox <alan@linux.intel.com> > Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com> > --- > I learned from Mahesh that C1e, C4 and S0i2 states are deprecated so those > are now removed. If the platform has ACPI supported, I believe Len wants to see what C-states number exported by ACPI. Please boot the machine with "intel_idle.max_cstate=0" to disable intel_idle, then post the output of the following commands dmesg | grep idle grep . /sys/devices/system/cpu/cpu0/cpuidle/*/* Thanks, -Aubrey > > drivers/idle/intel_idle.c | 42 ++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 42 insertions(+) > > diff --git a/drivers/idle/intel_idle.c b/drivers/idle/intel_idle.c > index 9b7ee7e427df..e472580c1826 100644 > --- a/drivers/idle/intel_idle.c > +++ b/drivers/idle/intel_idle.c > @@ -197,6 +197,42 @@ static struct cpuidle_state snb_cstates[] = { > .enter = NULL } > }; > > +static struct cpuidle_state cht_cstates[] = { > + { /* MWAIT C1 */ > + .name = "C1-CHT", > + .desc = "MWAIT 0x00", > + .flags = MWAIT2flg(0x00) | CPUIDLE_FLAG_TIME_VALID, > + .exit_latency = 1, > + .target_residency = 4, > + .enter = &intel_idle }, > + { /* MWAIT C6 */ > + .name = "C6-CHT", > + .desc = "MWAIT 0x52", > + .flags = MWAIT2flg(0x52) | CPUIDLE_FLAG_TIME_VALID > + | CPUIDLE_FLAG_TLB_FLUSHED, > + .exit_latency = 140, > + .target_residency = 560, > + .enter = &intel_idle }, > + { /* MWAIT C7-S0i1 */ > + .name = "S0i1-CHT", > + .desc = "MWAIT 0x60", > + .flags = MWAIT2flg(0x60) | CPUIDLE_FLAG_TIME_VALID > + | CPUIDLE_FLAG_TLB_FLUSHED, > + .exit_latency = 1200, > + .target_residency = 4000, > + .enter = &intel_idle }, > + { /* MWAIT C9-S0i3 */ > + .name = "S0i3-CHT", > + .desc = "MWAIT 0x64", > + .flags = MWAIT2flg(0x64) | CPUIDLE_FLAG_TIME_VALID > + | CPUIDLE_FLAG_TLB_FLUSHED, > + .exit_latency = 10000, > + .target_residency = 20000, > + .enter = &intel_idle }, > + { > + .enter = NULL } > +}; > + > static struct cpuidle_state byt_cstates[] = { > { > .name = "C1-BYT", > @@ -677,6 +713,11 @@ static const struct idle_cpu idle_cpu_byt = { > .byt_auto_demotion_disable_flag = true, > }; > > +static const struct idle_cpu idle_cpu_cht = { > + .state_table = cht_cstates, > + .disable_promotion_to_c1e = true, > +}; > + > static const struct idle_cpu idle_cpu_ivb = { > .state_table = ivb_cstates, > .disable_promotion_to_c1e = true, > @@ -725,6 +766,7 @@ static const struct x86_cpu_id intel_idle_ids[] = { > ICPU(0x3f, idle_cpu_hsw), > ICPU(0x45, idle_cpu_hsw), > ICPU(0x46, idle_cpu_hsw), > + ICPU(0x4c, idle_cpu_cht), > ICPU(0x4d, idle_cpu_avn), > ICPU(0x3d, idle_cpu_bdw), > ICPU(0x4f, idle_cpu_bdw), > -- To unsubscribe from this list: send the line "unsubscribe linux-pm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Fri, Aug 22, 2014 at 10:06:21PM +0800, Li, Aubrey wrote: > On 2014/8/22 19:39, Mika Westerberg wrote: > > From: Mahesh Kumar P <mahesh.kumar.p@intel.com> > > > > Cherrytrail/Braswell is a successor of Intel Baytrail but has slighly > > different CPU idle values and latencies. > > > > Signed-off-by: Kumar P Mahesh <mahesh.kumar.p@intel.com> > > Signed-off-by: Alan Cox <alan@linux.intel.com> > > Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com> > > --- > > I learned from Mahesh that C1e, C4 and S0i2 states are deprecated so those > > are now removed. > > If the platform has ACPI supported, I believe Len wants to see what > C-states number exported by ACPI. > > Please boot the machine with "intel_idle.max_cstate=0" to disable > intel_idle, then post the output of the following commands OK, here goes: > dmesg | grep idle [ 0.523624] cpuidle: using governor ladder [ 0.528215] cpuidle: using governor menu [ 16.649461] intel_idle: disabled [ 16.736481] ACPI: acpi_idle registered with cpuidle > grep . /sys/devices/system/cpu/cpu0/cpuidle/*/* /sys/devices/system/cpu/cpu0/cpuidle/state0/desc:CPUIDLE CORE POLL IDLE /sys/devices/system/cpu/cpu0/cpuidle/state0/disable:0 /sys/devices/system/cpu/cpu0/cpuidle/state0/latency:0 /sys/devices/system/cpu/cpu0/cpuidle/state0/name:POLL /sys/devices/system/cpu/cpu0/cpuidle/state0/power:4294967295 /sys/devices/system/cpu/cpu0/cpuidle/state0/residency:0 /sys/devices/system/cpu/cpu0/cpuidle/state0/time:0 /sys/devices/system/cpu/cpu0/cpuidle/state0/usage:0 /sys/devices/system/cpu/cpu0/cpuidle/state1/desc:ACPI FFH INTEL MWAIT 0x0 /sys/devices/system/cpu/cpu0/cpuidle/state1/disable:0 /sys/devices/system/cpu/cpu0/cpuidle/state1/latency:1 /sys/devices/system/cpu/cpu0/cpuidle/state1/name:C1 /sys/devices/system/cpu/cpu0/cpuidle/state1/power:0 /sys/devices/system/cpu/cpu0/cpuidle/state1/residency:2 /sys/devices/system/cpu/cpu0/cpuidle/state1/time:1255076 /sys/devices/system/cpu/cpu0/cpuidle/state1/usage:763 /sys/devices/system/cpu/cpu0/cpuidle/state2/desc:ACPI FFH INTEL MWAIT 0x58 /sys/devices/system/cpu/cpu0/cpuidle/state2/disable:0 /sys/devices/system/cpu/cpu0/cpuidle/state2/latency:500 /sys/devices/system/cpu/cpu0/cpuidle/state2/name:C2 /sys/devices/system/cpu/cpu0/cpuidle/state2/power:0 /sys/devices/system/cpu/cpu0/cpuidle/state2/residency:1000 /sys/devices/system/cpu/cpu0/cpuidle/state2/time:1694866 /sys/devices/system/cpu/cpu0/cpuidle/state2/usage:639 /sys/devices/system/cpu/cpu0/cpuidle/state3/desc:ACPI FFH INTEL MWAIT 0x64 /sys/devices/system/cpu/cpu0/cpuidle/state3/disable:0 /sys/devices/system/cpu/cpu0/cpuidle/state3/latency:5000 /sys/devices/system/cpu/cpu0/cpuidle/state3/name:C3 /sys/devices/system/cpu/cpu0/cpuidle/state3/power:0 /sys/devices/system/cpu/cpu0/cpuidle/state3/residency:10000 /sys/devices/system/cpu/cpu0/cpuidle/state3/time:380547473 /sys/devices/system/cpu/cpu0/cpuidle/state3/usage:744 -- To unsubscribe from this list: send the line "unsubscribe linux-pm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 2014/8/25 18:12, Mika Westerberg wrote: > On Fri, Aug 22, 2014 at 10:06:21PM +0800, Li, Aubrey wrote: >> On 2014/8/22 19:39, Mika Westerberg wrote: >>> From: Mahesh Kumar P <mahesh.kumar.p@intel.com> >>> >>> Cherrytrail/Braswell is a successor of Intel Baytrail but has slighly >>> different CPU idle values and latencies. >>> >>> Signed-off-by: Kumar P Mahesh <mahesh.kumar.p@intel.com> >>> Signed-off-by: Alan Cox <alan@linux.intel.com> >>> Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com> >>> --- >>> I learned from Mahesh that C1e, C4 and S0i2 states are deprecated so those >>> are now removed. >> >> If the platform has ACPI supported, I believe Len wants to see what >> C-states number exported by ACPI. >> >> Please boot the machine with "intel_idle.max_cstate=0" to disable >> intel_idle, then post the output of the following commands > > OK, here goes: ACPI exposes 0x58 as C6 mwait hint while the patch proposes 0x52 for C6. Can you please remove "intel_idle.max_cstate=0" and run "dmesg | grep idle" again to see how many C6 supports in CPUID enumeration? Thanks, -Aubrey > >> dmesg | grep idle > > [ 0.523624] cpuidle: using governor ladder > [ 0.528215] cpuidle: using governor menu > [ 16.649461] intel_idle: disabled > [ 16.736481] ACPI: acpi_idle registered with cpuidle > >> grep . /sys/devices/system/cpu/cpu0/cpuidle/*/* > > /sys/devices/system/cpu/cpu0/cpuidle/state0/desc:CPUIDLE CORE POLL IDLE > /sys/devices/system/cpu/cpu0/cpuidle/state0/disable:0 > /sys/devices/system/cpu/cpu0/cpuidle/state0/latency:0 > /sys/devices/system/cpu/cpu0/cpuidle/state0/name:POLL > /sys/devices/system/cpu/cpu0/cpuidle/state0/power:4294967295 > /sys/devices/system/cpu/cpu0/cpuidle/state0/residency:0 > /sys/devices/system/cpu/cpu0/cpuidle/state0/time:0 > /sys/devices/system/cpu/cpu0/cpuidle/state0/usage:0 > /sys/devices/system/cpu/cpu0/cpuidle/state1/desc:ACPI FFH INTEL MWAIT 0x0 > /sys/devices/system/cpu/cpu0/cpuidle/state1/disable:0 > /sys/devices/system/cpu/cpu0/cpuidle/state1/latency:1 > /sys/devices/system/cpu/cpu0/cpuidle/state1/name:C1 > /sys/devices/system/cpu/cpu0/cpuidle/state1/power:0 > /sys/devices/system/cpu/cpu0/cpuidle/state1/residency:2 > /sys/devices/system/cpu/cpu0/cpuidle/state1/time:1255076 > /sys/devices/system/cpu/cpu0/cpuidle/state1/usage:763 > /sys/devices/system/cpu/cpu0/cpuidle/state2/desc:ACPI FFH INTEL MWAIT 0x58 > /sys/devices/system/cpu/cpu0/cpuidle/state2/disable:0 > /sys/devices/system/cpu/cpu0/cpuidle/state2/latency:500 > /sys/devices/system/cpu/cpu0/cpuidle/state2/name:C2 > /sys/devices/system/cpu/cpu0/cpuidle/state2/power:0 > /sys/devices/system/cpu/cpu0/cpuidle/state2/residency:1000 > /sys/devices/system/cpu/cpu0/cpuidle/state2/time:1694866 > /sys/devices/system/cpu/cpu0/cpuidle/state2/usage:639 > /sys/devices/system/cpu/cpu0/cpuidle/state3/desc:ACPI FFH INTEL MWAIT 0x64 > /sys/devices/system/cpu/cpu0/cpuidle/state3/disable:0 > /sys/devices/system/cpu/cpu0/cpuidle/state3/latency:5000 > /sys/devices/system/cpu/cpu0/cpuidle/state3/name:C3 > /sys/devices/system/cpu/cpu0/cpuidle/state3/power:0 > /sys/devices/system/cpu/cpu0/cpuidle/state3/residency:10000 > /sys/devices/system/cpu/cpu0/cpuidle/state3/time:380547473 > /sys/devices/system/cpu/cpu0/cpuidle/state3/usage:744 > -- > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ > > -- To unsubscribe from this list: send the line "unsubscribe linux-pm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Tue, Aug 26, 2014 at 10:38:32AM +0800, Li, Aubrey wrote: > On 2014/8/25 18:12, Mika Westerberg wrote: > > On Fri, Aug 22, 2014 at 10:06:21PM +0800, Li, Aubrey wrote: > >> On 2014/8/22 19:39, Mika Westerberg wrote: > >>> From: Mahesh Kumar P <mahesh.kumar.p@intel.com> > >>> > >>> Cherrytrail/Braswell is a successor of Intel Baytrail but has slighly > >>> different CPU idle values and latencies. > >>> > >>> Signed-off-by: Kumar P Mahesh <mahesh.kumar.p@intel.com> > >>> Signed-off-by: Alan Cox <alan@linux.intel.com> > >>> Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com> > >>> --- > >>> I learned from Mahesh that C1e, C4 and S0i2 states are deprecated so those > >>> are now removed. > >> > >> If the platform has ACPI supported, I believe Len wants to see what > >> C-states number exported by ACPI. > >> > >> Please boot the machine with "intel_idle.max_cstate=0" to disable > >> intel_idle, then post the output of the following commands > > > > OK, here goes: > > ACPI exposes 0x58 as C6 mwait hint while the patch proposes 0x52 for C6. > Can you please remove "intel_idle.max_cstate=0" and run "dmesg | grep > idle" again to see how many C6 supports in CPUID enumeration? [ 16.685769] intel_idle: MWAIT substates: 0x33000020 [ 16.691236] intel_idle: v0.4 model 0x4C [ 16.695539] intel_idle: lapic_timer_reliable_states 0xffffffff -- To unsubscribe from this list: send the line "unsubscribe linux-pm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 2014/8/26 17:00, Mika Westerberg wrote: > On Tue, Aug 26, 2014 at 10:38:32AM +0800, Li, Aubrey wrote: >> On 2014/8/25 18:12, Mika Westerberg wrote: >>> On Fri, Aug 22, 2014 at 10:06:21PM +0800, Li, Aubrey wrote: >>>> On 2014/8/22 19:39, Mika Westerberg wrote: >>>>> From: Mahesh Kumar P <mahesh.kumar.p@intel.com> >>>>> >>>>> Cherrytrail/Braswell is a successor of Intel Baytrail but has slighly >>>>> different CPU idle values and latencies. >>>>> >>>>> Signed-off-by: Kumar P Mahesh <mahesh.kumar.p@intel.com> >>>>> Signed-off-by: Alan Cox <alan@linux.intel.com> >>>>> Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com> >>>>> --- >>>>> I learned from Mahesh that C1e, C4 and S0i2 states are deprecated so those >>>>> are now removed. >>>> >>>> If the platform has ACPI supported, I believe Len wants to see what >>>> C-states number exported by ACPI. >>>> >>>> Please boot the machine with "intel_idle.max_cstate=0" to disable >>>> intel_idle, then post the output of the following commands >>> >>> OK, here goes: >> >> ACPI exposes 0x58 as C6 mwait hint while the patch proposes 0x52 for C6. >> Can you please remove "intel_idle.max_cstate=0" and run "dmesg | grep >> idle" again to see how many C6 supports in CPUID enumeration? > > [ 16.685769] intel_idle: MWAIT substates: 0x33000020 > [ 16.691236] intel_idle: v0.4 model 0x4C > [ 16.695539] intel_idle: lapic_timer_reliable_states 0xffffffff > enough to turn over to Len to finalize, thanks Mika. -Aubrey -- To unsubscribe from this list: send the line "unsubscribe linux-pm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/idle/intel_idle.c b/drivers/idle/intel_idle.c index 9b7ee7e427df..e472580c1826 100644 --- a/drivers/idle/intel_idle.c +++ b/drivers/idle/intel_idle.c @@ -197,6 +197,42 @@ static struct cpuidle_state snb_cstates[] = { .enter = NULL } }; +static struct cpuidle_state cht_cstates[] = { + { /* MWAIT C1 */ + .name = "C1-CHT", + .desc = "MWAIT 0x00", + .flags = MWAIT2flg(0x00) | CPUIDLE_FLAG_TIME_VALID, + .exit_latency = 1, + .target_residency = 4, + .enter = &intel_idle }, + { /* MWAIT C6 */ + .name = "C6-CHT", + .desc = "MWAIT 0x52", + .flags = MWAIT2flg(0x52) | CPUIDLE_FLAG_TIME_VALID + | CPUIDLE_FLAG_TLB_FLUSHED, + .exit_latency = 140, + .target_residency = 560, + .enter = &intel_idle }, + { /* MWAIT C7-S0i1 */ + .name = "S0i1-CHT", + .desc = "MWAIT 0x60", + .flags = MWAIT2flg(0x60) | CPUIDLE_FLAG_TIME_VALID + | CPUIDLE_FLAG_TLB_FLUSHED, + .exit_latency = 1200, + .target_residency = 4000, + .enter = &intel_idle }, + { /* MWAIT C9-S0i3 */ + .name = "S0i3-CHT", + .desc = "MWAIT 0x64", + .flags = MWAIT2flg(0x64) | CPUIDLE_FLAG_TIME_VALID + | CPUIDLE_FLAG_TLB_FLUSHED, + .exit_latency = 10000, + .target_residency = 20000, + .enter = &intel_idle }, + { + .enter = NULL } +}; + static struct cpuidle_state byt_cstates[] = { { .name = "C1-BYT", @@ -677,6 +713,11 @@ static const struct idle_cpu idle_cpu_byt = { .byt_auto_demotion_disable_flag = true, }; +static const struct idle_cpu idle_cpu_cht = { + .state_table = cht_cstates, + .disable_promotion_to_c1e = true, +}; + static const struct idle_cpu idle_cpu_ivb = { .state_table = ivb_cstates, .disable_promotion_to_c1e = true, @@ -725,6 +766,7 @@ static const struct x86_cpu_id intel_idle_ids[] = { ICPU(0x3f, idle_cpu_hsw), ICPU(0x45, idle_cpu_hsw), ICPU(0x46, idle_cpu_hsw), + ICPU(0x4c, idle_cpu_cht), ICPU(0x4d, idle_cpu_avn), ICPU(0x3d, idle_cpu_bdw), ICPU(0x4f, idle_cpu_bdw),