Re: [PATCH 0/3] Cleanup kdump memmap= passing and e820 usage

H. Peter Anvin
2013-01-30T16:52:46Z

On 01/30/2013 08:39 AM, Thomas Renninger wrote:
>
>>> This:
>>> - heavily cleans up the unnecesary reserved memory passing via memmap=
>>> - still provides a clean way of passing a valid e820 table through
>>> boot structures (no Linux kernel made up e820 type passing)
>>> - Keeps complexity as low as possible and at one place and does not
>>> involve kexec-tools as another error source (passing a badly
>>> mangled e820 table or not being able to consider stuff the kernel
>>> can when mangeling).
>
> If for some reason the e820 table in kdump case needs to be
> touched again, I am pretty sure you do not want to look up
> kexec-tools code.
> Also you won't be able to fix/workaround things in kexec-tools
> the way you can in the kernel.
>

Say what? The kernel is an open source tool, so is kexec, and a *lot*
of people have dependencies on specific kernel versions which does not

> I also do not think it's a good idea to pass an unspecified,
> Linux kernel made up e820 type through the public boot interface.

It's our interface. We specify it. On the other hand, we may want to
make these negative numbers rather than starting at 128 to avoid future
collisions with real memory types (not that they are growing very fast.)

> So looking from the other side, passing a modified e820 table
> only has disadvantages. The only advantage I can see that
> memmap=..,X@Y,W@Z needs not to be passed. But this is rather
> short and static now and not huge depending on the e820 reserved
> entries from the BIOS (and still obvious where it comes from and why
> it gets passed. Passing things hidden in a modified e820 boot structure
> is not a good idea).

The command line is fundamentally a human-oriented interface and its
semantics change over time (considering the built-in command line stuff,
for example.) It is thus fragile.

The e820 map is fundamentally what you care about, and it has to be
passed correctly anyway -- or your changes are utterly broken. The
modifications that have to be performed (from RAM to KDUMP) is trivial.

I have to admit to being rather confused as to the separation of various
bits of kdump between the host kernel and various user-space components,
but the whole use of the command line to pass the memory map seems just
broken in light of everything that can go wrong.

-hpa

--
H. Peter Anvin, Intel Open Source Technology Center
I work for Intel. I don't speak on their behalf.