← Back to team overview

kernel-packages team mailing list archive

[Bug 785394] Re: Hard-coded crashkernel=... memory reservation in /etc/grub.d/10_linux is insufficient

 

Yeah looks like the minimum amount of ram required to complete the
writing of a dump in the case of a generic-image and default initrd is
roughly 109-110M with the 3.8 kernel (I just tested it).

My $.02 on this matter is that the default values should work for
default installs.  Right now that is not the case even if they have
enough ram to complete a dump.

My guess is that 64M works for virtual images just fine, but it's not
enough for generic images.  So perhaps we should make this value
dependent on virtual or generic being in the kernel name.

So how about something like the below patch.  I haven't fully vetted it,
but want to see what people think.

--- 10_linux.orig	2013-12-11 14:33:00.384344265 -0600
+++ 10_linux	2013-12-11 15:13:42.485036921 -0600
@@ -73,7 +73,7 @@ done
 
 # 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:92M,2G-:128M"
+    CRASH="on"
 fi
 
 linux_entry ()
@@ -120,6 +120,14 @@ EOF
 	echo	'$message'
 EOF
   fi
+  if [ "x${CRASH}" = "xon" ]; then
+    if [ "x${basename%%generic}" != "x${basename}" ]; then
+	args="$args crashkernel=384M-2G:110M,2G-:128M"
+    elif [ "${basename%%virtual}" != ${basename} ]; then
+        args="$args crashkernel=384M-2G:64M,2G-:128M"
+    fi
+  fi
+    
   if test -d /sys/firmware/efi && test -e "${linux}.efi.signed"; then
     cat << EOF
 	linux	${rel_dirname}/${basename}.efi.signed root=${linux_root_device_thisversion} ro ${args}

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to kexec-tools in Ubuntu.
https://bugs.launchpad.net/bugs/785394

Title:
  Hard-coded crashkernel=... memory reservation in /etc/grub.d/10_linux
  is insufficient

Status in “grub2” package in Ubuntu:
  Confirmed
Status in “kexec-tools” 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/grub2/+bug/785394/+subscriptions