memory_hotplug: introduce memhp_default_state= command line parameter
authorVitaly Kuznetsov <vkuznets@redhat.com>
Fri, 20 May 2016 00:13:06 +0000 (17:13 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 20 May 2016 02:12:14 +0000 (19:12 -0700)
CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE specifies the default value for the
memory hotplug onlining policy.  Add a command line parameter to make it
possible to override the default.  It may come handy for debug and
testing purposes.

Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Cc: Jonathan Corbet <corbet@lwn.net>
Cc: Dan Williams <dan.j.williams@intel.com>
Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
Cc: Mel Gorman <mgorman@techsingularity.net>
Cc: David Vrabel <david.vrabel@citrix.com>
Cc: David Rientjes <rientjes@google.com>
Cc: Igor Mammedov <imammedo@redhat.com>
Cc: Lennart Poettering <lennart@poettering.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Documentation/kernel-parameters.txt
mm/memory_hotplug.c

index 7944031..2edb27b 100644 (file)
@@ -2161,6 +2161,14 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
                        [KNL,SH] Allow user to override the default size for
                        per-device physically contiguous DMA buffers.
 
+        memhp_default_state=online/offline
+                       [KNL] Set the initial state for the memory hotplug
+                       onlining policy. If not specified, the default value is
+                       set according to the
+                       CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE kernel config
+                       option.
+                       See Documentation/memory-hotplug.txt.
+
        memmap=exactmap [KNL,X86] Enable setting of an exact
                        E820 memory map, as specified by the user.
                        Such memmap=exactmap lines can be constructed based on
index fcafbfc..caf2a14 100644 (file)
@@ -85,6 +85,17 @@ bool memhp_auto_online = true;
 #endif
 EXPORT_SYMBOL_GPL(memhp_auto_online);
 
+static int __init setup_memhp_default_state(char *str)
+{
+       if (!strcmp(str, "online"))
+               memhp_auto_online = true;
+       else if (!strcmp(str, "offline"))
+               memhp_auto_online = false;
+
+       return 1;
+}
+__setup("memhp_default_state=", setup_memhp_default_state);
+
 void get_online_mems(void)
 {
        might_sleep();