projects
/
profile
/
ivi
/
kernel-x86-ivi.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
80bbe9f
)
x86: Use tick broadcast expired check
author
Thomas Gleixner
<tglx@linutronix.de>
Wed, 6 Mar 2013 11:18:37 +0000
(11:18 +0000)
committer
Thomas Gleixner
<tglx@linutronix.de>
Wed, 13 Mar 2013 10:39:40 +0000
(11:39 +0100)
Avoid going back into deep idle if the tick broadcast IPI is about to
fire.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: John Stultz <john.stultz@linaro.org>
Cc: Arjan van de Veen <arjan@infradead.org>
Cc: x86@kernel.org
Link:
http://lkml.kernel.org/r/20130306111537.702278273@linutronix.de
arch/x86/kernel/process.c
patch
|
blob
|
history
diff --git
a/arch/x86/kernel/process.c
b/arch/x86/kernel/process.c
index
14ae100
..
aa524da
100644
(file)
--- a/
arch/x86/kernel/process.c
+++ b/
arch/x86/kernel/process.c
@@
-336,6
+336,18
@@
void cpu_idle(void)
local_touch_nmi();
local_irq_disable();
+ /*
+ * We detected in the wakeup path that the
+ * tick broadcast device expired for us, but
+ * we raced with the other CPU and came back
+ * here before it was able to fire the IPI.
+ * No point in going idle.
+ */
+ if (tick_check_broadcast_expired()) {
+ local_irq_enable();
+ continue;
+ }
+
enter_idle();
/* Don't trace irqs off for idle */