diff options
author | Len Brown <len.brown@intel.com> | 2011-01-12 18:06:06 -0500 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2011-01-12 18:06:06 -0500 |
commit | 56dbed129df3fdd4caf9018b6e7599ee258a5420 (patch) | |
tree | b902491aef3a99efe0d9d49edd0f6e414dba654f /arch/x86/kernel/process.c | |
parent | 2a2d31c8dc6f1ebcf5eab1d93a0cb0fb4ed57c7c (diff) | |
parent | f878133bf022717b880d0e0995b8f91436fd605c (diff) |
Merge branch 'linus' into idle-test
Diffstat (limited to 'arch/x86/kernel/process.c')
-rw-r--r-- | arch/x86/kernel/process.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c index b6472153e45b..7c23a0cd3eb9 100644 --- a/arch/x86/kernel/process.c +++ b/arch/x86/kernel/process.c | |||
@@ -86,8 +86,7 @@ void exit_thread(void) | |||
86 | void show_regs(struct pt_regs *regs) | 86 | void show_regs(struct pt_regs *regs) |
87 | { | 87 | { |
88 | show_registers(regs); | 88 | show_registers(regs); |
89 | show_trace(NULL, regs, (unsigned long *)kernel_stack_pointer(regs), | 89 | show_trace(NULL, regs, (unsigned long *)kernel_stack_pointer(regs)); |
90 | regs->bp); | ||
91 | } | 90 | } |
92 | 91 | ||
93 | void show_regs_common(void) | 92 | void show_regs_common(void) |
@@ -369,6 +368,7 @@ void default_idle(void) | |||
369 | { | 368 | { |
370 | if (hlt_use_halt()) { | 369 | if (hlt_use_halt()) { |
371 | trace_power_start(POWER_CSTATE, 1, smp_processor_id()); | 370 | trace_power_start(POWER_CSTATE, 1, smp_processor_id()); |
371 | trace_cpu_idle(1, smp_processor_id()); | ||
372 | current_thread_info()->status &= ~TS_POLLING; | 372 | current_thread_info()->status &= ~TS_POLLING; |
373 | /* | 373 | /* |
374 | * TS_POLLING-cleared state must be visible before we | 374 | * TS_POLLING-cleared state must be visible before we |
@@ -439,8 +439,9 @@ EXPORT_SYMBOL_GPL(cpu_idle_wait); | |||
439 | void mwait_idle_with_hints(unsigned long ax, unsigned long cx) | 439 | void mwait_idle_with_hints(unsigned long ax, unsigned long cx) |
440 | { | 440 | { |
441 | trace_power_start(POWER_CSTATE, (ax>>4)+1, smp_processor_id()); | 441 | trace_power_start(POWER_CSTATE, (ax>>4)+1, smp_processor_id()); |
442 | trace_cpu_idle((ax>>4)+1, smp_processor_id()); | ||
442 | if (!need_resched()) { | 443 | if (!need_resched()) { |
443 | if (cpu_has(¤t_cpu_data, X86_FEATURE_CLFLUSH_MONITOR)) | 444 | if (cpu_has(__this_cpu_ptr(&cpu_info), X86_FEATURE_CLFLUSH_MONITOR)) |
444 | clflush((void *)¤t_thread_info()->flags); | 445 | clflush((void *)¤t_thread_info()->flags); |
445 | 446 | ||
446 | __monitor((void *)¤t_thread_info()->flags, 0, 0); | 447 | __monitor((void *)¤t_thread_info()->flags, 0, 0); |
@@ -455,7 +456,8 @@ static void mwait_idle(void) | |||
455 | { | 456 | { |
456 | if (!need_resched()) { | 457 | if (!need_resched()) { |
457 | trace_power_start(POWER_CSTATE, 1, smp_processor_id()); | 458 | trace_power_start(POWER_CSTATE, 1, smp_processor_id()); |
458 | if (cpu_has(¤t_cpu_data, X86_FEATURE_CLFLUSH_MONITOR)) | 459 | trace_cpu_idle(1, smp_processor_id()); |
460 | if (cpu_has(__this_cpu_ptr(&cpu_info), X86_FEATURE_CLFLUSH_MONITOR)) | ||
459 | clflush((void *)¤t_thread_info()->flags); | 461 | clflush((void *)¤t_thread_info()->flags); |
460 | 462 | ||
461 | __monitor((void *)¤t_thread_info()->flags, 0, 0); | 463 | __monitor((void *)¤t_thread_info()->flags, 0, 0); |
@@ -476,10 +478,12 @@ static void mwait_idle(void) | |||
476 | static void poll_idle(void) | 478 | static void poll_idle(void) |
477 | { | 479 | { |
478 | trace_power_start(POWER_CSTATE, 0, smp_processor_id()); | 480 | trace_power_start(POWER_CSTATE, 0, smp_processor_id()); |
481 | trace_cpu_idle(0, smp_processor_id()); | ||
479 | local_irq_enable(); | 482 | local_irq_enable(); |
480 | while (!need_resched()) | 483 | while (!need_resched()) |
481 | cpu_relax(); | 484 | cpu_relax(); |
482 | trace_power_end(0); | 485 | trace_power_end(smp_processor_id()); |
486 | trace_cpu_idle(PWR_EVENT_EXIT, smp_processor_id()); | ||
483 | } | 487 | } |
484 | 488 | ||
485 | /* | 489 | /* |