diff options
Diffstat (limited to 'arch/x86/kernel/setup_percpu.c')
-rw-r--r-- | arch/x86/kernel/setup_percpu.c | 36 |
1 files changed, 16 insertions, 20 deletions
diff --git a/arch/x86/kernel/setup_percpu.c b/arch/x86/kernel/setup_percpu.c index ae0c0d3bb77..a4b619c3310 100644 --- a/arch/x86/kernel/setup_percpu.c +++ b/arch/x86/kernel/setup_percpu.c | |||
@@ -152,8 +152,11 @@ void __init setup_per_cpu_areas(void) | |||
152 | old_size = PERCPU_ENOUGH_ROOM; | 152 | old_size = PERCPU_ENOUGH_ROOM; |
153 | align = max_t(unsigned long, PAGE_SIZE, align); | 153 | align = max_t(unsigned long, PAGE_SIZE, align); |
154 | size = roundup(old_size, align); | 154 | size = roundup(old_size, align); |
155 | printk(KERN_INFO "PERCPU: Allocating %zd bytes of per cpu data\n", | 155 | |
156 | size); | 156 | pr_info("NR_CPUS:%d nr_cpumask_bits:%d nr_cpu_ids:%d nr_node_ids:%d\n", |
157 | NR_CPUS, nr_cpumask_bits, nr_cpu_ids, nr_node_ids); | ||
158 | |||
159 | pr_info("PERCPU: Allocating %zd bytes of per cpu data\n", size); | ||
157 | 160 | ||
158 | for_each_possible_cpu(cpu) { | 161 | for_each_possible_cpu(cpu) { |
159 | #ifndef CONFIG_NEED_MULTIPLE_NODES | 162 | #ifndef CONFIG_NEED_MULTIPLE_NODES |
@@ -164,28 +167,21 @@ void __init setup_per_cpu_areas(void) | |||
164 | if (!node_online(node) || !NODE_DATA(node)) { | 167 | if (!node_online(node) || !NODE_DATA(node)) { |
165 | ptr = __alloc_bootmem(size, align, | 168 | ptr = __alloc_bootmem(size, align, |
166 | __pa(MAX_DMA_ADDRESS)); | 169 | __pa(MAX_DMA_ADDRESS)); |
167 | printk(KERN_INFO | 170 | pr_info("cpu %d has no node %d or node-local memory\n", |
168 | "cpu %d has no node %d or node-local memory\n", | ||
169 | cpu, node); | 171 | cpu, node); |
170 | if (ptr) | 172 | pr_debug("per cpu data for cpu%d at %016lx\n", |
171 | printk(KERN_DEBUG "per cpu data for cpu%d at %016lx\n", | 173 | cpu, __pa(ptr)); |
172 | cpu, __pa(ptr)); | 174 | } else { |
173 | } | ||
174 | else { | ||
175 | ptr = __alloc_bootmem_node(NODE_DATA(node), size, align, | 175 | ptr = __alloc_bootmem_node(NODE_DATA(node), size, align, |
176 | __pa(MAX_DMA_ADDRESS)); | 176 | __pa(MAX_DMA_ADDRESS)); |
177 | if (ptr) | 177 | pr_debug("per cpu data for cpu%d on node%d at %016lx\n", |
178 | printk(KERN_DEBUG "per cpu data for cpu%d on node%d at %016lx\n", | 178 | cpu, node, __pa(ptr)); |
179 | cpu, node, __pa(ptr)); | ||
180 | } | 179 | } |
181 | #endif | 180 | #endif |
182 | per_cpu_offset(cpu) = ptr - __per_cpu_start; | 181 | per_cpu_offset(cpu) = ptr - __per_cpu_start; |
183 | memcpy(ptr, __per_cpu_start, __per_cpu_end - __per_cpu_start); | 182 | memcpy(ptr, __per_cpu_start, __per_cpu_end - __per_cpu_start); |
184 | } | 183 | } |
185 | 184 | ||
186 | printk(KERN_DEBUG "NR_CPUS: %d, nr_cpu_ids: %d, nr_node_ids %d\n", | ||
187 | NR_CPUS, nr_cpu_ids, nr_node_ids); | ||
188 | |||
189 | /* Setup percpu data maps */ | 185 | /* Setup percpu data maps */ |
190 | setup_per_cpu_maps(); | 186 | setup_per_cpu_maps(); |
191 | 187 | ||
@@ -282,7 +278,7 @@ static void __cpuinit numa_set_cpumask(int cpu, int enable) | |||
282 | else | 278 | else |
283 | cpu_clear(cpu, *mask); | 279 | cpu_clear(cpu, *mask); |
284 | 280 | ||
285 | cpulist_scnprintf(buf, sizeof(buf), *mask); | 281 | cpulist_scnprintf(buf, sizeof(buf), mask); |
286 | printk(KERN_DEBUG "%s cpu %d node %d: mask now %s\n", | 282 | printk(KERN_DEBUG "%s cpu %d node %d: mask now %s\n", |
287 | enable? "numa_add_cpu":"numa_remove_cpu", cpu, node, buf); | 283 | enable? "numa_add_cpu":"numa_remove_cpu", cpu, node, buf); |
288 | } | 284 | } |
@@ -334,25 +330,25 @@ static const cpumask_t cpu_mask_none; | |||
334 | /* | 330 | /* |
335 | * Returns a pointer to the bitmask of CPUs on Node 'node'. | 331 | * Returns a pointer to the bitmask of CPUs on Node 'node'. |
336 | */ | 332 | */ |
337 | const cpumask_t *_node_to_cpumask_ptr(int node) | 333 | const cpumask_t *cpumask_of_node(int node) |
338 | { | 334 | { |
339 | if (node_to_cpumask_map == NULL) { | 335 | if (node_to_cpumask_map == NULL) { |
340 | printk(KERN_WARNING | 336 | printk(KERN_WARNING |
341 | "_node_to_cpumask_ptr(%d): no node_to_cpumask_map!\n", | 337 | "cpumask_of_node(%d): no node_to_cpumask_map!\n", |
342 | node); | 338 | node); |
343 | dump_stack(); | 339 | dump_stack(); |
344 | return (const cpumask_t *)&cpu_online_map; | 340 | return (const cpumask_t *)&cpu_online_map; |
345 | } | 341 | } |
346 | if (node >= nr_node_ids) { | 342 | if (node >= nr_node_ids) { |
347 | printk(KERN_WARNING | 343 | printk(KERN_WARNING |
348 | "_node_to_cpumask_ptr(%d): node > nr_node_ids(%d)\n", | 344 | "cpumask_of_node(%d): node > nr_node_ids(%d)\n", |
349 | node, nr_node_ids); | 345 | node, nr_node_ids); |
350 | dump_stack(); | 346 | dump_stack(); |
351 | return &cpu_mask_none; | 347 | return &cpu_mask_none; |
352 | } | 348 | } |
353 | return &node_to_cpumask_map[node]; | 349 | return &node_to_cpumask_map[node]; |
354 | } | 350 | } |
355 | EXPORT_SYMBOL(_node_to_cpumask_ptr); | 351 | EXPORT_SYMBOL(cpumask_of_node); |
356 | 352 | ||
357 | /* | 353 | /* |
358 | * Returns a bitmask of CPUs on Node 'node'. | 354 | * Returns a bitmask of CPUs on Node 'node'. |