lkml.org 
[lkml]   [2004]   [Oct]   [29]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
/
DateFri, 29 Oct 2004 00:06:02 -0400
FromJeff Garzik <>
SubjectRe: Why ACPI is in the kernel, notes from 2001
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@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 14:07    [from the cache]
©2003-2008