diff options
author | David Miller <davem@davemloft.net> | 2007-05-06 17:49:51 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-05-07 15:12:54 -0400 |
commit | 3a2cba993b0a04f258ab75e15cf3f08ada268dbd (patch) | |
tree | 7f20f6cad40c1efe18dcf5eadfb8abbc3353f9aa /arch/sparc64 | |
parent | 6225e93735acaa09865bce746958f1046c2e0bc3 (diff) |
Quicklist support for sparc64
I ported this to sparc64 as per the patch below, tested on UP SunBlade1500 and
24 cpu Niagara T1000.
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Christoph Lameter <clameter@sgi.com>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Andi Kleen <ak@suse.de>
Cc: "Luck, Tony" <tony.luck@intel.com>
Cc: William Lee Irwin III <wli@holomorphy.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/sparc64')
-rw-r--r-- | arch/sparc64/Kconfig | 4 | ||||
-rw-r--r-- | arch/sparc64/mm/init.c | 24 | ||||
-rw-r--r-- | arch/sparc64/mm/tsb.c | 2 |
3 files changed, 5 insertions, 25 deletions
diff --git a/arch/sparc64/Kconfig b/arch/sparc64/Kconfig index be9e10b94ef8..ad8d6b256a70 100644 --- a/arch/sparc64/Kconfig +++ b/arch/sparc64/Kconfig | |||
@@ -34,6 +34,10 @@ config MMU | |||
34 | bool | 34 | bool |
35 | default y | 35 | default y |
36 | 36 | ||
37 | config QUICKLIST | ||
38 | bool | ||
39 | default y | ||
40 | |||
37 | config STACKTRACE_SUPPORT | 41 | config STACKTRACE_SUPPORT |
38 | bool | 42 | bool |
39 | default y | 43 | default y |
diff --git a/arch/sparc64/mm/init.c b/arch/sparc64/mm/init.c index cafadcbcdf38..d7004eaf1c8e 100644 --- a/arch/sparc64/mm/init.c +++ b/arch/sparc64/mm/init.c | |||
@@ -164,30 +164,6 @@ unsigned long sparc64_kern_sec_context __read_mostly; | |||
164 | 164 | ||
165 | int bigkernel = 0; | 165 | int bigkernel = 0; |
166 | 166 | ||
167 | struct kmem_cache *pgtable_cache __read_mostly; | ||
168 | |||
169 | static void zero_ctor(void *addr, struct kmem_cache *cache, unsigned long flags) | ||
170 | { | ||
171 | clear_page(addr); | ||
172 | } | ||
173 | |||
174 | extern void tsb_cache_init(void); | ||
175 | |||
176 | void pgtable_cache_init(void) | ||
177 | { | ||
178 | pgtable_cache = kmem_cache_create("pgtable_cache", | ||
179 | PAGE_SIZE, PAGE_SIZE, | ||
180 | SLAB_HWCACHE_ALIGN | | ||
181 | SLAB_MUST_HWCACHE_ALIGN, | ||
182 | zero_ctor, | ||
183 | NULL); | ||
184 | if (!pgtable_cache) { | ||
185 | prom_printf("Could not create pgtable_cache\n"); | ||
186 | prom_halt(); | ||
187 | } | ||
188 | tsb_cache_init(); | ||
189 | } | ||
190 | |||
191 | #ifdef CONFIG_DEBUG_DCFLUSH | 167 | #ifdef CONFIG_DEBUG_DCFLUSH |
192 | atomic_t dcpage_flushes = ATOMIC_INIT(0); | 168 | atomic_t dcpage_flushes = ATOMIC_INIT(0); |
193 | #ifdef CONFIG_SMP | 169 | #ifdef CONFIG_SMP |
diff --git a/arch/sparc64/mm/tsb.c b/arch/sparc64/mm/tsb.c index 236d02f41a01..57eb3025537a 100644 --- a/arch/sparc64/mm/tsb.c +++ b/arch/sparc64/mm/tsb.c | |||
@@ -252,7 +252,7 @@ static const char *tsb_cache_names[8] = { | |||
252 | "tsb_1MB", | 252 | "tsb_1MB", |
253 | }; | 253 | }; |
254 | 254 | ||
255 | void __init tsb_cache_init(void) | 255 | void __init pgtable_cache_init(void) |
256 | { | 256 | { |
257 | unsigned long i; | 257 | unsigned long i; |
258 | 258 | ||