aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/sparc64/kernel/process.c10
-rw-r--r--arch/sparc64/kernel/smp.c2
-rw-r--r--include/asm-sparc64/cpudata.h2
3 files changed, 3 insertions, 11 deletions
diff --git a/arch/sparc64/kernel/process.c b/arch/sparc64/kernel/process.c
index d00cb7ad89b9..1ab8283efc4c 100644
--- a/arch/sparc64/kernel/process.c
+++ b/arch/sparc64/kernel/process.c
@@ -56,6 +56,8 @@ void default_idle(void)
56{ 56{
57} 57}
58 58
59
60
59#ifndef CONFIG_SMP 61#ifndef CONFIG_SMP
60 62
61/* 63/*
@@ -104,19 +106,11 @@ void cpu_idle(void)
104 106
105 while(1) { 107 while(1) {
106 if (need_resched()) { 108 if (need_resched()) {
107 cpuinfo->idle_volume = 0;
108 preempt_enable_no_resched(); 109 preempt_enable_no_resched();
109 schedule(); 110 schedule();
110 preempt_disable(); 111 preempt_disable();
111 check_pgt_cache(); 112 check_pgt_cache();
112 } 113 }
113 cpuinfo->idle_volume++;
114
115 /* The store ordering is so that IRQ handlers on
116 * other cpus see our increasing idleness for the buddy
117 * redistribution algorithm. -DaveM
118 */
119 membar_storeload_storestore();
120 } 114 }
121} 115}
122 116
diff --git a/arch/sparc64/kernel/smp.c b/arch/sparc64/kernel/smp.c
index 356d423ae14d..0cd9b16612e7 100644
--- a/arch/sparc64/kernel/smp.c
+++ b/arch/sparc64/kernel/smp.c
@@ -88,8 +88,6 @@ void __init smp_store_cpu_info(int id)
88 cpu_data(id).clock_tick = prom_getintdefault(cpu_node, 88 cpu_data(id).clock_tick = prom_getintdefault(cpu_node,
89 "clock-frequency", 0); 89 "clock-frequency", 0);
90 90
91 cpu_data(id).idle_volume = 1;
92
93 def = ((tlb_type == hypervisor) ? (8 * 1024) : (16 * 1024)); 91 def = ((tlb_type == hypervisor) ? (8 * 1024) : (16 * 1024));
94 cpu_data(id).dcache_size = prom_getintdefault(cpu_node, "dcache-size", 92 cpu_data(id).dcache_size = prom_getintdefault(cpu_node, "dcache-size",
95 def); 93 def);
diff --git a/include/asm-sparc64/cpudata.h b/include/asm-sparc64/cpudata.h
index 84656f1895cd..c66a81bbc84d 100644
--- a/include/asm-sparc64/cpudata.h
+++ b/include/asm-sparc64/cpudata.h
@@ -19,7 +19,7 @@ typedef struct {
19 unsigned int __softirq_pending; /* must be 1st, see rtrap.S */ 19 unsigned int __softirq_pending; /* must be 1st, see rtrap.S */
20 unsigned int multiplier; 20 unsigned int multiplier;
21 unsigned int counter; 21 unsigned int counter;
22 unsigned int idle_volume; 22 unsigned int __pad1;
23 unsigned long clock_tick; /* %tick's per second */ 23 unsigned long clock_tick; /* %tick's per second */
24 unsigned long udelay_val; 24 unsigned long udelay_val;
25 25