lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Tue, 19 Nov 2013 10:08:59 +0100 From: Peter Zijlstra <peterz@...radead.org> To: lenb@...nel.org, rjw@...ysocki.net, linux-acpi@...r.kernel.org, linux-kernel@...r.kernel.org Cc: shaohua.li@...el.com, rui.zhang@...el.com, arjan@...ux.intel.com, jacob.jun.pan@...ux.intel.com Subject: Re: acpi_pad mwait usage 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@...radead.org> 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-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists