Re: Why ACPI is in the kernel, notes from 2001

From: Jeff Garzik
Date: Thu Oct 28 2004 - 23:07:35 EST


Moore, Robert wrote:
Here's some notes from 2001:

Why ACPI is in the kernel

ACPI and the AML interpreter are required very early during kernel
initialization, before the device drivers are loaded. Control methods
are executed by the interpreter at this time (such as all device _INI
methods).

ACPI owns the ACPI hardware and ACPI interrupt (SCI), and therefore this
part of the ACPI subsystem is similar to a device driver.

Control methods that are executed via the AML interpreter are allowed
direct access to all of physical memory, all I/O space, and all PCI
configuration space (via Operation Regions.)

Device drivers such as the Embedded Controller, Battery, and Thermal use
ACPI services and execute AML control methods during their operation.

Device driver callback routines are invoked directly from the AML
interpreter when the ASL Notify operation is executed.

ACPI and the AML interpreter cannot be paged out. How do you wake up
the disk used for paging? Not a good idea for other device drivers to
depend on code that may be paged out.

Also,

As of May 2000, the AML interpreter was in acpid! Shortly after that, we
made a conscious decision to move it into the driver for the reasons
above. The code may be large (for Linux), but it is necessary and must
remain resident (it is non-pageable).


None of this implies that the interpreter cannot be in initramfs-like userspace, which neither requires a device driver nor will ever be paged out.

Jeff


-
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/