[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