[Bug 785394] Re: Hard-coded crashkernel=... memory reservation in /etc/grub.d/10_linux is insufficient
Louis Bouchard
louis.bouchard at canonical.com
Wed Dec 18 15:38:39 UTC 2013
== Test on a VM with 384Mb of memory ==
1)Original setup - crashkernel=384M-2G:64M,2G-:128M
ubuntu at SaucyS:~$ free
total used free shared buffers cached
Mem: 306572 144412 162160 0 21900 73716
-/+ buffers/cache: 48796 257776
Swap: 1044476 0 1044476
ubuntu at SaucyS:~$ dmesg | grep crash
[ 0.000000] Command line: BOOT_IMAGE=/vmlinuz-3.11.0-12-generic root=/dev/mapper/SaucyS--vg-root ro crashkernel=384M-2G:64M,2G-:128M console=ttyS0,115200
[ 0.000000] Reserving 64MB of memory at 288MB for crashkernel (System RAM: 384MB)
2) Proposed setup - crashkernel=384-:128M
root at SaucyS:~# free
total used free shared buffers cached
Mem: 241036 146528 94508 0 21888 74100
-/+ buffers/cache: 50540 190496
Swap: 1044476 0 1044476
root at SaucyS:~# dmesg | grep crash
[ 0.000000] Command line: BOOT_IMAGE=/vmlinuz-3.11.0-12-generic root=/dev/mapper/SaucyS--vg-root ro crashkernel=384M-:128M console=ttyS0,115200
[ 0.000000] Reserving 128MB of memory at 224MB for crashkernel (System RAM: 384MB)
3) Proposed setup on a 285Mb VM
cat /proc/cmdline
BOOT_IMAGE=/vmlinuz-3.11.0-12-generic root=/dev/mapper/SaucyS--vg-root ro crashkernel=384M-:128M console=ttyS0,115200
part of boot log:
* Loading crashkernel... Memory for crashkernel is not reserved
Please reserve memory by passing "crashkernel=X at Y" parameter to the kernel
Then try loading kdump kernel [fail]
= Alternative tests =
1) Forcing 128Mb reservation on 285Mb VM
root at SaucyS:~# free
total used free shared buffers cached
Mem: 140684 125108 15576 0 7988 67296
-/+ buffers/cache: 49824 90860
Swap: 1044476 0 1044476
root at SaucyS:~# dmesg | grep crash
[ 0.000000] Command line: BOOT_IMAGE=/vmlinuz-3.11.0-12-generic root=/dev/mapper/SaucyS--vg-root ro crashkernel=128M console=ttyS0,115200
[ 0.000000] Reserving 128MB of memory at 128MB for crashkernel (System RAM: 284MB)
[ 0.000000] Kernel command line: BOOT_IMAGE=/vmlinuz-3.11.0-12-generic root=/dev/mapper/SaucyS--vg-root ro crashkernel=128M console=ttyS0,115200
2) Forcing 128Mb reservation on 255Mb VM
root at SaucyS:~# free
total used free shared buffers cached
Mem: 113048 99292 13756 0 6624 44132
-/+ buffers/cache: 48536 64512
Swap: 1044476 0 1044476
root at SaucyS:~# dmesg | grep crash
[ 0.000000] Command line: BOOT_IMAGE=/vmlinuz-3.11.0-12-generic root=/dev/mapper/SaucyS--vg-root ro crashkernel=128M console=ttyS0,115200
[ 0.000000] Reserving 128MB of memory at 96MB for crashkernel (System RAM: 255MB)
[ 0.000000] Kernel command line: BOOT_IMAGE=/vmlinuz-3.11.0-12-generic root=/dev/mapper/SaucyS--vg-root ro crashkernel=128M console=ttyS0,115200
So even for a VM with 256Mb of RAM, it could boot with crashkernel=128M
but I think it is safe to restrict it to 384Mb onward.
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to grub in Ubuntu.
https://bugs.launchpad.net/bugs/785394
Title:
Hard-coded crashkernel=... memory reservation in /etc/grub.d/10_linux
is insufficient
Status in “grub” package in Ubuntu:
In Progress
Bug description:
Binary package hint: grub-pc
This concerns grub-pc 1.99~rc1-13ubuntu3 in Ubuntu Natty.
The /etc/grub.d/10_linux file contains this snippet:
# add crashkernel option if we have the required tools
if [ -x "/usr/bin/makedumpfile" ] && [ -x "/sbin/kexec" ]; then
GRUB_CMDLINE_EXTRA="$GRUB_CMDLINE_EXTRA crashkernel=384M-2G:64M,2G-:128M"
fi
I am on a system with 2GB of RAM (reported as 2038MB), and according
to the kernel startup messages, 64MB is reserved for the crash kernel.
Unfortunately, this does not appear to be enough memory for the
regular Ubuntu kernel to boot. I am attaching a kernel log obtained
via serial cable; it shows the initial boot, a crash in the kernel's
video-driver-related code, the subsequent crashkernel boot, and then
an apparent "out of memory" kernel panic. (A side effect of the
"double crash" is that the system is left unresponsive, requiring a
manual reset instead of rebooting itself automatically.)
If I double the memory numbers in the crashkernel=... argument, so
that the reservation is 128MB, the system correctly goes on to attempt
a vmcore dump and reboot.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/grub/+bug/785394/+subscriptions
More information about the foundations-bugs
mailing list