* [PATCH REGRESSION FIX] x86 idle: restore mwait_idle() [not found] <1ae2a8af42281d6b9888ac8c76bab7bd2f431d44.1389763084.git.len.brown@intel.com> @ 2014-01-15 5:37 ` Len Brown 2014-01-15 9:28 ` Mike Galbraith 2014-01-16 22:00 ` Andy Lutomirski 0 siblings, 2 replies; 12+ messages in thread From: Len Brown @ 2014-01-15 5:37 UTC (permalink / raw) To: x86 Cc: linux-pm, linux-kernel, Len Brown, Mike Galbraith, Ian Malone, Josh Boyer, stable From: Len Brown <len.brown@intel.com> In Linux-3.9 we removed the mwait_idle() loop: 'x86 idle: remove mwait_idle() and "idle=mwait" cmdline param' (69fb3676df3329a7142803bb3502fa59dc0db2e3) The reasoning was that modern machines should be sufficiently happy during the boot process using the default_idle() HALT loop, until cpuidle loads and either acpi_idle or intel_idle invoke the newer MWAIT-with-hints idle loop. But two machines reported problems: 1. Certain Core2-era machines support MWAIT-C1 and HALT only. MWAIT-C1 is preferred for optimal power and performance. But if they support just C1, cpuidle never loads and so they use the boot-time default idle loop forever. 2. Some laptops will boot-hang if HALT is used, but will boot successfully if MWAIT is used. This appears to be a hidden assumption in BIOS SMI, that is presumably valid on the proprietary OS where the BIOS was validated. https://bugzilla.kernel.org/show_bug.cgi?id=60770 So here we effectively revert the patch above, restoring the mwait_idle() loop. However, we don't bother restoring the idle=mwait cmdline parameter, since it appears to add no value. Maintainer notes: For 3.9, simply revert 69fb3676df for 3.10, patch -F3 applies, fuzz needed due to __cpuinit use in context For 3.11, 3.12, 3.13, this patch applies cleanly Cc: Mike Galbraith <bitbucket@online.de> Cc: Ian Malone <ibmalone@gmail.com> Cc: Josh Boyer <jwboyer@redhat.com> Cc: <stable@vger.kernel.org> # 3.9, 3.10, 3.11, 3.12, 3.13 Signed-off-by: Len Brown <len.brown@intel.com> --- arch/x86/kernel/process.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c index 3fb8d95..db471a8 100644 --- a/arch/x86/kernel/process.c +++ b/arch/x86/kernel/process.c @@ -398,6 +398,49 @@ static void amd_e400_idle(void) default_idle(); } +/* + * Intel Core2 and older machines prefer MWAIT over HALT for C1. + * We can't rely on cpuidle installing MWAIT, because it will not load + * on systems that support only C1 -- so the boot default must be MWAIT. + * + * Some AMD machines are the opposite, they depend on using HALT. + * + * So for default C1, which is used during boot until cpuidle loads, + * use MWAIT-C1 on Intel HW that has it, else use HALT. + */ +static int prefer_mwait_c1_over_halt(const struct cpuinfo_x86 *c) +{ + if (c->x86_vendor != X86_VENDOR_INTEL) + return 0; + + if (!cpu_has(c, X86_FEATURE_MWAIT)) + return 0; + + return 1; +} + +/* + * MONITOR/MWAIT with no hints, used for default default C1 state. + * This invokes MWAIT with interrutps enabled and no flags, + * which is backwards compatible with the original MWAIT implementation. + */ + +static void mwait_idle(void) +{ + if (!need_resched()) { + if (this_cpu_has(X86_FEATURE_CLFLUSH_MONITOR)) + clflush((void *)¤t_thread_info()->flags); + + __monitor((void *)¤t_thread_info()->flags, 0, 0); + smp_mb(); + if (!need_resched()) + __sti_mwait(0, 0); + else + local_irq_enable(); + } else + local_irq_enable(); +} + void select_idle_routine(const struct cpuinfo_x86 *c) { #ifdef CONFIG_SMP @@ -411,6 +454,9 @@ void select_idle_routine(const struct cpuinfo_x86 *c) /* E400: APIC timer interrupt does not wake up CPU from C1e */ pr_info("using AMD E400 aware idle routine\n"); x86_idle = amd_e400_idle; + } else if (prefer_mwait_c1_over_halt(c)) { + pr_info("using mwait in idle threads\n"); + x86_idle = mwait_idle; } else x86_idle = default_idle; } -- 1.8.5.2.309.ga25014b ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH REGRESSION FIX] x86 idle: restore mwait_idle() 2014-01-15 5:37 ` [PATCH REGRESSION FIX] x86 idle: restore mwait_idle() Len Brown @ 2014-01-15 9:28 ` Mike Galbraith 2014-01-16 22:00 ` Andy Lutomirski 1 sibling, 0 replies; 12+ messages in thread From: Mike Galbraith @ 2014-01-15 9:28 UTC (permalink / raw) To: Len Brown Cc: x86, linux-pm, linux-kernel, Len Brown, Ian Malone, Josh Boyer, stable On Wed, 2014-01-15 at 00:37 -0500, Len Brown wrote: > From: Len Brown <len.brown@intel.com> > > In Linux-3.9 we removed the mwait_idle() loop: > 'x86 idle: remove mwait_idle() and "idle=mwait" cmdline param' > (69fb3676df3329a7142803bb3502fa59dc0db2e3) > > The reasoning was that modern machines should be sufficiently > happy during the boot process using the default_idle() HALT loop, > until cpuidle loads and either acpi_idle or intel_idle > invoke the newer MWAIT-with-hints idle loop. > > But two machines reported problems: > 1. Certain Core2-era machines support MWAIT-C1 and HALT only. > MWAIT-C1 is preferred for optimal power and performance. > But if they support just C1, cpuidle never loads and > so they use the boot-time default idle loop forever. Q6600 box (allegedly) has a slightly greenish tinge again. Tested-by: Mike Galbraith <bitbucket@online.de> > 2. Some laptops will boot-hang if HALT is used, > but will boot successfully if MWAIT is used. > This appears to be a hidden assumption in BIOS SMI, > that is presumably valid on the proprietary OS > where the BIOS was validated. > > https://bugzilla.kernel.org/show_bug.cgi?id=60770 > > So here we effectively revert the patch above, restoring > the mwait_idle() loop. However, we don't bother restoring > the idle=mwait cmdline parameter, since it appears to add > no value. > > Maintainer notes: > For 3.9, simply revert 69fb3676df > for 3.10, patch -F3 applies, fuzz needed due to __cpuinit use in context > For 3.11, 3.12, 3.13, this patch applies cleanly > > Cc: Mike Galbraith <bitbucket@online.de> > Cc: Ian Malone <ibmalone@gmail.com> > Cc: Josh Boyer <jwboyer@redhat.com> > Cc: <stable@vger.kernel.org> # 3.9, 3.10, 3.11, 3.12, 3.13 > Signed-off-by: Len Brown <len.brown@intel.com> > --- > arch/x86/kernel/process.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 46 insertions(+) > > diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c > index 3fb8d95..db471a8 100644 > --- a/arch/x86/kernel/process.c > +++ b/arch/x86/kernel/process.c > @@ -398,6 +398,49 @@ static void amd_e400_idle(void) > default_idle(); > } > > +/* > + * Intel Core2 and older machines prefer MWAIT over HALT for C1. > + * We can't rely on cpuidle installing MWAIT, because it will not load > + * on systems that support only C1 -- so the boot default must be MWAIT. > + * > + * Some AMD machines are the opposite, they depend on using HALT. > + * > + * So for default C1, which is used during boot until cpuidle loads, > + * use MWAIT-C1 on Intel HW that has it, else use HALT. > + */ > +static int prefer_mwait_c1_over_halt(const struct cpuinfo_x86 *c) > +{ > + if (c->x86_vendor != X86_VENDOR_INTEL) > + return 0; > + > + if (!cpu_has(c, X86_FEATURE_MWAIT)) > + return 0; > + > + return 1; > +} > + > +/* > + * MONITOR/MWAIT with no hints, used for default default C1 state. > + * This invokes MWAIT with interrutps enabled and no flags, > + * which is backwards compatible with the original MWAIT implementation. > + */ > + > +static void mwait_idle(void) > +{ > + if (!need_resched()) { > + if (this_cpu_has(X86_FEATURE_CLFLUSH_MONITOR)) > + clflush((void *)¤t_thread_info()->flags); > + > + __monitor((void *)¤t_thread_info()->flags, 0, 0); > + smp_mb(); > + if (!need_resched()) > + __sti_mwait(0, 0); > + else > + local_irq_enable(); > + } else > + local_irq_enable(); > +} > + > void select_idle_routine(const struct cpuinfo_x86 *c) > { > #ifdef CONFIG_SMP > @@ -411,6 +454,9 @@ void select_idle_routine(const struct cpuinfo_x86 *c) > /* E400: APIC timer interrupt does not wake up CPU from C1e */ > pr_info("using AMD E400 aware idle routine\n"); > x86_idle = amd_e400_idle; > + } else if (prefer_mwait_c1_over_halt(c)) { > + pr_info("using mwait in idle threads\n"); > + x86_idle = mwait_idle; > } else > x86_idle = default_idle; > } ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH REGRESSION FIX] x86 idle: restore mwait_idle() 2014-01-15 5:37 ` [PATCH REGRESSION FIX] x86 idle: restore mwait_idle() Len Brown 2014-01-15 9:28 ` Mike Galbraith @ 2014-01-16 22:00 ` Andy Lutomirski 2014-01-17 4:20 ` Mike Galbraith 1 sibling, 1 reply; 12+ messages in thread From: Andy Lutomirski @ 2014-01-16 22:00 UTC (permalink / raw) To: Len Brown, x86 Cc: linux-pm, linux-kernel, Len Brown, Mike Galbraith, Ian Malone, Josh Boyer, stable On 01/14/2014 09:37 PM, Len Brown wrote: > From: Len Brown <len.brown@intel.com> > > In Linux-3.9 we removed the mwait_idle() loop: > 'x86 idle: remove mwait_idle() and "idle=mwait" cmdline param' > (69fb3676df3329a7142803bb3502fa59dc0db2e3) > > The reasoning was that modern machines should be sufficiently > happy during the boot process using the default_idle() HALT loop, > until cpuidle loads and either acpi_idle or intel_idle > invoke the newer MWAIT-with-hints idle loop. > > But two machines reported problems: > 1. Certain Core2-era machines support MWAIT-C1 and HALT only. > MWAIT-C1 is preferred for optimal power and performance. > But if they support just C1, cpuidle never loads and > so they use the boot-time default idle loop forever. > > 2. Some laptops will boot-hang if HALT is used, > but will boot successfully if MWAIT is used. > This appears to be a hidden assumption in BIOS SMI, > that is presumably valid on the proprietary OS > where the BIOS was validated. > > https://bugzilla.kernel.org/show_bug.cgi?id=60770 > > So here we effectively revert the patch above, restoring > the mwait_idle() loop. However, we don't bother restoring > the idle=mwait cmdline parameter, since it appears to add > no value. > > Maintainer notes: > For 3.9, simply revert 69fb3676df > for 3.10, patch -F3 applies, fuzz needed due to __cpuinit use in context > For 3.11, 3.12, 3.13, this patch applies cleanly > > Cc: Mike Galbraith <bitbucket@online.de> > Cc: Ian Malone <ibmalone@gmail.com> > Cc: Josh Boyer <jwboyer@redhat.com> > Cc: <stable@vger.kernel.org> # 3.9, 3.10, 3.11, 3.12, 3.13 > Signed-off-by: Len Brown <len.brown@intel.com> > --- > arch/x86/kernel/process.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 46 insertions(+) > > diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c > index 3fb8d95..db471a8 100644 > --- a/arch/x86/kernel/process.c > +++ b/arch/x86/kernel/process.c > @@ -398,6 +398,49 @@ static void amd_e400_idle(void) > default_idle(); > } > > +/* > + * Intel Core2 and older machines prefer MWAIT over HALT for C1. > + * We can't rely on cpuidle installing MWAIT, because it will not load > + * on systems that support only C1 -- so the boot default must be MWAIT. > + * > + * Some AMD machines are the opposite, they depend on using HALT. > + * > + * So for default C1, which is used during boot until cpuidle loads, > + * use MWAIT-C1 on Intel HW that has it, else use HALT. > + */ > +static int prefer_mwait_c1_over_halt(const struct cpuinfo_x86 *c) > +{ > + if (c->x86_vendor != X86_VENDOR_INTEL) > + return 0; > + > + if (!cpu_has(c, X86_FEATURE_MWAIT)) > + return 0; > + > + return 1; > +} > + > +/* > + * MONITOR/MWAIT with no hints, used for default default C1 state. > + * This invokes MWAIT with interrutps enabled and no flags, > + * which is backwards compatible with the original MWAIT implementation. > + */ > + > +static void mwait_idle(void) > +{ > + if (!need_resched()) { > + if (this_cpu_has(X86_FEATURE_CLFLUSH_MONITOR)) > + clflush((void *)¤t_thread_info()->flags); > + > + __monitor((void *)¤t_thread_info()->flags, 0, 0); > + smp_mb(); > + if (!need_resched()) > + __sti_mwait(0, 0); > + else > + local_irq_enable(); > + } else > + local_irq_enable(); > +} Admittedly, there may be relatively few users left, but SMP users on C1-only Core 2 machines can, in principle, benefit from the monitor functionality of mwait to avoid rescheduling IPIs. This stuff changed recently so it now works with the cpuidle drivers (it used to be terminally broken). Should something be twiddling TS_POLLING differently so that HLT gets the IPIs but mwait doesn't? --Andy > + > void select_idle_routine(const struct cpuinfo_x86 *c) > { > #ifdef CONFIG_SMP > @@ -411,6 +454,9 @@ void select_idle_routine(const struct cpuinfo_x86 *c) > /* E400: APIC timer interrupt does not wake up CPU from C1e */ > pr_info("using AMD E400 aware idle routine\n"); > x86_idle = amd_e400_idle; > + } else if (prefer_mwait_c1_over_halt(c)) { > + pr_info("using mwait in idle threads\n"); > + x86_idle = mwait_idle; > } else > x86_idle = default_idle; > } > ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH REGRESSION FIX] x86 idle: restore mwait_idle() 2014-01-16 22:00 ` Andy Lutomirski @ 2014-01-17 4:20 ` Mike Galbraith 2014-01-18 9:33 ` Mike Galbraith 0 siblings, 1 reply; 12+ messages in thread From: Mike Galbraith @ 2014-01-17 4:20 UTC (permalink / raw) To: Andy Lutomirski Cc: Len Brown, x86, linux-pm, linux-kernel, Len Brown, Ian Malone, Josh Boyer, stable On Thu, 2014-01-16 at 14:00 -0800, Andy Lutomirski wrote: > On 01/14/2014 09:37 PM, Len Brown wrote: > > From: Len Brown <len.brown@intel.com> > > > > In Linux-3.9 we removed the mwait_idle() loop: > > 'x86 idle: remove mwait_idle() and "idle=mwait" cmdline param' > > (69fb3676df3329a7142803bb3502fa59dc0db2e3) > > > > The reasoning was that modern machines should be sufficiently > > happy during the boot process using the default_idle() HALT loop, > > until cpuidle loads and either acpi_idle or intel_idle > > invoke the newer MWAIT-with-hints idle loop. > > > > But two machines reported problems: > > 1. Certain Core2-era machines support MWAIT-C1 and HALT only. > > MWAIT-C1 is preferred for optimal power and performance. > > But if they support just C1, cpuidle never loads and > > so they use the boot-time default idle loop forever. > > > > 2. Some laptops will boot-hang if HALT is used, > > but will boot successfully if MWAIT is used. > > This appears to be a hidden assumption in BIOS SMI, > > that is presumably valid on the proprietary OS > > where the BIOS was validated. > > > > https://bugzilla.kernel.org/show_bug.cgi?id=60770 > > > > So here we effectively revert the patch above, restoring > > the mwait_idle() loop. However, we don't bother restoring > > the idle=mwait cmdline parameter, since it appears to add > > no value. > > > > Maintainer notes: > > For 3.9, simply revert 69fb3676df > > for 3.10, patch -F3 applies, fuzz needed due to __cpuinit use in context > > For 3.11, 3.12, 3.13, this patch applies cleanly > > > > Cc: Mike Galbraith <bitbucket@online.de> > > Cc: Ian Malone <ibmalone@gmail.com> > > Cc: Josh Boyer <jwboyer@redhat.com> > > Cc: <stable@vger.kernel.org> # 3.9, 3.10, 3.11, 3.12, 3.13 > > Signed-off-by: Len Brown <len.brown@intel.com> > > --- > > arch/x86/kernel/process.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++ > > 1 file changed, 46 insertions(+) > > > > diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c > > index 3fb8d95..db471a8 100644 > > --- a/arch/x86/kernel/process.c > > +++ b/arch/x86/kernel/process.c > > @@ -398,6 +398,49 @@ static void amd_e400_idle(void) > > default_idle(); > > } > > > > +/* > > + * Intel Core2 and older machines prefer MWAIT over HALT for C1. > > + * We can't rely on cpuidle installing MWAIT, because it will not load > > + * on systems that support only C1 -- so the boot default must be MWAIT. > > + * > > + * Some AMD machines are the opposite, they depend on using HALT. > > + * > > + * So for default C1, which is used during boot until cpuidle loads, > > + * use MWAIT-C1 on Intel HW that has it, else use HALT. > > + */ > > +static int prefer_mwait_c1_over_halt(const struct cpuinfo_x86 *c) > > +{ > > + if (c->x86_vendor != X86_VENDOR_INTEL) > > + return 0; > > + > > + if (!cpu_has(c, X86_FEATURE_MWAIT)) > > + return 0; > > + > > + return 1; > > +} > > + > > +/* > > + * MONITOR/MWAIT with no hints, used for default default C1 state. > > + * This invokes MWAIT with interrutps enabled and no flags, > > + * which is backwards compatible with the original MWAIT implementation. > > + */ > > + > > +static void mwait_idle(void) > > +{ > > + if (!need_resched()) { > > + if (this_cpu_has(X86_FEATURE_CLFLUSH_MONITOR)) > > + clflush((void *)¤t_thread_info()->flags); > > + > > + __monitor((void *)¤t_thread_info()->flags, 0, 0); > > + smp_mb(); > > + if (!need_resched()) > > + __sti_mwait(0, 0); > > + else > > + local_irq_enable(); > > + } else > > + local_irq_enable(); > > +} > > Admittedly, there may be relatively few users left, but SMP users on > C1-only Core 2 machines can, in principle, benefit from the monitor ^hugely > functionality of mwait to avoid rescheduling IPIs. This stuff changed > recently so it now works with the cpuidle drivers (it used to be > terminally broken). Should something be twiddling TS_POLLING > differently so that HLT gets the IPIs but mwait doesn't? Urk, definitely. The IPI is the primary cause of the size large cross core scheduling performance regression for my aging, but lovely Q6600. taskset 0xc pipe-test 1 3.8.13 3.397977 usecs/loop -- avg 3.400336 588.2 KHz master+ 4.798547 usecs/loop -- avg 4.791692 417.4 KHz -Mike ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH REGRESSION FIX] x86 idle: restore mwait_idle() 2014-01-17 4:20 ` Mike Galbraith @ 2014-01-18 9:33 ` Mike Galbraith 2014-01-18 16:14 ` Mike Galbraith 0 siblings, 1 reply; 12+ messages in thread From: Mike Galbraith @ 2014-01-18 9:33 UTC (permalink / raw) To: Andy Lutomirski Cc: Len Brown, x86, linux-pm, linux-kernel, Len Brown, Ian Malone, Josh Boyer, stable, Peter Zijlstra On Fri, 2014-01-17 at 05:20 +0100, Mike Galbraith wrote: > taskset 0xc pipe-test 1 > > 3.8.13 3.397977 usecs/loop -- avg 3.400336 588.2 KHz > master+ 4.798547 usecs/loop -- avg 4.791692 417.4 KHz Bah, those are apple/grape, these are apple/apple. idle: kill unnecessary mwait_idle() resched IPIs Set/clear polling instead. Q6600, pipe-test scheduling cross core: 3.8.13 487.2 KHz 1.000 3.13.0-master 415.5 KHz .852 3.13.0-master+ 415.2 KHz .852 + restore mwait_idle 3.13.0-master++ 488.5 KHz 1.002 + restore mwait_idle + IPI fix Signed-off-by: Mike Galbraith <bitbucket@online.de> --- arch/x86/kernel/process.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) --- a/arch/x86/kernel/process.c +++ b/arch/x86/kernel/process.c @@ -427,18 +427,18 @@ static int prefer_mwait_c1_over_halt(con static void mwait_idle(void) { - if (!need_resched()) { + if (!current_set_polling_and_test()) { if (this_cpu_has(X86_FEATURE_CLFLUSH_MONITOR)) clflush((void *)¤t_thread_info()->flags); __monitor((void *)¤t_thread_info()->flags, 0, 0); - smp_mb(); if (!need_resched()) __sti_mwait(0, 0); else local_irq_enable(); } else local_irq_enable(); + __current_clr_polling(); } void select_idle_routine(const struct cpuinfo_x86 *c) ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH REGRESSION FIX] x86 idle: restore mwait_idle() 2014-01-18 9:33 ` Mike Galbraith @ 2014-01-18 16:14 ` Mike Galbraith 2015-03-14 23:44 ` Ian Malone 0 siblings, 1 reply; 12+ messages in thread From: Mike Galbraith @ 2014-01-18 16:14 UTC (permalink / raw) To: Andy Lutomirski Cc: Len Brown, x86, linux-pm, linux-kernel, Len Brown, Ian Malone, Josh Boyer, stable, Peter Zijlstra On Sat, 2014-01-18 at 10:33 +0100, Mike Galbraith wrote: > On Fri, 2014-01-17 at 05:20 +0100, Mike Galbraith wrote: > > > taskset 0xc pipe-test 1 > > > > 3.8.13 3.397977 usecs/loop -- avg 3.400336 588.2 KHz > > master+ 4.798547 usecs/loop -- avg 4.791692 417.4 KHz > > Bah, those are apple/grape, these are apple/apple. Or, to make it more correct for 3.10..13, add the clflush barriers as well for afflicted CPUs. idle: kill unnecessary mwait_idle() resched IPIs Set/clear polling instead. Q6600, pipe-test scheduling cross core: 3.8.13 487.2 KHz 1.000 3.13.0-master 415.5 KHz .852 3.13.0-master+ 415.2 KHz .852 + restore mwait_idle 3.13.0-master++ 488.5 KHz 1.002 + restore mwait_idle + IPI fix Signed-off-by: Mike Galbraith <bitbucket@online.de> Cc: <stable@vger.kernel.org> # 3.10+ --- arch/x86/kernel/process.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) --- a/arch/x86/kernel/process.c +++ b/arch/x86/kernel/process.c @@ -427,18 +427,21 @@ static int prefer_mwait_c1_over_halt(con static void mwait_idle(void) { - if (!need_resched()) { - if (this_cpu_has(X86_FEATURE_CLFLUSH_MONITOR)) + if (!current_set_polling_and_test()) { + if (this_cpu_has(X86_FEATURE_CLFLUSH_MONITOR)) { + mb(); clflush((void *)¤t_thread_info()->flags); + mb(); + } __monitor((void *)¤t_thread_info()->flags, 0, 0); - smp_mb(); if (!need_resched()) __sti_mwait(0, 0); else local_irq_enable(); } else local_irq_enable(); + __current_clr_polling(); } void select_idle_routine(const struct cpuinfo_x86 *c) ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH REGRESSION FIX] x86 idle: restore mwait_idle() 2014-01-18 16:14 ` Mike Galbraith @ 2015-03-14 23:44 ` Ian Malone 2015-03-15 4:53 ` Mike Galbraith 0 siblings, 1 reply; 12+ messages in thread From: Ian Malone @ 2015-03-14 23:44 UTC (permalink / raw) To: Mike Galbraith Cc: Andy Lutomirski, Len Brown, x86, linux-pm, linux-kernel, Len Brown, Josh Boyer, stable, Peter Zijlstra On 18 January 2014 at 16:14, Mike Galbraith <bitbucket@online.de> wrote: > On Sat, 2014-01-18 at 10:33 +0100, Mike Galbraith wrote: >> On Fri, 2014-01-17 at 05:20 +0100, Mike Galbraith wrote: > Signed-off-by: Mike Galbraith <bitbucket@online.de> > Cc: <stable@vger.kernel.org> # 3.10+ > --- > arch/x86/kernel/process.c | 9 ++++++--- > 1 file changed, 6 insertions(+), 3 deletions(-) > > --- a/arch/x86/kernel/process.c > +++ b/arch/x86/kernel/process.c > @@ -427,18 +427,21 @@ static int prefer_mwait_c1_over_halt(con Hi, this series of patches never seem to have made it as far as the mainline kernel, anyone know what needs to happen next? -- imalone http://ibmalone.blogspot.co.uk ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH REGRESSION FIX] x86 idle: restore mwait_idle() 2015-03-14 23:44 ` Ian Malone @ 2015-03-15 4:53 ` Mike Galbraith 2015-03-16 23:32 ` Ian Malone 0 siblings, 1 reply; 12+ messages in thread From: Mike Galbraith @ 2015-03-15 4:53 UTC (permalink / raw) To: Ian Malone Cc: Andy Lutomirski, Len Brown, x86, linux-pm, linux-kernel, Len Brown, Josh Boyer, stable, Peter Zijlstra On Sat, 2015-03-14 at 23:44 +0000, Ian Malone wrote: > On 18 January 2014 at 16:14, Mike Galbraith <bitbucket@online.de> wrote: > > On Sat, 2014-01-18 at 10:33 +0100, Mike Galbraith wrote: > >> On Fri, 2014-01-17 at 05:20 +0100, Mike Galbraith wrote: > > > Signed-off-by: Mike Galbraith <bitbucket@online.de> > > Cc: <stable@vger.kernel.org> # 3.10+ > > --- > > arch/x86/kernel/process.c | 9 ++++++--- > > 1 file changed, 6 insertions(+), 3 deletions(-) > > > > --- a/arch/x86/kernel/process.c > > +++ b/arch/x86/kernel/process.c > > @@ -427,18 +427,21 @@ static int prefer_mwait_c1_over_halt(con > > Hi, this series of patches never seem to have made it as far as the > mainline kernel, anyone know what needs to happen next? My plan is to keep on carrying it locally for as long as I run new kernels on crusty ole core2 boxen, then stop caring about them entirely like the rest of the planet :) -Mike ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH REGRESSION FIX] x86 idle: restore mwait_idle() 2015-03-15 4:53 ` Mike Galbraith @ 2015-03-16 23:32 ` Ian Malone 2015-03-17 8:22 ` Ingo Molnar 0 siblings, 1 reply; 12+ messages in thread From: Ian Malone @ 2015-03-16 23:32 UTC (permalink / raw) To: Mike Galbraith Cc: Andy Lutomirski, Len Brown, x86, linux-pm, linux-kernel, Len Brown, Josh Boyer, stable, Peter Zijlstra On 15 March 2015 at 04:53, Mike Galbraith <umgwanakikbuti@gmail.com> wrote: > On Sat, 2015-03-14 at 23:44 +0000, Ian Malone wrote: >> On 18 January 2014 at 16:14, Mike Galbraith <bitbucket@online.de> wrote: >> > On Sat, 2014-01-18 at 10:33 +0100, Mike Galbraith wrote: >> >> On Fri, 2014-01-17 at 05:20 +0100, Mike Galbraith wrote: >> >> > Signed-off-by: Mike Galbraith <bitbucket@online.de> >> > Cc: <stable@vger.kernel.org> # 3.10+ >> > --- >> > arch/x86/kernel/process.c | 9 ++++++--- >> > 1 file changed, 6 insertions(+), 3 deletions(-) >> > >> > --- a/arch/x86/kernel/process.c >> > +++ b/arch/x86/kernel/process.c >> > @@ -427,18 +427,21 @@ static int prefer_mwait_c1_over_halt(con >> >> Hi, this series of patches never seem to have made it as far as the >> mainline kernel, anyone know what needs to happen next? > > My plan is to keep on carrying it locally for as long as I run new > kernels on crusty ole core2 boxen, then stop caring about them entirely > like the rest of the planet :) > Looks like Ingo Molnar has committed to tip which is probably a good sign, thanks all. (Have to hand this system on to someone who wont be patching kernels...) -- imalone http://ibmalone.blogspot.co.uk ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH REGRESSION FIX] x86 idle: restore mwait_idle() 2015-03-16 23:32 ` Ian Malone @ 2015-03-17 8:22 ` Ingo Molnar 2015-03-17 8:33 ` Mike Galbraith 2015-03-18 1:55 ` Ian Malone 0 siblings, 2 replies; 12+ messages in thread From: Ingo Molnar @ 2015-03-17 8:22 UTC (permalink / raw) To: Ian Malone Cc: Mike Galbraith, Andy Lutomirski, Len Brown, x86, linux-pm, linux-kernel, Len Brown, Josh Boyer, stable, Peter Zijlstra * Ian Malone <ibmalone@gmail.com> wrote: > On 15 March 2015 at 04:53, Mike Galbraith <umgwanakikbuti@gmail.com> wrote: > > On Sat, 2015-03-14 at 23:44 +0000, Ian Malone wrote: > >> On 18 January 2014 at 16:14, Mike Galbraith <bitbucket@online.de> wrote: > >> > On Sat, 2014-01-18 at 10:33 +0100, Mike Galbraith wrote: > >> >> On Fri, 2014-01-17 at 05:20 +0100, Mike Galbraith wrote: > >> > >> > Signed-off-by: Mike Galbraith <bitbucket@online.de> > >> > Cc: <stable@vger.kernel.org> # 3.10+ > >> > --- > >> > arch/x86/kernel/process.c | 9 ++++++--- > >> > 1 file changed, 6 insertions(+), 3 deletions(-) > >> > > >> > --- a/arch/x86/kernel/process.c > >> > +++ b/arch/x86/kernel/process.c > >> > @@ -427,18 +427,21 @@ static int prefer_mwait_c1_over_halt(con > >> > >> Hi, this series of patches never seem to have made it as far as the > >> mainline kernel, anyone know what needs to happen next? > > > > My plan is to keep on carrying it locally for as long as I run new > > kernels on crusty ole core2 boxen, then stop caring about them entirely > > like the rest of the planet :) > > > > Looks like Ingo Molnar has committed to tip which is probably a good > sign, thanks all. > (Have to hand this system on to someone who wont be patching kernels...) Guys, since I don't have the affected hardware, mind testing the latest sched/core tree: git clone git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git cd tip git checkout sched/core # build a test kernel and boot it Or if you already have a kernel git tree, do something like this to pick up the scheduler development tree: cd linux.git git remote add git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git tip git remote update git checkout tip/sched/core # build a test kernel and boot it and check whether the mwait related bugs are now fixed for good? Thanks, Ingo ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH REGRESSION FIX] x86 idle: restore mwait_idle() 2015-03-17 8:22 ` Ingo Molnar @ 2015-03-17 8:33 ` Mike Galbraith 2015-03-18 1:55 ` Ian Malone 1 sibling, 0 replies; 12+ messages in thread From: Mike Galbraith @ 2015-03-17 8:33 UTC (permalink / raw) To: Ingo Molnar Cc: Ian Malone, Andy Lutomirski, Len Brown, x86, linux-pm, linux-kernel, Len Brown, Josh Boyer, stable, Peter Zijlstra On Tue, 2015-03-17 at 09:22 +0100, Ingo Molnar wrote: > * Ian Malone <ibmalone@gmail.com> wrote: > > > On 15 March 2015 at 04:53, Mike Galbraith <umgwanakikbuti@gmail.com> wrote: > > > On Sat, 2015-03-14 at 23:44 +0000, Ian Malone wrote: > > >> On 18 January 2014 at 16:14, Mike Galbraith <bitbucket@online.de> wrote: > > >> > On Sat, 2014-01-18 at 10:33 +0100, Mike Galbraith wrote: > > >> >> On Fri, 2014-01-17 at 05:20 +0100, Mike Galbraith wrote: > > >> > > >> > Signed-off-by: Mike Galbraith <bitbucket@online.de> > > >> > Cc: <stable@vger.kernel.org> # 3.10+ > > >> > --- > > >> > arch/x86/kernel/process.c | 9 ++++++--- > > >> > 1 file changed, 6 insertions(+), 3 deletions(-) > > >> > > > >> > --- a/arch/x86/kernel/process.c > > >> > +++ b/arch/x86/kernel/process.c > > >> > @@ -427,18 +427,21 @@ static int prefer_mwait_c1_over_halt(con > > >> > > >> Hi, this series of patches never seem to have made it as far as the > > >> mainline kernel, anyone know what needs to happen next? > > > > > > My plan is to keep on carrying it locally for as long as I run new > > > kernels on crusty ole core2 boxen, then stop caring about them entirely > > > like the rest of the planet :) > > > > > > > Looks like Ingo Molnar has committed to tip which is probably a good > > sign, thanks all. > > (Have to hand this system on to someone who wont be patching kernels...) > > Guys, since I don't have the affected hardware, mind testing the > latest sched/core tree: > > git clone git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git > cd tip > git checkout sched/core > # build a test kernel and boot it > > Or if you already have a kernel git tree, do something like this to > pick up the scheduler development tree: > > cd linux.git > git remote add git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git tip > git remote update > git checkout tip/sched/core > # build a test kernel and boot it > > and check whether the mwait related bugs are now fixed for good? "marge" (Q6600 box) is mostly retired now, but I'll kick her out of her rocking chair as soon as I can escape from bugzilla. All should be well, as she's been running it for ages, and ran it in master just a couple days ago. -Mike ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH REGRESSION FIX] x86 idle: restore mwait_idle() 2015-03-17 8:22 ` Ingo Molnar 2015-03-17 8:33 ` Mike Galbraith @ 2015-03-18 1:55 ` Ian Malone 1 sibling, 0 replies; 12+ messages in thread From: Ian Malone @ 2015-03-18 1:55 UTC (permalink / raw) To: Ingo Molnar Cc: Mike Galbraith, Andy Lutomirski, Len Brown, x86, linux-pm, linux-kernel, Len Brown, Josh Boyer, stable, Peter Zijlstra On 17 March 2015 at 08:22, Ingo Molnar <mingo@kernel.org> wrote: > > * Ian Malone <ibmalone@gmail.com> wrote: > >> Looks like Ingo Molnar has committed to tip which is probably a good >> sign, thanks all. >> (Have to hand this system on to someone who wont be patching kernels...) > > Guys, since I don't have the affected hardware, mind testing the > latest sched/core tree: > > git clone git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git > cd tip > git checkout sched/core > # build a test kernel and boot it > > Or if you already have a kernel git tree, do something like this to > pick up the scheduler development tree: > > cd linux.git > git remote add git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git tip > git remote update > git checkout tip/sched/core > # build a test kernel and boot it > > and check whether the mwait related bugs are now fixed for good? > Fixes https://bugzilla.kernel.org/show_bug.cgi?id=60770, thank you. -- imalone http://ibmalone.blogspot.co.uk ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2015-03-18 1:55 UTC | newest] Thread overview: 12+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- [not found] <1ae2a8af42281d6b9888ac8c76bab7bd2f431d44.1389763084.git.len.brown@intel.com> 2014-01-15 5:37 ` [PATCH REGRESSION FIX] x86 idle: restore mwait_idle() Len Brown 2014-01-15 9:28 ` Mike Galbraith 2014-01-16 22:00 ` Andy Lutomirski 2014-01-17 4:20 ` Mike Galbraith 2014-01-18 9:33 ` Mike Galbraith 2014-01-18 16:14 ` Mike Galbraith 2015-03-14 23:44 ` Ian Malone 2015-03-15 4:53 ` Mike Galbraith 2015-03-16 23:32 ` Ian Malone 2015-03-17 8:22 ` Ingo Molnar 2015-03-17 8:33 ` Mike Galbraith 2015-03-18 1:55 ` Ian Malone
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).