[sugar] problem in sugar_jhbuild

Benjamin M. Schwartz bmschwar
Thu Feb 28 11:56:54 EST 2008


On Thu, 2008-02-28 at 17:20 +0100, Tomeu Vizoso wrote:
> 
> Right, I think there's some discussion going on about which view
> should be the default.
> 
> As changing that will be rather trivial code-wise, I guess we can
> defer that decision.

I have a proposal that might be relevant, based on a discussion with
Chris Ball about "hibernation" (i.e. suspend-to-disk).

Hibernation essentially saves all of userspace RAM into a file on disk,
along with the list of active processes, then shuts down.  On the next
boot, it simply reads that file back into memory and continues those
processes.  This is a very desirable behavior, as it allows one to pause
one's work and consume precisely zero power.  However, hibernation can
require a large amount of disk space, and is relatively fragile in
relation to network connections and hardware state.

I would like to propose a form of fake hibernation, implemented at the
level of Sugar.  If the user clicks the "hibernate" button, Sugar should
tell all open activities to Keep their state, and also save: the list of
open activities, which one was active, any clipboard objects, and which
view was in the foreground.  On the next boot, Sugar can simply restart
all open activities from that latest checkpoint, "activate" the active
activity, show the correct view, and recreate the clipboard.  This
approach would be far more efficient than hibernation, and IMHO more
reliable as well.

Fake hibernation relies on a standard reboot sequences, so boot-time
optimization would be very valuable.

Open questions:
0. Should "fake hibernate" be a user-visible option?

1. Should "fake hibernate" be the default shutdown behavior?
Pro: makes system use feel very continuous.
Con: requires manual shutdown of every activity.  Potentially
problematic interaction with memory pressure and OOM under current
implementations.

2. Should OHM automatically trigger a "fake hibernate" under certain
conditions, such as very low battery, or screen closed for 30 minutes
and no mesh contacts made?




More information about the Sugar-devel mailing list