• Aneesh Kumar K.V's avatar
    mm/memmap_init: update variable name in memmap_init_zone · 1f8d75c1
    Aneesh Kumar K.V authored
    Patch series "mm/memory_hotplug: Shrink zones before removing memory", v6.
    
    This series fixes the access of uninitialized memmaps when shrinking
    zones/nodes and when removing memory.  Also, it contains all fixes for
    crashes that can be triggered when removing certain namespace using
    memunmap_pages() - ZONE_DEVICE, reported by Aneesh.
    
    We stop trying to shrink ZONE_DEVICE, as it's buggy, fixing it would be
    more involved (we don't have SECTION_IS_ONLINE as an indicator), and
    shrinking is only of limited use (set_zone_contiguous() cannot detect the
    ZONE_DEVICE as contiguous).
    
    We continue shrinking !ZONE_DEVICE zones, however, I reduced the amount of
    code to a minimum.  Shrinking is especially necessary to keep
    zone->contiguous set where possible, especially, on memory unplug of DIMMs
    at zone boundaries.
    
    --------------------------------------------------------------------------
    
    Zones are now properly shrunk when offlining memory blocks or when
    onlining failed.  This allows to properly shrink zones on memory unplug
    even if the separate memory blocks of a DIMM were onlined to different
    zones or re-onlined to a different zone after offlining.
    
    Example:
    
    :/# cat /proc/zoneinfo
    Node 1, zone  Movable
            spanned  0
            present  0
            managed  0
    :/# echo "online_movable" > /sys/devices/system/memory/memory41/state
    :/# echo "online_movable" > /sys/devices/system/memory/memory43/state
    :/# cat /proc/zoneinfo
    Node 1, zone  Movable
            spanned  98304
            present  65536
            managed  65536
    :/# echo 0 > /sys/devices/system/memory/memory43/online
    :/# cat /proc/zoneinfo
    Node 1, zone  Movable
            spanned  32768
            present  32768
            managed  32768
    :/# echo 0 > /sys/devices/system/memory/memory41/online
    :/# cat /proc/zoneinfo
    Node 1, zone  Movable
            spanned  0
            present  0
            managed  0
    
    This patch (of 6):
    
    The third argument is actually number of pages.  Change the variable name
    from size to nr_pages to indicate this better.
    
    No functional change in this patch.
    
    Link: http://lkml.kernel.org/r/20191006085646.5768-3-david@redhat.comSigned-off-by: default avatarAneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
    Signed-off-by: default avatarDavid Hildenbrand <david@redhat.com>
    Reviewed-by: default avatarPankaj Gupta <pagupta@redhat.com>
    Reviewed-by: default avatarDavid Hildenbrand <david@redhat.com>
    Cc: Michal Hocko <mhocko@suse.com>
    Cc: "Matthew Wilcox (Oracle)" <willy@infradead.org>
    Cc: "Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com>
    Cc: Pavel Tatashin <pasha.tatashin@soleen.com>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Dan Williams <dan.j.williams@intel.com>
    Cc: Logan Gunthorpe <logang@deltatee.com>
    Cc: Oscar Salvador <osalvador@suse.de>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    1f8d75c1
page_alloc.c 241 KB