Re: [Fastboot] Stupid kexec/kdump question...

From: Valdis . Kletnieks
Date: Wed Sep 27 2006 - 08:53:43 EST


On Wed, 27 Sep 2006 02:00:07 MDT, Eric W. Biederman said:

> I suspect the reason for the matching kernel from the distros is just
> that everything is quite new so they don't want to wonder if you old
> kernel has all of the appropriate support, and by that point they can
> probably assume the shipped kernel works.

And careful reading of the Fedora scripts shows how to provide your
own custom kernel/initrd pair. Setting the right variable in the right
config file will use that - if it's unset, it will go with a kernel
named ${kernelversion}kdump.

> >> > 2) I'm presuming that a massively stripped down kernel (no sound support,
> >> > no netfilter, no etc) that just has what's needed to mount the dump location
> >> > is sufficient?
> >
> > Yes

I'm definitely submitting a doc patch to explain all this in more detail, as
soon as I get it figured out enough. ;)

> >> > 3) The docs recommend 'crashkernel=64M@16M', but that's 8% of my memory.
> >> > What will happen if I try '16M@16M' instead? Just slower copying due to
> >> > a smaller buffer cache space, or something more evil?
> >
> > There is a lower bound to how small you can make the space, which
> > is basically how little memory space your post-crash kernel needs.
> > 16M is probably pushing it, but 32M should be more than possible.
> > Experimentation is really the order of the day here.
>
> At that level I would say that below 32M is where you start dealing with
> custom built programs, instead of slapping a bunch of utilities inside
> a ramdisk. I suspect with a little care you could get a few K user
> space executable and fit everything inside of 4M. But I don't know if anyone
> is that ambitious yet.

Well, the stripped down kernel is right around 2M. Unfortunately, I need
to run lvm.static, which is another 1.5M at least. So unless busybox has
grown support for LVM, I'm looking at 8M at best.

Another stupid question - I see how the first kernel gets the 'crashkernel='
parameter and knows how much space there is. But if you set it to 32M@16M,
how does the kdump kernel know it only has 32M? Or does it just start at
the 16M line, and it's your job to make sure it doesn't go over the 48M line
and start corrupting the dump?

Attachment: pgp00000.pgp
Description: PGP signature