Information on XO-1 power efficiency

Hal Murray hmurray at
Wed Nov 11 15:04:00 EST 2009

pgf at said:
> certainly -- you can point out that our latencies for waking/ sleeping
> are just a little too long (mainly due to USB device discovery) to
> make that feature comfortable to use "between key-strokes".

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

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

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?

Has anybody tried to work out the details of when USB needs to be 

Is there a blog/wiki page on this area?  If so, where, and sorry for the 

My checklist would be something like:

  On XO-1, WiFi is on USB, but there is a separate wakeup line for it so we 
don't need to turn on USB because of WiFi unless it has a packet or we want 
to send something.

  Disks and SD cards don't need attention unless we want to do something... 

  For things like keyboards and serial adapters and probably many 
toys/gizmos, we have to leave USB running in order to notice when they need 
attention.  That means leaving the CPU on too.  We don't need to do that if 
the device isn't in use (file not open).

  We might need an ioctl to tell the kernel whether a device needs to be 
polled (keyboard case) vs ignored unless we expect something (disk).  I think 
we can make a good guess at compile time, but we might need a tool to tell 
the kernel how to handle strange devices.  (udev might help)

  User code might need tweaking to tell the kernel when a device can/can't be 
powered down, either by an ioctl or by closing/reopening the device.

  If the CPU is powered down, it won't notice when a new USB device gets 
plugged in or one is unplugged.  I think I could live with that for serious 
power savings, especially since no-USB is the common case.  You would have to 
poke a special key or something like that to get the CPU to do USB device 


1) Disks aren't really that simple.  If the CPU is off you won't notice when 
the disk gets unplugged.  So somebody could unplug a disk, take it to another 
CPU, read/write some files, bring the disk back to the still sleeping XO, and 
the XO would never notice.  If the XO had cached data in memory, that data 
needs to get flushed.  If the XO had dirty pages in memory, you are in 
trouble.  Open files should probably get errors.  There is probably a mount 
count/time that could be checked to catch this case.

These are my opinions, not necessarily my employer's.  I hate spam.

More information about the Devel mailing list