• David Hildenbrand's avatar
    s390: simplify memory notifier for protecting kdump crash kernel area · 4765600f
    David Hildenbrand authored
    Assume we have a crashkernel area of 256MB reserved:
    
    root@vm0:~# cat /proc/iomem
    00000000-6fffffff : System RAM
      0f258000-0fcfffff : Kernel code
      0fd00000-101d10e3 : Kernel data
      105b3000-1068dfff : Kernel bss
    70000000-7fffffff : Crash kernel
    
    This exactly corresponds to memory block 7 (memory block size is 256MB).
    Trying to offline that memory block results in:
    
    root@vm0:~# echo "offline" > /sys/devices/system/memory/memory7/state
    -bash: echo: write error: Device or resource busy
    
    [  128.458762] page:000003d081c00000 refcount:1 mapcount:0 mapping:00000000d01cecd4 index:0x0
    [  128.458773] flags: 0x1ffff00000001000(reserved)
    [  128.458781] raw: 1ffff00000001000 000003d081c00008 000003d081c00008 0000000000000000
    [  128.458781] raw: 0000000000000000 0000000000000000 ffffffff00000001 0000000000000000
    [  128.458783] page dumped because: unmovable page
    
    The craskernel area is marked reserved in the bootmem allocator. This
    results in the memmap getting initialized (refcount=1, PG_reserved), but
    the pages are never freed to the page allocator.
    
    So these pages look like allocated pages that are unmovable (esp.
    PG_reserved), and therefore, memory offlining fails early, when trying to
    isolate the page range.
    
    We only have to care about the exchange area, make that clear.
    Signed-off-by: default avatarDavid Hildenbrand <david@redhat.com>
    Reviewed-by: default avatarGerald Schaefer <gerald.schaefer@de.ibm.com>
    Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
    Cc: Vasily Gorbik <gor@linux.ibm.com>
    Cc: Christian Borntraeger <borntraeger@de.ibm.com>
    Cc: Philipp Rudo <prudo@linux.ibm.com>
    Cc: Gerald Schaefer <gerald.schaefer@de.ibm.com>
    Cc: Eric W. Biederman <ebiederm@xmission.com>
    Cc: Michal Hocko <mhocko@kernel.org>
    Link: https://lore.kernel.org/r/20200424083904.8587-1-david@redhat.comSigned-off-by: default avatarChristian Borntraeger <borntraeger@de.ibm.com>
    Signed-off-by: default avatarVasily Gorbik <gor@linux.ibm.com>
    4765600f
setup.c 31.4 KB