[PATCH] x86, kdump: crashkernel=X try to reserve below 896M first, then try below 4G, then MAXMEM
vgoyal at redhat.com
Thu Oct 24 10:02:41 EDT 2013
On Wed, Oct 23, 2013 at 11:11:51PM -0700, Yinghai Lu wrote:
> On Mon, Oct 21, 2013 at 8:16 AM, Vivek Goyal <vgoyal at redhat.com> wrote:
> > On Fri, Oct 18, 2013 at 10:45:43PM -0700, Yinghai Lu wrote:
> > IIUC, you are trying to say that with new kernel old kexec-tools will fail
> > at a different failure point. I don't see why that is a problem. It still
> > fails.
> Yes, that could cause confusion.
> We already knew it would fail possible at most later, we should make
> it skip allocation during first kernel booting.
One could upgrade kexec-tools later. So Kernel does not know whether
user space is able to handle higher memory regions or not. So forcing
kernel to skip memory allocation does not sound right to me.
Also even with memory reserved high, old kexec-tools which can't deal
with it will fail anyway. So I don't agree that it is a problem.
> > No, it is not that simple. Think from a distribution's perspective also.
> > We have the logic to scale reserved memory based on physical memory
> > present in the system. Now we are seeing bigger memory systems (which
> > would not have worked in the past). We still want to retain the existing
> > logic and not switch to crashkernel=x,high. One does not have to. It
> > makes life simpler.
> distribution should go with ",high" for 64 bit kernel and new kexec-tools.
> for 32bit kernel, you still can have ",high" or not, as ",high" is ignored.
Just because we have the facility to allocate memory starting from top, does
not mean that we should kill other options and force user to use this
With crashkernel=X,high, a low memory will be reserved for swiotlb. And
I don't want that extra memory reservation. I am more than happy to
reserve memory below 4G and not do low memory reservation.
> Even we want to extend crashkernel=XM, then i would like to have
> it identical to crashkernel=XM,high instead.
You are assuming that crashkernel=xM,high is always good. I am arguing
that because it requires low memory reservation for swiotlb, when IOMMU
is not around, it will end up reserving more memory. So it is not
necessarily better than reserving memory below 4G.
Hence both crashkernel=xM and crashkernel=XM,high have their own usage.
We have been using crashkernel=xM and we know it works. So extending it
to be able to allocate memory from higher regions, if sufficient memory
is not available in lower regions makes sense. Memory reservation below
4G is more efficient due to not requiring swiotlb. And crashkernel=xM
has been working for us and users are familiar with it.
So I don't see a point that why would you try to block any move to
extend crashkernel=xM semantics.
More information about the kexec