Messages in this thread | | | Subject | Re: [PATCH 0/8] x86, acpi: Move acpi_initrd_override() earlier. | From | Toshi Kani <> | Date | Thu, 22 Aug 2013 09:52:09 -0600 |
| |
Hello Tejun,
On Wed, 2013-08-21 at 23:32 -0400, Tejun Heo wrote: > On Wed, Aug 21, 2013 at 04:36:35PM -0600, Toshi Kani wrote: > > I agree that ACPI is rather complicated stuff. But in my experience, > > the majority complication comes from ACPI namespace and methods, not > > from ACPI tables. Do you really think ACPI table init is that risky? I > > consider ACPI tables are part of the minimum config info, esp. for > > legacy-free platforms. > > It's just that we're talking about the very first stage of boot. We > really don't do much there and pulling in ACPI code into that stage is > a lot by comparison. If that's gonna happen, it needs pretty strong > justification.
It moves up the ACPI table init code, which itself is simple. And ACPI tables are defined to be pursed at early boot-time, which is why they exist in addition to ACPI namespace/methods. They are similar to EFI memory table. Firmware publishes tables in one way or the other.
I understand that you are concerned about stability of the ACPI stuff, which I think is a valid point, but most of (if not all) of the ACPI-related issues come from ACPI namespace/methods, which is a very different thing. Please do not mix up those two. The ACPI namespace/methods stuff remains the same and continues to be initialized at very late in the boot sequence.
What's making the patchset complicated is acpi_initrd_override(), which is intended for developers and allows overwriting ACPI bits at their own risk. This feature won't be used by regular users.
> > earlyprintk is just another example to this SRAT issue. The local page > > table is yet another example. My hope here is for us to be able to > > utilize ACPI tables properly without hitting this kind of ordering > > issues again and again, which requires considerable time & effort to > > address. > > So, the two things brought up at this point are early parsing of SRAT, > which can't really solve the problem at hand anyway,
If you are referring the issue of kernel image location, it is a limitation in the current implementation, not a technical limitation. I know other OS that supports movable memory and puts the kernel image into a movable memory with SRAT by changing the bootloader.
Also, how do you support local page tables without pursing SRAT early?
> and earlyprintk > which should be implemented in minimal way which is not activated > unless specifically enabled with earlyprintk boot param. Neither > seems to justify pulling in full ACPI into early boot, right?
Initializing page tables on large systems may take a long time, and I do think that earlyprink needs to be available before that point.
Thanks, -Toshi
| |