Re: [PATCH] ACPI: Implement overriding of arbitrary ACPI tables via initrd

Thomas Renninger
2012-03-26T00:45:48Z

On Saturday 24 March 2012 05:43:09 H. Peter Anvin wrote:
> On 03/23/2012 08:02 PM, Thomas Renninger wrote:
> >>
> >> Sorry, it doesn't work that way.
> > I guess this would not be the first time a good feature has been added,
> > knowing that a more general API will be build around it later.
> > 10 lines are really easy to adopt.
> >
>
> No, what you want is to add a new interface, which is going to have to
> be maintained indefinitely. That's the problem.
It's a debug option...
Best would be if no distro specific mkinitrd magic is needed and it's
just as easy as it is:
cp DSDT.aml /boot/initrd-test
cat /boot/initrd >>/boot/initrd-test
and add a test boot entry to grub's menu.lst or whereever.
Then developers would not have to look at distro specific implementations
(which should not exist) about how to test a table quickly.

> >> I see two realistic options:
> >>
> >> 1. We use cpio encapsulation for everything, with a special namespace
> >> for items used directly by the kernel, e.g. "kernel/".
> >>
> >> + Simple, existing tools can pick apart
> >> - May lead people to believe that the early-initrd portion can be
> >> compressed like the "normal" initrd portion, leading to strange
> >> problems.
> > Can this be implemented without using dynamic memory allocations?
> > If not, it's not suitable for early APCI overriding.
>
> Yes it can, as long as it is uncompressed. It just becomes a matter of
> walking the cpio headers which is effectively a linked list.
>
> It is more code than the simple header option, though.
>
> By the way, if "relying on the bootloader" was an option in any way

Why exactly is a change in the bootloader not an option?
Not sure whether a version number is passed, but the magic number could be
changed for now.

> then
> we would already have a solution in the form of the kernel data linked
> list. Unfortunately to the best of my knowledge not a single bootloader
> provides support for it.
If the new magic number is passed, we get a linked list.
Otherwise we get it the old style and can still support that for several
years.
I agree that this should not be subject to change every here and there, but
"never ever change..." sounds as if something went wrong.
This is just an interface to the kernel, some apps, called bootloaders are
making use of?

It's not that I want to propagate a bigger change, I am all for the quick change
and proceed solution, I just wonder why above is not possible.

Thomas