Suspend blocker suspense
Alan's dissent was arguably the most coherent and constructive of just about any that have been posted thus far. He thinks that the problem being addressed by suspend blockers (misbehaving applications) is real, but the solution is wrong. He suggests, instead, the addition of a setpidle() system call which indicates the extent to which a process can prevent the system from going into an idle state. If the process is running an untrusted application, the system would be able to go idle (or suspend) even if that process is runnable at the time. More trusted processes (the ones which would be able to use suspend blockers in the Android scheme) would have a higher priority and would be able to run at any time.
The other piece of the solution, according to Alan, is to put pressure on the authors of badly-written applications. Thomas agrees:
A number of developers have expressed the fear that trying to mitigate the impact of badly-written applications in the kernel will only serve to take the pressure off developers, leading to more bad applications over time.
Meanwhile, Rafael Wysocki has sent a pull request for suspend blockers to Linus, saying:
As of this writing, Linus has not said what he intends to do. Given the
way the conversation has gone, though, it would not be surprising to see
the merge window end with no suspend blockers in the mainline. Merging a
user-visible feature like suspend blockers is a move which cannot be undone
after the 2.6.35 release; when there is this much disagreement, letting
another development cycle go by may seem like the prudent thing to do.
| Index entries for this article | |
|---|---|
| Kernel | Android |
| Kernel | Power management/Opportunistic suspend |
