diff options
author | Andi Kleen <ak@suse.de> | 2006-09-26 04:52:40 -0400 |
---|---|---|
committer | Andi Kleen <andi@basil.nowhere.org> | 2006-09-26 04:52:40 -0400 |
commit | a15da49debaf7f09460a886b0ecd08588410715e (patch) | |
tree | 685ed022695ff03cec167c6690815e08191a803c /include | |
parent | 1c9c0a6ca35e9325cea811d734d6ab7352be086b (diff) |
[PATCH] Fix idle notifiers
Previously exit_idle would be called more often than enter_idle
Now instead of using complicated tests just keep track of it
using the per CPU variable as a flip flop. I moved the idle state into the
PDA to make the access more efficient.
Original bug report and an initial patch from Stephane Eranian,
but redone by AK.
Cc: Stephane Eranian <eranian@hpl.hp.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Diffstat (limited to 'include')
-rw-r--r-- | include/asm-x86_64/pda.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/include/asm-x86_64/pda.h b/include/asm-x86_64/pda.h index 531f48a6c3af..14996d962bac 100644 --- a/include/asm-x86_64/pda.h +++ b/include/asm-x86_64/pda.h | |||
@@ -25,7 +25,8 @@ struct x8664_pda { | |||
25 | int nodenumber; /* number of current node */ | 25 | int nodenumber; /* number of current node */ |
26 | unsigned int __softirq_pending; | 26 | unsigned int __softirq_pending; |
27 | unsigned int __nmi_count; /* number of NMI on this CPUs */ | 27 | unsigned int __nmi_count; /* number of NMI on this CPUs */ |
28 | int mmu_state; | 28 | short mmu_state; |
29 | short isidle; | ||
29 | struct mm_struct *active_mm; | 30 | struct mm_struct *active_mm; |
30 | unsigned apic_timer_irqs; | 31 | unsigned apic_timer_irqs; |
31 | } ____cacheline_aligned_in_smp; | 32 | } ____cacheline_aligned_in_smp; |