Re: Attempted summary of suspend-blockers LKML thread

From: Ted Ts'o
Date: Sat Aug 07 2010 - 02:29:08 EST


On Fri, Aug 06, 2010 at 06:00:34PM -0700, david@xxxxxxx wrote:
>
> today there are two ways of this happening, via the idle approach
> (on everything except Android), or via suspend (on Android)
>

Most other devices use a lot more power at idle; in some cases it's
because the hardware just isn't as power optimized (why bother, when
you have 94,000 mWh of power at your disposal with a 6 cell laptop
battery, as opposed to the 800-1000 mWh that you might have on a cell
phone battery). In other cases, it's because the kernel and the
low-level software stack (never mind the applications) are waking up
the CPU too darned often --- in other words, idle simply isn't idle
enough.

So you may want to consider whether part of the problem is that
general purpose Linux systems need a radical redesign to get power
utilization down to those sorts of levels --- where the CPU might only
be waking up once every half-hour or so, and then only do actual
useful work.

Can you get there by assuming that every single application is
competently written? In an idle approach, you have to. That way lies
Maemo, where installing just one bad application will cut your battery
life time by a factor of 2-3. You could try stopping processes by
using kill -STOP, but this at that point, you've moved into Android
strategy of "suspend". And the only question is what is the most
efficient way to allow the system to run when there is true work that
needs to be done, and how to avoid deadlocks by stopping processes
that might be holding user space locks --- and to administer when and
how to suspend the processes.

Sure, you could do someting amazing complicated using cgroups, and
user space processes that have to wake up the CPU every 30 seconds to
see if it's safe to suspend the system --- but why not just use the
system which is being used by 200,000 new phones every day? It's
simple and it works. And unlike Maemo, untrustworthy applications
don't end up chewing up your battery lifetime.

- Ted
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/