diff options
author | Jeremy Fitzhardinge <jeremy@goop.org> | 2007-05-02 13:27:12 -0400 |
---|---|---|
committer | Andi Kleen <andi@basil.nowhere.org> | 2007-05-02 13:27:12 -0400 |
commit | b6e3590f8145c77b8fcef3247e2412335221412f (patch) | |
tree | 47fb1a28e41fd9f4e1aef45b5482b69b8d7c154e /init/main.c | |
parent | de90c5ce832b1218042316260ff9268b00fdcba3 (diff) |
[PATCH] x86: Allow percpu variables to be page-aligned
Let's allow page-alignment in general for per-cpu data (wanted by Xen, and
Ingo suggested KVM as well).
Because larger alignments can use more room, we increase the max per-cpu
memory to 64k rather than 32k: it's getting a little tight.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Jeremy Fitzhardinge <jeremy@xensource.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Acked-by: Ingo Molnar <mingo@elte.hu>
Cc: Andi Kleen <ak@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Diffstat (limited to 'init/main.c')
-rw-r--r-- | init/main.c | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/init/main.c b/init/main.c index a92989e7836a..80f09f31bfab 100644 --- a/init/main.c +++ b/init/main.c | |||
@@ -369,12 +369,8 @@ static void __init setup_per_cpu_areas(void) | |||
369 | unsigned long nr_possible_cpus = num_possible_cpus(); | 369 | unsigned long nr_possible_cpus = num_possible_cpus(); |
370 | 370 | ||
371 | /* Copy section for each CPU (we discard the original) */ | 371 | /* Copy section for each CPU (we discard the original) */ |
372 | size = ALIGN(__per_cpu_end - __per_cpu_start, SMP_CACHE_BYTES); | 372 | size = ALIGN(PERCPU_ENOUGH_ROOM, PAGE_SIZE); |
373 | #ifdef CONFIG_MODULES | 373 | ptr = alloc_bootmem_pages(size * nr_possible_cpus); |
374 | if (size < PERCPU_ENOUGH_ROOM) | ||
375 | size = PERCPU_ENOUGH_ROOM; | ||
376 | #endif | ||
377 | ptr = alloc_bootmem(size * nr_possible_cpus); | ||
378 | 374 | ||
379 | for_each_possible_cpu(i) { | 375 | for_each_possible_cpu(i) { |
380 | __per_cpu_offset[i] = ptr - __per_cpu_start; | 376 | __per_cpu_offset[i] = ptr - __per_cpu_start; |