On Fri, May 07, 2010 at 01:53:29PM -0700, Tony Lindgren wrote:
It depends on policy. If all network packets generate wakeup events then
no, that will carry on eating battery. If ICMP doesn't generate a wakeup
event then the process won't be run.
If nothing's holding any suspend blocks then the system will enter
suspend. If the packet generates a wakeup then the kernel would block
suspend until userspace has had the opportunity to do so. Once userspace
has handled the packet then it could release the block and the system
will immediately transition back into suspend.
Here's a different example. A process is waiting for a keypress, but
because it's badly written it's also drawing to the screen at 60 frames
per second and preventing the system from every going to idle. How do
you quiesce the system while still ensuring that the keypress will be
delivered to the application?
--
Matthew Garrett | mjg59@srcf.ucam.org
--