Re: [PATCH] kexec: use Crash kernel for Crash kernel low

From: Vivek Goyal
Date: Tue Apr 02 2013 - 09:50:37 EST


On Mon, Apr 01, 2013 at 06:11:38PM -0700, Yinghai Lu wrote:
> On Mon, Apr 1, 2013 at 3:40 PM, Yinghai Lu <yinghai@xxxxxxxxxx> wrote:
> > On Mon, Apr 1, 2013 at 3:20 PM, H. Peter Anvin <hpa@xxxxxxxxx> wrote:
> >> On 04/01/2013 03:17 PM, Yinghai Lu wrote:
> >>>
> >>> And his last suggestion is just as his old second suggestion.
> >>>
> >>> I just check the code again, it looks it is easy to change it to support:
> >>> 1. crashkernel=XM
> >>> 2. crashkernel_high=XM
> >>> 3. crashkernel_high=XM crashkernel_low=YM
> >>>
> >>
> >> Yes... my objections that you are giving the user the headache of
> >> dealing with this very much remains, but I don't think we have any good
> >> options. However, the <size>,<options>.... syntax is at least
> >> extensible, which the above syntax is not.
> >
> > ok, will check crashkernel=XM,high
>
> Please check attached four patches that should get into upstream for 3.9.
> I sent first and second before.
> other two is addressing old kexec-tools with kdump on new kernel.

Hi Yinghai,

I think there is still little confusion. What does crashkernel=X,high
mean. Currently it seems to mean that memory is allocated from region
above 4G and if it is not available, allocation fails.

I thought what would be more useful if it means that we start search
for memory from higher range of addresses and continue down till we
find a suitable memory area.

That means memory could either come from higher memory regions (above
4G) or from low memory regions (below 4G) depending on how much physical
RAM system has.

Similary crashkernel=X or crashkernel=X,low will mean that we start
scanning for free memory from low memory area first. And if sufficient
amount of memory is not available below 4G, memory could very well
come from above 4G.

That way a distribution could decide its default memory requirement
(say 128M) and they could simply say, crashkernel=128M or
crashkernel=128M,high (depending on whether they support 64bit bzImage
or not).

To achieve the behavior where we want to enforce that memory either
comes from low or high area only otherwise allocation fails, we could
probably use.

crashkernel=X,high_only
crashkernel=X,low_only

And crashkernel_low could be replaced with crashkernel=X,low_only

I think it is reasonable to continue to reserve low memory automatically
for swiotlb if crash memory reservation happens above 4G. Users should
be able to opt out of it using crashkernel=0M,low_only.

Thanks
Vivek
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/