summaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/process.c
diff options
context:
space:
mode:
authorLen Brown <len.brown@intel.com>2011-01-13 00:06:19 +0100
committerLen Brown <len.brown@intel.com>2011-01-13 00:06:19 +0100
commit43952886f0b8b3c344c3392b88de067d5fa5419a (patch)
treec1a738f11a479246c09976902be5b73aaf731722 /arch/x86/kernel/process.c
parentMerge branch 'linus' into idle-test (diff)
parentcpuidle/x86/perf: fix power:cpu_idle double end events and throw cpu_idle eve... (diff)
downloadlinux-43952886f0b8b3c344c3392b88de067d5fa5419a.tar.xz
linux-43952886f0b8b3c344c3392b88de067d5fa5419a.zip
Merge branch 'cpuidle-perf-events' into idle-test
Diffstat (limited to 'arch/x86/kernel/process.c')
-rw-r--r--arch/x86/kernel/process.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c
index 7c23a0cd3eb9..d8286ed54ffa 100644
--- a/arch/x86/kernel/process.c
+++ b/arch/x86/kernel/process.c
@@ -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 *)&current_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();
}