|
@@ -381,6 +381,8 @@ void default_idle(void)
|
|
|
else
|
|
|
local_irq_enable();
|
|
|
current_thread_info()->status |= TS_POLLING;
|
|
|
+ trace_power_end(smp_processor_id());
|
|
|
+ trace_cpu_idle(PWR_EVENT_EXIT, smp_processor_id());
|
|
|
} else {
|
|
|
local_irq_enable();
|
|
|
/* loop is done by the caller */
|
|
@@ -438,8 +440,6 @@ EXPORT_SYMBOL_GPL(cpu_idle_wait);
|
|
|
*/
|
|
|
void mwait_idle_with_hints(unsigned long ax, unsigned long cx)
|
|
|
{
|
|
|
- trace_power_start(POWER_CSTATE, (ax>>4)+1, smp_processor_id());
|
|
|
- trace_cpu_idle((ax>>4)+1, smp_processor_id());
|
|
|
if (!need_resched()) {
|
|
|
if (cpu_has(__this_cpu_ptr(&cpu_info), X86_FEATURE_CLFLUSH_MONITOR))
|
|
|
clflush((void *)¤t_thread_info()->flags);
|
|
@@ -466,6 +466,8 @@ static void mwait_idle(void)
|
|
|
__sti_mwait(0, 0);
|
|
|
else
|
|
|
local_irq_enable();
|
|
|
+ trace_power_end(smp_processor_id());
|
|
|
+ trace_cpu_idle(PWR_EVENT_EXIT, smp_processor_id());
|
|
|
} else
|
|
|
local_irq_enable();
|
|
|
}
|