|
@@ -2654,7 +2654,7 @@ void mpol_free_shared_policy(struct shared_policy *p)
|
|
|
}
|
|
|
|
|
|
#ifdef CONFIG_NUMA_BALANCING
|
|
|
-static bool __initdata numabalancing_override;
|
|
|
+static int __initdata numabalancing_override;
|
|
|
|
|
|
static void __init check_numabalancing_enable(void)
|
|
|
{
|
|
@@ -2663,9 +2663,15 @@ static void __init check_numabalancing_enable(void)
|
|
|
if (IS_ENABLED(CONFIG_NUMA_BALANCING_DEFAULT_ENABLED))
|
|
|
numabalancing_default = true;
|
|
|
|
|
|
+ /* Parsed by setup_numabalancing. override == 1 enables, -1 disables */
|
|
|
+ if (numabalancing_override)
|
|
|
+ set_numabalancing_state(numabalancing_override == 1);
|
|
|
+
|
|
|
if (nr_node_ids > 1 && !numabalancing_override) {
|
|
|
- printk(KERN_INFO "Enabling automatic NUMA balancing. "
|
|
|
- "Configure with numa_balancing= or the kernel.numa_balancing sysctl");
|
|
|
+ printk(KERN_INFO "%s automatic NUMA balancing. "
|
|
|
+ "Configure with numa_balancing= or the "
|
|
|
+ "kernel.numa_balancing sysctl",
|
|
|
+ numabalancing_default ? "Enabling" : "Disabling");
|
|
|
set_numabalancing_state(numabalancing_default);
|
|
|
}
|
|
|
}
|
|
@@ -2675,13 +2681,12 @@ static int __init setup_numabalancing(char *str)
|
|
|
int ret = 0;
|
|
|
if (!str)
|
|
|
goto out;
|
|
|
- numabalancing_override = true;
|
|
|
|
|
|
if (!strcmp(str, "enable")) {
|
|
|
- set_numabalancing_state(true);
|
|
|
+ numabalancing_override = 1;
|
|
|
ret = 1;
|
|
|
} else if (!strcmp(str, "disable")) {
|
|
|
- set_numabalancing_state(false);
|
|
|
+ numabalancing_override = -1;
|
|
|
ret = 1;
|
|
|
}
|
|
|
out:
|