|
|
Subscribe / Log in / New account

Using Python to investigate EFI and ACPI

Using Python to investigate EFI and ACPI

Posted Sep 3, 2015 17:13 UTC (Thu) by marcH (subscriber, #57642)
In reply to: Using Python to investigate EFI and ACPI by aleXXX
Parent article: Using Python to investigate EFI and ACPI

> except for very simple cases you want something multithreaded or at least reacting to several different events.

"Very simple cases" is all I had in mind. Hardware has become so cheap that dealing with the complexity and unpredictability of a scheduler and preemption is not always worth it. See Arduino as a good and successful example.

For reacting to different events something like select()/poll() / or any kind of non-blocking event loop does the job. Even Java can do stuff like this (not for real-time but for scalability)

This reminds me of this (also successful) product I used to work on. It permanently hogs/hogged (some) CPU cores thanks to Linux' SCHED_FIFO and implements its own event loop with incredibly good real-time properties. This worked surprisingly well considering the kernel was not designed for this and caused almost no problem. I found only this one at the time: https://bugzilla.kernel.org/show_bug.cgi?id=16011

More worrying from a "bare-metal" perspective is Josh's comment about background tasks in EFI, I did not expect that.


to post comments

Using Python to investigate EFI and ACPI

Posted Sep 3, 2015 18:36 UTC (Thu) by josh (subscriber, #17465) [Link]

> More worrying from a "bare-metal" perspective is Josh's comment about background tasks in EFI, I did not expect that.

EFI has some interrupt processing, including timers. It uses that for things like USB keyboards and drives, or networking support. Also take a look at the calls related to Task Priority Level (TPL).

In theory, all of those should stop when you ExitBootServices(); theoretically EFI drivers could keep doing things as part of runtime services, but they shouldn't, and I haven't seen that in practice.


Copyright © 2025, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds