Skip to content

Commit

Permalink
cpumask: use alloc_cpumask_var_node where appropriate
Browse files Browse the repository at this point in the history
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 <[email protected]>
Signed-off-by: Ingo Molnar <[email protected]>
  • Loading branch information
Mike Travis authored and Ingo Molnar committed Jan 3, 2009
1 parent 2fdf66b commit 80855f7
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 5 deletions.
5 changes: 3 additions & 2 deletions arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c
Original file line number Diff line number Diff line change
Expand Up @@ -547,8 +547,9 @@ static int __init acpi_cpufreq_early_init(void)
return -ENOMEM;
}
for_each_possible_cpu(i) {
if (!alloc_cpumask_var(&per_cpu_ptr(acpi_perf_data, i)
->shared_cpu_map, GFP_KERNEL)) {
if (!alloc_cpumask_var_node(
&per_cpu_ptr(acpi_perf_data, i)->shared_cpu_map,
GFP_KERNEL, cpu_to_node(i))) {

/* Freeing a NULL pointer is OK: alloc_percpu zeroes. */
free_acpi_perf_data();
Expand Down
6 changes: 3 additions & 3 deletions arch/x86/kernel/io_apic.c
Original file line number Diff line number Diff line change
Expand Up @@ -212,11 +212,11 @@ static struct irq_cfg *get_one_free_irq_cfg(int cpu)

cfg = kzalloc_node(sizeof(*cfg), GFP_ATOMIC, node);
if (cfg) {
/* FIXME: needs alloc_cpumask_var_node() */
if (!alloc_cpumask_var(&cfg->domain, GFP_ATOMIC)) {
if (!alloc_cpumask_var_node(&cfg->domain, GFP_ATOMIC, node)) {
kfree(cfg);
cfg = NULL;
} else if (!alloc_cpumask_var(&cfg->old_domain, GFP_ATOMIC)) {
} else if (!alloc_cpumask_var_node(&cfg->old_domain,
GFP_ATOMIC, node)) {
free_cpumask_var(cfg->domain);
kfree(cfg);
cfg = NULL;
Expand Down

0 comments on commit 80855f7

Please sign in to comment.