kdump: add missing RAM resource in crash_shrink_memory()
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: Michael 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: Andrew Morton <akpm@linux-foundation.org>