Information on XO-1 power efficiency

John Gilmore gnu at
Wed Nov 18 00:20:38 EST 2009

> How well does sleep-between-keystrokes work if I ignore USB?

Pretty well -- but check  That's where our institutional
memory of the bugs that prevented full blown suspend exists.  Search for
"power" or "suspend" or "sleep".

If you're serious about working on this, I can spend some time looking
in there for the next low hanging fruit.  I remember there were some
high priority bugs we were trying to shoot.  When OLPC had to fire most
of the software team for lack of money, and focus down its efforts
on what its country partners wanted, Chris and I stopped working on
improving power consumption.

> Has anything interesting changed in this area for XO-1.5?

Lots, though as far as I know, auto-suspend on XO-1.5 is not working

> Is USB device discover inherently slow?  Or is the sloth just handling 
> strange cases?  Can I speed things up if I only need to verify that devices I 
> knew about are still there?

Bringing up the USB bus is apparently *designed* to take a large
fraction of a second.  After you turn on USB bus power, you have to
wait for X hundred milliseconds for the power to stabilize and for any
devices to come out of power-on reset.  Ditto after you turn on USB

The way to play with this is to unload the USB module from the XO-1
kernel.  Then it won't play any part in suspend/resume.  (This will lose
you the WiFi.)  You'll be left with something that suspends in ~250 ms
and resumes in ~400 ms as I recall.  Resume time with USB is >900 ms.

To fix this, refactor the USB startup code so that it runs
asynchronously on resume (i.e. it doesn't prevent the kernel from
starting to run user programs).  This should produce a kernel that
resumes in about the same amount of time, whether or not you have a
USB module loaded.  The trick is probably to manage this in a way that
upstream will accept.


More information about the Devel mailing list