aboutsummaryrefslogtreecommitdiff
path: root/arch/i386/kernel
diff options
context:
space:
mode:
authorChristoph Lameter <clameter@sgi.com>2007-05-12 11:15:24 -0700
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-05-12 11:26:22 -0700
commitf1d1a842d85acf34dd185027cb2c9b4fd13130ef (patch)
tree99ec45adca911aeb145a56d75a213ebb900b2175 /arch/i386/kernel
parent8df767dd759c1390f604814ee5b2d1489f9a59f7 (diff)
SLUB: i386 support
SLUB cannot run on i386 at this point because i386 uses the page->private and page->index field of slab pages for the pgd cache. Make SLUB run on i386 by replacing the pgd slab cache with a quicklist. Limit the changes as much as possible. Leave the improvised linked list in place etc etc. This has been working here for a couple of weeks now. Acked-by: William Lee Irwin III <wli@holomorphy.com> Signed-off-by: Christoph Lameter <clameter@sgi.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/i386/kernel')
-rw-r--r--arch/i386/kernel/process.c1
-rw-r--r--arch/i386/kernel/smp.c2
2 files changed, 2 insertions, 1 deletions
diff --git a/arch/i386/kernel/process.c b/arch/i386/kernel/process.c
index d76d9bc33b3..06dfa65ad18 100644
--- a/arch/i386/kernel/process.c
+++ b/arch/i386/kernel/process.c
@@ -186,6 +186,7 @@ void cpu_idle(void)
if (__get_cpu_var(cpu_idle_state))
__get_cpu_var(cpu_idle_state) = 0;
+ check_pgt_cache();
rmb();
idle = pm_idle;
diff --git a/arch/i386/kernel/smp.c b/arch/i386/kernel/smp.c
index 93f202a855f..706bda72dc6 100644
--- a/arch/i386/kernel/smp.c
+++ b/arch/i386/kernel/smp.c
@@ -421,7 +421,7 @@ void flush_tlb_mm (struct mm_struct * mm)
}
if (!cpus_empty(cpu_mask))
flush_tlb_others(cpu_mask, mm, TLB_FLUSH_ALL);
-
+ check_pgt_cache();
preempt_enable();
}