On Tue, Nov 19, 2013 at 10:00:19AM +0100, Peter Zijlstra wrote: > Hi Len, Rafeal, > > I stumbled over acpi_pad (yuck! ;-), but noticed that you don't set the > task in polling mode while using mwait. This means we'll still happily > send an IPI to wake you up. > > A little something like the below should do; you might even be able to > remove the smp_mb() but since it is completely undocumented (another > fail) I couldn't tell if the implied barrier in > current_set_polling_and_test() suffices to replace it, so I left it. > > If it compiles and works; change it to a proper SOB: > > Maybe-Signed-off-by: Peter Zijlstra <peterz@xxxxxxxxxxxxx> Of course one such driver is insufficient and you lot needed a second; same issue: --- drivers/thermal/intel_powerclamp.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/thermal/intel_powerclamp.c b/drivers/thermal/intel_powerclamp.c index 8f181b3f842b..d8111e1ac62e 100644 --- a/drivers/thermal/intel_powerclamp.c +++ b/drivers/thermal/intel_powerclamp.c @@ -439,8 +439,11 @@ static int clamp_thread(void *arg) local_touch_nmi(); stop_critical_timings(); __monitor((void *)¤t_thread_info()->flags, 0, 0); - cpu_relax(); /* allow HT sibling to run */ - __mwait(eax, ecx); + if (!current_set_polling_and_test()) { + cpu_relax(); /* allow HT sibling to run */ + __mwait(eax, ecx); + __current_clr_polling(); + } start_critical_timings(); atomic_inc(&idle_wakeup_counter); } -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html