This week's episode of "Desperate Androids"
On June 4, Ingo Molnar posted a proposed solution which was a variant of the quality-of-service-based approach described last week. It looked feasible until Linus wandered into the discussion (for the first time), saying:
So the discussion started anew. Linus pushed for a solution which avoids the rest of the core kernel (and the scheduler in particular) as much as possible - a goal which the initial suspend blocker implementation shared. He also raised the issue of multi-core processors, which are not really addressed by the current code. There might be value in being able to shut down individual cores as the system load drops, suspending the system when there's nothing for the last CPU to do. One assumes that SMP handsets are not that far away, so planning for them would be a sensible thing to do.
All told, the situation has grown more complicated - but it also seems that
the will to solve it has grown. It is becoming clear that the real
solution may not show up in a hurry, though. So, in the meantime, we may see a
stopgap solution which was first proposed early in the discussion: add
stub versions of the suspend blocker API so that various Android drivers
can be merged unchanged. That should help the mainline and Android kernels
come much closer to convergence while allowing time for a globally
acceptable solution to the suspend blocker problem to be solved. We will
likely see those stubs merged, possibly with a 2.6.37 expiration date. The
more contentious stuff will come some time after.
Index entries for this article | |
---|---|
Kernel | Android |
Posted Jun 10, 2010 11:05 UTC (Thu)
by rvfh (guest, #31018)
[Link] (2 responses)
Weird that one would choose to use the API and not the code... I would think that one wants to get right is the API, the code that's below can then be changed to anything one wants it to be (QoS, wavelock, etc..)
Posted Jun 10, 2010 12:35 UTC (Thu)
by nix (subscriber, #2304)
[Link]
At least with stubs the Android *drivers* can go in without pervasive changes.
Posted Jun 10, 2010 17:53 UTC (Thu)
by iabervon (subscriber, #722)
[Link]
Of course, if the kernel lacks a mode where the system suspends because it is idle, the implementation is uncontentious: the kernel doesn't need to do anything when drivers call those functions. So Android drivers would be able to act to keep the kernel from autosuspending at a bad time, because a mainline kernel doesn't autosuspend ever and a kernel with autosuspension does something real with those functions.
This week's episode of "Desperate Androids"
This week's episode of "Desperate Androids"
This week's episode of "Desperate Androids"