Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 80855f73 authored by Mike Travis's avatar Mike Travis Committed by Ingo Molnar
Browse files

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: default avatarMike Travis <travis@sgi.com>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent 2fdf66b4
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -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();
+3 −3
Original line number Diff line number Diff line
@@ -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;