mm: numa: Initialse numa balancing after jump label initialisation
Subsystems (2)
PATCH 1/1 mm: numa: Initialse numa balancing after jump label initialisation
The command line parsing takes place before jump labels are initialised which generates a warning if numa_balancing= is specified and CONFIG_JUMP_LABEL is set. On older kernls before commit c4b2c0c5 (static_key: WARN on usage before jump_label_init was called) the kernel would have crashed. This patch enables automatic numa balancing later in the initialisation process if numa_balancing= is specified.
--- mm/mempolicy.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-)
mm/mempolicy.c +10 -6
@@ -2657,7 +2657,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 ) {
@@ -2666,9 +2666,14 @@ 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 sysctl" ); +printk (KERN_INFO "%s automatic NUMA balancing. " +"Configure with numa_balancing= or sysctl" , + numabalancing_default ?"Enabling" :"Disabling" );set_numabalancing_state (numabalancing_default); } }
@@ -2678,13 +2683,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:
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to [email protected]. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"[email protected]"> [email protected] </a>
Quoted 9 lines · Mel Gorman
The command line parsing takes place before jump labels are initialised which generates a warning if numa_balancing= is specified and
CONFIG_JUMP_LABELis set. On older kernls before commitc4b2c0c5(static_key: WARN on usage beforejump_label_initwas called) the kernel would have crashed. This patch enables automatic numa balancing later in the initialisation process if numa_balancing= is specified.Signed-off-by Mel Gorman <[email protected]>Cc Stable <[email protected]>
Signature · 7 lines
All rights reversed -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to [email protected]. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"[email protected]"> [email protected] </a>
Andrew Morton
maintainerQuoted 16 lines · On Mon, 27 Jan 2014 15:51:27 +0000 Mel Gorman <[email protected]> wrote:
The command line parsing takes place before jump labels are initialised which generates a warning if numa_balancing= is specified and
CONFIG_JUMP_LABELis set. On older kernls before commitc4b2c0c5(static_key: WARN on usage beforejump_label_initwas called) the kernel would have crashed. This patch enables automatic numa balancing later in the initialisation process if numa_balancing= is specified....
mm/mempolicy.c +3
-0@@ -2666,9 +2666,14 @@ 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 );
mm/mempolicy.c static void __init check_numabalancing_enable(void) · line 2679
Quoted 10 lines
mm/mempolicy.c +4
-2+if (nr_node_ids >1 && !numabalancing_override) { -printk (KERN_INFO "Enabling automatic NUMA balancing. " -"Configure with numa_balancing= or sysctl" ); +printk (KERN_INFO "%s automatic NUMA balancing. " +"Configure with numa_balancing= or sysctl" , + numabalancing_default ?"Enabling" :"Disabling" );set_numabalancing_state (numabalancing_default); } }
Current mainline is a bit different from this:
printk(KERN_INFO "Enabling automatic NUMA balancing. " "Configure with numa_balancing= or the kernel.numa_balancing sysctl");
So this won't apply as-is to -stable.
I assume you suggested the -stable backport to fix the it-crashes-before-c4b2c0c5 thing, so it isn't really needed in 3.12.x.
Or something. Please sort all that out when Greg comes back with a hey-that-didnt-apply.
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to [email protected]. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"[email protected]"> [email protected] </a>
Quoted 31 lines · Andrew Morton
Quoted 16 lines · On Mon, 27 Jan 2014 15:51:27 +0000 Mel Gorman <[email protected]> wrote:
The command line parsing takes place before jump labels are initialised which generates a warning if numa_balancing= is specified and
CONFIG_JUMP_LABELis set. On older kernls before commitc4b2c0c5(static_key: WARN on usage beforejump_label_initwas called) the kernel would have crashed. This patch enables automatic numa balancing later in the initialisation process if numa_balancing= is specified....
mm/mempolicy.c +3
-0@@ -2666,9 +2666,14 @@ 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 );mm/mempolicy.c static void __init check_numabalancing_enable(void) · line 2679
Quoted 10 lines
mm/mempolicy.c +4
-2+if (nr_node_ids >1 && !numabalancing_override) { -printk (KERN_INFO "Enabling automatic NUMA balancing. " -"Configure with numa_balancing= or sysctl" ); +printk (KERN_INFO "%s automatic NUMA balancing. " +"Configure with numa_balancing= or sysctl" , + numabalancing_default ?"Enabling" :"Disabling" );set_numabalancing_state (numabalancing_default); } }Current mainline is a bit different from this:
Quoted 5 lines
printk(KERN_INFO "Enabling automatic NUMA balancing. " "Configure with numa_balancing= or the kernel.numa_balancing sysctl");So this won't apply as-is to -stable.
That's ok.
Quoted 3 lines
I assume you suggested the -stable backport to fix the it-crashes-before-c4b2c0c5 thing, so it isn't really needed in 3.12.x.
I am recommending this patch for -stable because 3.12.x crashes. c4b2c0c5 prevents a crash but it is still the case that the parameter is not handled properly so backporting c4b2c0c5 is not a suitable alternative.
Quoted 2 lines
Or something. Please sort all that out when Greg comes back with a hey-that-didnt-apply.
I will.
Signature · 8 lines
Mel Gorman SUSE Labs -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to [email protected]. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"[email protected]"> [email protected] </a>