On Monday 29 January 2007 19:12, Linus Torvalds wrote:
And it will not be the last:-)
There are really two cases, one is easy, one hard:
1. The ACPI spec and our knowledge of how the HW and talking to our own BIOS
folks tells us quite a bit about how things are supposed to work.
2. "Windows Bug Compatibility" (tm)
When OEMs build systems and test them only with Windows, then
the implementation quirks of Windows get ingrained in the platforms.
Linux then tries to run on the same platform and wonders why
the BIOS does "unusual" things. The answer is because it has been
only tested on Windows and BIOS quirks slip through Windows testing.
To be fair, the exact same thing would happen in reverse to Windows
if vendors only tested with Linux.
http://www.linuxfirmwarekit.org/ is intended to help mitigate some of this
problem. So at least vendors that care about Linux can make sure that
they minimize the curve balls they throw us.
An example of a recent curve ball is when the BIOS supplies two APIC (MADT)
tables. Well, the spec says there should be only one... We have proof
that Windows doesn't use the 1st for enumerating processors because
Windows works on a box with a garbled 1st table.
If we prove that Windows doesn't use the second either then it means
they enumerate processors via the DSDT -- which means bringing up
the ACPI interpreter before bringing up SMP -- and that would require
a significant change to Linux boot sequence...
I agree with this plan, and I concur with your outlook.
I think Rafel is holding the ball here as we wait for an SMP-safe freezer:
http://lists.osdl.org/pipermail/linux-pm/2006-December/004233.html
cheers,
-Len
-