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>
This commit is contained in:
parent
2fdf66b491
commit
80855f7361
2 changed files with 6 additions and 5 deletions
|
@ -547,8 +547,9 @@ static int __init acpi_cpufreq_early_init(void)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
}
|
}
|
||||||
for_each_possible_cpu(i) {
|
for_each_possible_cpu(i) {
|
||||||
if (!alloc_cpumask_var(&per_cpu_ptr(acpi_perf_data, i)
|
if (!alloc_cpumask_var_node(
|
||||||
->shared_cpu_map, GFP_KERNEL)) {
|
&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. */
|
/* Freeing a NULL pointer is OK: alloc_percpu zeroes. */
|
||||||
free_acpi_perf_data();
|
free_acpi_perf_data();
|
||||||
|
|
|
@ -212,11 +212,11 @@ static struct irq_cfg *get_one_free_irq_cfg(int cpu)
|
||||||
|
|
||||||
cfg = kzalloc_node(sizeof(*cfg), GFP_ATOMIC, node);
|
cfg = kzalloc_node(sizeof(*cfg), GFP_ATOMIC, node);
|
||||||
if (cfg) {
|
if (cfg) {
|
||||||
/* FIXME: needs alloc_cpumask_var_node() */
|
if (!alloc_cpumask_var_node(&cfg->domain, GFP_ATOMIC, node)) {
|
||||||
if (!alloc_cpumask_var(&cfg->domain, GFP_ATOMIC)) {
|
|
||||||
kfree(cfg);
|
kfree(cfg);
|
||||||
cfg = NULL;
|
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);
|
free_cpumask_var(cfg->domain);
|
||||||
kfree(cfg);
|
kfree(cfg);
|
||||||
cfg = NULL;
|
cfg = NULL;
|
||||||
|
|
Loading…
Reference in a new issue