diff options
| -rw-r--r-- | mm/mempolicy.c | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/mm/mempolicy.c b/mm/mempolicy.c index 36cb46cddf61..79cea01f9f78 100644 --- a/mm/mempolicy.c +++ b/mm/mempolicy.c | |||
| @@ -2654,7 +2654,7 @@ void mpol_free_shared_policy(struct shared_policy *p) | |||
| 2654 | } | 2654 | } |
| 2655 | 2655 | ||
| 2656 | #ifdef CONFIG_NUMA_BALANCING | 2656 | #ifdef CONFIG_NUMA_BALANCING |
| 2657 | static bool __initdata numabalancing_override; | 2657 | static int __initdata numabalancing_override; |
| 2658 | 2658 | ||
| 2659 | static void __init check_numabalancing_enable(void) | 2659 | static void __init check_numabalancing_enable(void) |
| 2660 | { | 2660 | { |
| @@ -2663,9 +2663,15 @@ static void __init check_numabalancing_enable(void) | |||
| 2663 | if (IS_ENABLED(CONFIG_NUMA_BALANCING_DEFAULT_ENABLED)) | 2663 | if (IS_ENABLED(CONFIG_NUMA_BALANCING_DEFAULT_ENABLED)) |
| 2664 | numabalancing_default = true; | 2664 | numabalancing_default = true; |
| 2665 | 2665 | ||
| 2666 | /* Parsed by setup_numabalancing. override == 1 enables, -1 disables */ | ||
| 2667 | if (numabalancing_override) | ||
| 2668 | set_numabalancing_state(numabalancing_override == 1); | ||
| 2669 | |||
| 2666 | if (nr_node_ids > 1 && !numabalancing_override) { | 2670 | if (nr_node_ids > 1 && !numabalancing_override) { |
| 2667 | printk(KERN_INFO "Enabling automatic NUMA balancing. " | 2671 | printk(KERN_INFO "%s automatic NUMA balancing. " |
| 2668 | "Configure with numa_balancing= or the kernel.numa_balancing sysctl"); | 2672 | "Configure with numa_balancing= or the " |
| 2673 | "kernel.numa_balancing sysctl", | ||
| 2674 | numabalancing_default ? "Enabling" : "Disabling"); | ||
| 2669 | set_numabalancing_state(numabalancing_default); | 2675 | set_numabalancing_state(numabalancing_default); |
| 2670 | } | 2676 | } |
| 2671 | } | 2677 | } |
| @@ -2675,13 +2681,12 @@ static int __init setup_numabalancing(char *str) | |||
| 2675 | int ret = 0; | 2681 | int ret = 0; |
| 2676 | if (!str) | 2682 | if (!str) |
| 2677 | goto out; | 2683 | goto out; |
| 2678 | numabalancing_override = true; | ||
| 2679 | 2684 | ||
| 2680 | if (!strcmp(str, "enable")) { | 2685 | if (!strcmp(str, "enable")) { |
| 2681 | set_numabalancing_state(true); | 2686 | numabalancing_override = 1; |
| 2682 | ret = 1; | 2687 | ret = 1; |
| 2683 | } else if (!strcmp(str, "disable")) { | 2688 | } else if (!strcmp(str, "disable")) { |
| 2684 | set_numabalancing_state(false); | 2689 | numabalancing_override = -1; |
| 2685 | ret = 1; | 2690 | ret = 1; |
| 2686 | } | 2691 | } |
| 2687 | out: | 2692 | out: |
