Skip to content
  • Michal Hocko's avatar
    mm: do not warn on offline nodes unless the specific node is explicitly requested · 8addc2d0
    Michal Hocko authored
    Oscar has noticed that we splat
    
       WARNING: CPU: 0 PID: 64 at ./include/linux/gfp.h:467 vmemmap_alloc_block+0x4e/0xc9
       [...]
       CPU: 0 PID: 64 Comm: kworker/u4:1 Tainted: G        W   E     4.17.0-rc5-next-20180517-1-default+ #66
       Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.0.0-prebuilt.qemu-project.org 04/01/2014
       Workqueue: kacpi_hotplug acpi_hotplug_work_fn
       Call Trace:
        vmemmap_populate+0xf2/0x2ae
        sparse_mem_map_populate+0x28/0x35
        sparse_add_one_section+0x4c/0x187
        __add_pages+0xe7/0x1a0
        add_pages+0x16/0x70
        add_memory_resource+0xa3/0x1d0
        add_memory+0xe4/0x110
        acpi_memory_device_add+0x134/0x2e0
        acpi_bus_attach+0xd9/0x190
        acpi_bus_scan+0x37/0x70
        acpi_device_hotplug+0x389/0x4e0
        acpi_hotplug_work_fn+0x1a/0x30
        process_one_work+0x146/0x340
        worker_thread+0x47/0x3e0
        kthread+0xf5/0x130
        ret_from_fork+0x35/0x40
    
    when adding memory to a node that is currently offline.
    
    The VM_WARN_ON is just too loud without a good reason.  In this
    particular case we are doing
    
    	alloc_pages_node(node, GFP_KERNEL|__GFP_RETRY_MAYFAIL|__GFP_NOWARN, order)
    
    so we do not insist on allocating from the given node (it is more a
    hint) so we can fall back to any other populated node and moreover we
    explicitly ask to not warn for the allocation failure.
    
    Soften the warning only to cases when somebody asks for the given node
    explicitly by __GFP_THISNODE.
    
    Link: http://lkml.kernel.org/r/20180523125555.30039-3-mhocko@kernel.org
    
    
    Signed-off-by: default avatarMichal Hocko <mhocko@suse.com>
    Reported-by: default avatarOscar Salvador <osalvador@techadventures.net>
    Tested-by: default avatarOscar Salvador <osalvador@techadventures.net>
    Reviewed-by: default avatarPavel Tatashin <pasha.tatashin@oracle.com>
    Cc: Vlastimil Babka <vbabka@suse.cz>
    Cc: Reza Arbab <arbab@linux.vnet.ibm.com>
    Cc: Igor Mammedov <imammedo@redhat.com>
    Cc: Vitaly Kuznetsov <vkuznets@redhat.com>
    Cc: Anshuman Khandual <khandual@linux.vnet.ibm.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    8addc2d0