ACPI On ARM: Good Or Bad For Linux?

Written by Michael Larabel in Arm on 24 September 2014 at 12:27 AM EDT. 9 Comments
ARM
Linux kernel developers currently have mixed feelings whether ACPI on ARM will be beneficial or not.

Well known Linux kernel developer Matthew Garrett who often has a lot to say about hardware firmware and UEFI SecureBoot wrote a post earlier this month about ACPI, kernels, and contracts with firmware.

Matthew was pessimistic about the prospects of ACPI for ARM. Matthew explained that now Linux (Android) is the dominant platform on ARM rather than Microsoft Windows, we could run into problems, "Software development is hard, and firmware development is software development with worse compilers. Firmware is inevitably going to rely on undefined behaviour. It's going to make assumptions about ordering. It's going to mishandle some cases. And it's the operating system's job to handle that. On x86 we know that systems are tested against Windows, and so we simply implement that behaviour. On ARM, we don't have that convenient reference. We are the reference. And that means that systems will end up accidentally depending on Linux-specific behaviour. Which means that if we ever change that behaviour, those systems will break. So far we've resisted calls for Linux to provide a contract to the firmware in the way that Windows does, simply because there's been no need to - we can just implement the same contract as Windows. How are we going to manage this on ARM? The worst case scenario is that a system is tested against, say, Linux 3.19 and works fine. We make a change in 3.21 that breaks this system, but nobody notices at the time. Another system is tested against 3.21 and works fine. A few months later somebody finally notices that 3.21 broke their system and the change gets reverted, but oh no! Reverting it breaks the other system. What do we do now? The systems aren't telling us which behaviour they expect, so we're left with the prospect of adding machine-specific quirks. This isn't scalable."

Grant Likely of Linaro has now published a rebuttal blog post entitled Don’t fear ACPI on ARM. Grant argues that ACPI on ARM isn't much to worry about as most hardware vendors care about Linux support on ARM, ACPI has changed a lot, Linux engineers are now part of the ACPI governance via the UEFI Forum, etc. While Grant raised some concerns in his blog post, overall he is optimistic about ACPI on ARM and that it won't be a lessened experience for Linux users.

Grant ended his post with, "While I agree with Matthew that getting the interface between firmware and the OS is hard, I do not see the nightmare scenario he is describing. It certainly hasn’t played out that way on x86 servers where Linux is already the preferred OS. Besides, I really cannot agree with the premise that Linux being the dominant OS is a bad thing! We have a lot more influence than we give ourselves credit for."
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week