Thursday, 13 August 2009

acpi_serialize boot flag

ACPI in a multi processor environment can be a headache - a subtle one at that. The Differentiated System Description Table (DSDT) contains ACPI Machine Language (AML) bytecode that gets interpreted by the Linux Kernel ACPI driver. The DSDT varies from machine to machine as it is totally hardware specific. Sometimes an AML method is declared as NotSerialized when in fact it should be Serialised to prevent multiple threads of execution occurring simultaneously. To fix this, one could re-write the DSDT (non exactly user friendly), or ask for the BIOS to be fixed (not very likely).

Fortunately the Linux kernel has a workaround - the acpi_serialize boot flag. Boot the kernel with the acpi_serialize kernel boot flag and hopefully this will resolve this kind of issues.

It begs the question why doesn't this get picked up on other Operating Systems. Perhaps their ACPI AML interpreter does not allow concurrency, or they just ignore these kind of bugs and don't report them. Anyhow, ultimately these kind of BIOS bugs need addressing and meanwhile there is a Linux workaround.

1 comment:

  1. thx for info... keep writing and giving us an information... glhf for ur day!!!

    ReplyDelete