|
@@ -438,29 +438,6 @@ void cpu_idle_wait(void)
|
|
}
|
|
}
|
|
EXPORT_SYMBOL_GPL(cpu_idle_wait);
|
|
EXPORT_SYMBOL_GPL(cpu_idle_wait);
|
|
|
|
|
|
-/*
|
|
|
|
- * This uses new MONITOR/MWAIT instructions on P4 processors with PNI,
|
|
|
|
- * which can obviate IPI to trigger checking of need_resched.
|
|
|
|
- * We execute MONITOR against need_resched and enter optimized wait state
|
|
|
|
- * through MWAIT. Whenever someone changes need_resched, we would be woken
|
|
|
|
- * up from MWAIT (without an IPI).
|
|
|
|
- *
|
|
|
|
- * New with Core Duo processors, MWAIT can take some hints based on CPU
|
|
|
|
- * capability.
|
|
|
|
- */
|
|
|
|
-void mwait_idle_with_hints(unsigned long ax, unsigned long cx)
|
|
|
|
-{
|
|
|
|
- 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())
|
|
|
|
- __mwait(ax, cx);
|
|
|
|
- }
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
/* Default MONITOR/MWAIT with no hints, used for default C1 state */
|
|
/* Default MONITOR/MWAIT with no hints, used for default C1 state */
|
|
static void mwait_idle(void)
|
|
static void mwait_idle(void)
|
|
{
|
|
{
|