• Michael Holzheu's avatar
    kdump: add missing RAM resource in crash_shrink_memory() · 6480e5a0
    Michael Holzheu authored
    When shrinking crashkernel memory using /sys/kernel/kexec_crash_size for
    the newly added memory no RAM resource is created at the moment.
    
    Example:
    
      $ cat /proc/iomem
      00000000-bfffffff : System RAM
        00000000-005b7ac3 : Kernel code
        005b7ac4-009743bf : Kernel data
        009bb000-00a85c33 : Kernel bss
      c0000000-cfffffff : Crash kernel
      d0000000-ffffffff : System RAM
    
      $ echo 0 > /sys/kernel/kexec_crash_size
      $ cat /proc/iomem
      00000000-bfffffff : System RAM
        00000000-005b7ac3 : Kernel code
        005b7ac4-009743bf : Kernel data
        009bb000-00a85c33 : Kernel bss
                                       <<-- here is System RAM missing
      d0000000-ffffffff : System RAM
    
    One result of this bug is that the memory chunk can never be set offline
    using memory hotplug.  With this patch I insert a new "System RAM"
    resource for the released memory.  Then the upper example looks like the
    following:
    
      $ echo 0 > /sys/kernel/kexec_crash_size
      $ cat /proc/iomem
      00000000-bfffffff : System RAM
        00000000-005b7ac3 : Kernel code
        005b7ac4-009743bf : Kernel data
        009bb000-00a85c33 : Kernel bss
      c0000000-cfffffff : System RAM   <<-- new rescoure
      d0000000-ffffffff : System RAM
    
    And now I can set chunk c0000000-cfffffff offline.
    Signed-off-by: default avatarMichael Holzheu <holzheu@linux.vnet.ibm.com>
    Cc: Vivek Goyal <vgoyal@redhat.com>
    Cc: "Eric W. Biederman" <ebiederm@xmission.com>
    Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
    Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    6480e5a0
kexec.c 39.5 KB