aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Travis <travis@sgi.com>2008-12-31 21:08:47 -0500
committerIngo Molnar <mingo@elte.hu>2009-01-03 13:15:40 -0500
commit80855f7361eb68205e6bc1981928629d9b02d5c9 (patch)
tree029e78df08989c8d335b67a8031c784136a57539
parent2fdf66b491ac706657946442789ec644cc317e1a (diff)
cpumask: use alloc_cpumask_var_node where appropriate
Impact: Reduce inter-node memory traffic. Reduces inter-node memory traffic (offloading the global system bus) by allocating referenced struct cpumasks on the same node as the referring struct. Signed-off-by: Mike Travis <travis@sgi.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
-rw-r--r--arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c5
-rw-r--r--arch/x86/kernel/io_apic.c6
2 files changed, 6 insertions, 5 deletions
diff --git a/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c b/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c
index d0a001093b2d..28102ad1a363 100644
--- a/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c
+++ b/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c
@@ -547,8 +547,9 @@ static int __init acpi_cpufreq_early_init(void)
547 return -ENOMEM; 547 return -ENOMEM;
548 } 548 }
549 for_each_possible_cpu(i) { 549 for_each_possible_cpu(i) {
550 if (!alloc_cpumask_var(&per_cpu_ptr(acpi_perf_data, i) 550 if (!alloc_cpumask_var_node(
551 ->shared_cpu_map, GFP_KERNEL)) { 551 &per_cpu_ptr(acpi_perf_data, i)->shared_cpu_map,
552 GFP_KERNEL, cpu_to_node(i))) {
552 553
553 /* Freeing a NULL pointer is OK: alloc_percpu zeroes. */ 554 /* Freeing a NULL pointer is OK: alloc_percpu zeroes. */
554 free_acpi_perf_data(); 555 free_acpi_perf_data();
diff --git a/arch/x86/kernel/io_apic.c b/arch/x86/kernel/io_apic.c
index 3e070bb961d7..a25c3f76b8ac 100644
--- a/arch/x86/kernel/io_apic.c
+++ b/arch/x86/kernel/io_apic.c
@@ -212,11 +212,11 @@ static struct irq_cfg *get_one_free_irq_cfg(int cpu)
212 212
213 cfg = kzalloc_node(sizeof(*cfg), GFP_ATOMIC, node); 213 cfg = kzalloc_node(sizeof(*cfg), GFP_ATOMIC, node);
214 if (cfg) { 214 if (cfg) {
215 /* FIXME: needs alloc_cpumask_var_node() */ 215 if (!alloc_cpumask_var_node(&cfg->domain, GFP_ATOMIC, node)) {
216 if (!alloc_cpumask_var(&cfg->domain, GFP_ATOMIC)) {
217 kfree(cfg); 216 kfree(cfg);
218 cfg = NULL; 217 cfg = NULL;
219 } else if (!alloc_cpumask_var(&cfg->old_domain, GFP_ATOMIC)) { 218 } else if (!alloc_cpumask_var_node(&cfg->old_domain,
219 GFP_ATOMIC, node)) {
220 free_cpumask_var(cfg->domain); 220 free_cpumask_var(cfg->domain);
221 kfree(cfg); 221 kfree(cfg);
222 cfg = NULL; 222 cfg = NULL;