Power manager specification... (request for comments).

2007-11-17 Thread John Gilmore
The laptop should generally not act differently depending whether
there is external power.  Too many people seem to be assuming that any
form of external power is "AC power" (i.e. a national power grid).

In the presence of limited external power, e.g. a car battery, a human
powered charger, a solar charger, a 220V gasoline generator, or a
flaky power grid that comes and goes, the laptop should never go out
of its "save power" mode.  Feeding it power to charge its battery
should not cause it to consume more power than it otherwise would!

E.g. the screen brightness should never depend on whether there's external
power.

E.g. when closing the lid, with or without external power, the laptop
should turn off the keyboard and touchpad and screen and backlight and
USB and SD and NAND, and force a suspend to RAM.  (At least until
suspend-to-NAND is implemented.)

Whether closing the lid turns off the wireless chip is not a concern
of mine.  If the wireless is left enabled for mesh forwarding, a
closed=suspended laptop should not awaken because a packet arrives.
You want the laptop to *stay* suspended when closed; if an application
like eToys or Web is active, it will otherwise never go idle
(animating the screen and burning up the battery).

Hmm, I wonder if X could declare that a physically closed laptop's
screen has become hidden behind another window (i.e. the front
application goes into the background).  If this won't stop every
existing app from trying to update its window, then fix those
applications to stop drawing in the background!

[Can we create a "null activity" for testing, which clears the screen
and then does nothing but obscure the other running activities?
This would allow testing of the above, without physically closing the
screen.]

Closing the cover and suspending should always sync all filesystems
first.  Ideally it should not only sync them, but mark them as clean
(the first write after resuming would have to mark them dirty again).

Regarding how to do "idle" (is this suspend to RAM?), I think OLPC
should really try doing what it has always claimed to want to do:
suspend the CPU when nothing in the kernel is scheduled to happen for
a second or two (or more).  The only way to see how well it works is
to try it.  And if it doesn't work well, we'll learn what hardware
improvements are needed to make it work well (for Gen 2's even lower
power consumption).

Kludging up specific applications and ohm to try to "guess" when no
process will want to be running is overly complex and error-prone.  If
the kernel doesn't already know the answer, it ought to.  The reason
it was hacked into the ebook reader for a demo is because at that
time, the rest of the system wasn't smart enough to stop running when
it had nothing to do.

John


___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: Power manager specification... (request for comments).

2007-08-17 Thread Jim Gettys
On Fri, 2007-08-17 at 12:57 +0200, Tomeu Vizoso wrote:
> Hi,
> 
> On Wed, 2007-08-15 at 16:01 -0400, Jim Gettys wrote:
> > When we are suspended, and the battery wakes us up because it is
> > "low",
> > then:
> > For now, graceful shutdown after journal has been notified
> > May do hibernation if enough flash is available.
> 
> I guess what we want here is to notify to each activity that they should
> save their state to the datastore. Correct?
> 
> How much time do we have until the system really shuts off?

Heh.  We'll probably have to have a protocol saying "it's ok now".
You'll potentially have seconds or up to a minute.
 - Jim

-- 
Jim Gettys
One Laptop Per Child


___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: Power manager specification... (request for comments).

2007-08-17 Thread Jim Gettys
On Fri, 2007-08-17 at 11:46 +0100, Richard Hughes wrote:
> On 15/08/07, Jim Gettys <[EMAIL PROTECTED]> wrote:
> > Fpr general comment and discussion, the following is a list of things
> > cjb and I think should happen.  What are we missing?  Other opinions?
> 
> Sorry for getting to the conversation late, it's been a busy week.
> 
> > Actions that OHM should do:
> >
> > o On momentary power button:
> >   turn off screen, suspend machine, leave keyboard and wireless on;
> > keyboard/touchpad will cause instant on again.
> 
> Yup.
> 
> > o On lid close on battery, should turn off keyboard, turn off screen
> >   Then should suspend to RAM, including disabling and
> >   powering down wireless
> 
> Okay.
> 
> > o on lid close, on power, leave the machine on and running.
> 
> Not turn off the backlight?

Of course turn off the backlight.

> 
> > o On lid open, turn on keyboard, reset keyboard, resume from suspend,
> > turn wireless back on, tell NM to reassociate (maybe only after some
> > delay), try previous association first, of course...
> 
> Sure.
> 
> > o On ebook mode, should turn off keyboard
> 
> Turn off as in twiddle some bit to power it down, or just stop the input 
> events?
> 
> > o On lid open, should reset keyboard
> > o on ebook to non-ebook mode, should reset keyboard
> 
> How?
> 

There is a keyboard command, that I think is in the trac issue on the
topic, on how to reset the keyboard; but there are actually two cases
here:

1) resetting the keyboard/touchpad when it has been powered up; this all
versions will do.  We should do this anytime external power is applied
or removed, or other major physical changes.

2) CTest and production touch pads can be set into a special extremely
low power mode, and save some 16mw, IIRC.  Bringing them out of this
state does a reset.  This is what we should do either when the machine
is suspended and the keyboard touch/pad is inaccessible.  It turns out
that while I'd been thinking of delaying bothering to go for this
minimal power savings, we have a problem in ebook mode where the buttons
can be pressed by accident if you squeeze, and it's too late to think
about physical changes to the machine.  So to fix that problem, we might
as well go ahead sooner rather than later.

> > o on external power supply on *or* off, should reset touchpad
> 
> Which command?
> 
> > o rotate should probably be done by OHM.
> 
> Totally agree. It's in the best position to enforce policy IMO.

It's really something a window manager, in combination with hints should
solve.

> 
> > When we are suspended, and the battery wakes us up because it is "low",
> > then:
> > For now, graceful shutdown after journal has been notified
> 
> How do we notify the journal - OHM is system and the journal is session, no?
> 
> > May do hibernation if enough flash is available.
> 
> Cool.
> 
> > Task: Tune the default DPMS parameters.
> >
> > Reset keyboard instructions are in trac.
> >
> > The big question is: how to do idle?
> > X DPMS extension? X SS extension? cpuidle kernel patch, about to go
> > mainline in Linux, with module to tell ohm the system has been idle?
> > other ideas?
> 
> In g-p-m svn I've been using the idletime extension for some time now.
> It works well, with a few little quirks, although it only gives the
> user-activity point of idle, rather than the machine state idle.

Machine state idle is more complex, and may involve detailed knowledge
of whether USB devices are installed, for example.

Adam Belay's et. al.'s CPUidle work may (part of) be the solution here.
There is a patch for 2.6.22, and I think it's now in the -mm tree (or
maybe Linus's tree).  So we can probably eventually arrange to notify
OHM when the system seems to be in a decent state for suspend on idle,
and when it is not.
- Jim

-- 
Jim Gettys
One Laptop Per Child


___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: Power manager specification... (request for comments).

2007-08-17 Thread Mike C. Fletcher
Walter Bender wrote:
> Lets please be careful not to over-engineer. While Mike makes good
> points, we have this wonderful human social network we can depend upon
> as well. E.g., If I am downloading something from your machine, I can
> ask you to hold on a second until I finish. Let's take advantage of
> the fact that the kids are in the same community/school most of the
> time and not worry so much about corner cases until we have some more
> breathing room.
>   
Perhaps I was unclear, I was referring to another program *on the same 
machine* needing the machine to remain active in order to complete a 
task.  That is, things such as:

* playing music in the background while you read
* downloading a file from the school server which you need for
  homework while you are reading the assignment/textbook
* recording an audio stream while you are taking notes in write
  (i.e. interviewing someone)
* upgrading the OS/downloading updates while you are working in class

that is, all single-user on a single-machine use cases.  No social 
networks involved.  These are all fairly common use cases.  We see the 
same basic "inhibit_suspend" operation in media-players on Linux or 
Windows wrt screen savers.  You don't want your machine going to sleep 
in the middle of recording your interview, so the recording activity 
needs a way to say "hey, I'm working, don't go to sleep right now" 
(assume we've got a signed activity that can do background record for a 
moment).

I'm not saying that the implementation needs to be there today, I'm just 
saying that we likely need to eventually move toward an implementation 
that uses need-based signaling rather than direct manipulation of the 
whole computer state by any activity.  Something as simple as a 
decorator icon on the home view, (e.g. a bed with a circle-plus-slash 
over it for western audiences) should be sufficient to let the user know 
which activity is inhibiting suspension.

Hope that's clearer,
Mike
...
>> On the original topic of the thread (what the power manager should do):
>>
>>I'm guessing eventually we'll want some of the logic currently in
>>the read activity to migrate into HardwareManager.  That is, allow
>>for signaling "inhibit_suspend( )" and "allow_suspend()"[3], rather
>>than directly setting suspend, such that a given activity can
>>declare that it must be allowed to continue processing in the
>>back-end.  Then you'd want something like "suggest_suspend()" so
>>that a foreground activity can tell the system "hey, I don't expect
>>to do anything for a second or two, if no-one objects, feel free to
>>suspend".
>>
>> From there, a second level does a suggest-suspend from Sugar (or
>>whoever) on no-cpu, no-network (other than the autonomous routing),
>>no-input, for a given period.  No opinion on where/how to put that.
>>
>>HardwareManager should likely send dbus events so that activities
>>can watch for resume, suggested-suspend, or what have you and adjust
>>behaviour accordingly.  Example usage scenario: switch a per-second
>>clock-updating timer to a per-minute timer.
>>
>> Hope this helps,
>> Mike
>>
>> [1]
>> http://dev.laptop.org/git.do?p=projects/read-activity;a=blob;f=readactivity.py;h=3eeb858cc5ea1dc67a60faee90628100479509be;hb=HEAD
>> [2]
>> http://dev.laptop.org/git.do?p=hardware-manager;a=blob;f=hardwaremanager.py;h=3154b17553621cc41fa947cbff2756372e6e37ec;hb=HEAD
>> [3] with allow-suspend happening automatically after a short-ish timeout
>> if the activity doesn't re-assert the inhibition
>> 
-- 

  Mike C. Fletcher
  Designer, VR Plumber, Coder
  http://www.vrplumber.com
  http://blog.vrplumber.com

___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: Power manager specification... (request for comments).

2007-08-17 Thread Tomeu Vizoso
Hi,

On Wed, 2007-08-15 at 16:01 -0400, Jim Gettys wrote:
> When we are suspended, and the battery wakes us up because it is
> "low",
> then:
>   For now, graceful shutdown after journal has been notified
>   May do hibernation if enough flash is available.

I guess what we want here is to notify to each activity that they should
save their state to the datastore. Correct?

How much time do we have until the system really shuts off?

Tomeu

___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: Power manager specification... (request for comments).

2007-08-17 Thread Richard Hughes
On 15/08/07, Jim Gettys <[EMAIL PROTECTED]> wrote:
> Fpr general comment and discussion, the following is a list of things
> cjb and I think should happen.  What are we missing?  Other opinions?

Sorry for getting to the conversation late, it's been a busy week.

> Actions that OHM should do:
>
> o On momentary power button:
>   turn off screen, suspend machine, leave keyboard and wireless on;
> keyboard/touchpad will cause instant on again.

Yup.

> o On lid close on battery, should turn off keyboard, turn off screen
>   Then should suspend to RAM, including disabling and
>   powering down wireless

Okay.

> o on lid close, on power, leave the machine on and running.

Not turn off the backlight?

> o On lid open, turn on keyboard, reset keyboard, resume from suspend,
> turn wireless back on, tell NM to reassociate (maybe only after some
> delay), try previous association first, of course...

Sure.

> o On ebook mode, should turn off keyboard

Turn off as in twiddle some bit to power it down, or just stop the input events?

> o On lid open, should reset keyboard
> o on ebook to non-ebook mode, should reset keyboard

How?

> o on external power supply on *or* off, should reset touchpad

Which command?

> o rotate should probably be done by OHM.

Totally agree. It's in the best position to enforce policy IMO.

> When we are suspended, and the battery wakes us up because it is "low",
> then:
> For now, graceful shutdown after journal has been notified

How do we notify the journal - OHM is system and the journal is session, no?

> May do hibernation if enough flash is available.

Cool.

> Task: Tune the default DPMS parameters.
>
> Reset keyboard instructions are in trac.
>
> The big question is: how to do idle?
> X DPMS extension? X SS extension? cpuidle kernel patch, about to go
> mainline in Linux, with module to tell ohm the system has been idle?
> other ideas?

In g-p-m svn I've been using the idletime extension for some time now.
It works well, with a few little quirks, although it only gives the
user-activity point of idle, rather than the machine state idle.

Richard.
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: Power manager specification... (request for comments).

2007-08-17 Thread Guylhem Aznar
Hello,

On 8/17/07, Don Hopkins <[EMAIL PROTECTED]> wrote:
> I think just writing the code is a
> good antidote to engaging in the arguments in the first place. If the
> functionality is straightforward and easy to implement then just do it
> rather than argue about it.

Hence my suggestion in the parent post about writing some quick shell
script to demonstrate/evaluate the feature usefullness in the real
life.

Personally, I am currently playing with the DCON and other CHI parts,
writing ugly scripts to test the added features :-)
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: Power manager specification... (request for comments).

2007-08-17 Thread Don Hopkins
You have to remember that the kids using these machines might not yet 
know how to read, so just popping up a notice with a paragraph 
explaining the situation and Yes/No buttons isn't an ideal solution.


   -Don

http://xarg.net/blog/one-entry?entry_id=20005
http://www.freebsd.org/cgi/getmsg.cgi?fetch=506636+517178+/usr/local/www/db/text/1999/freebsd-hackers/19991003.freebsd-hackers

Word of the day: Bikeshedding

I saw this word somewhere and did not know what it meant. It turns out 
to be an excellent word for describing a lot of what goes on in online 
communities.


It comes from Parkinson's Law by C. Northcoate Parkinson. He describes 
how a planning board will approve spending millions of dollars to build 
an atomic power plant but if you go to them to get approval to build a 
bike shed they will argue endlessly. The problem being that the atomic 
power plant is so large, complex, and difficult to understand that no 
one can really argue about how exactly it is done. On the other hand, 
everyone knows what goes into a building a bike shed and so everyone 
feels qualified to argue about the details.


For some reason, technical discussions seem to be particularly 
susceptible to bikeshedding. There was a great post by Poul-Henning Kamp 
on the freebsd-hackers list:

http://www.freebsd.org/cgi/getmsg.cgi?fetch=506636+517178+/usr/local/www/db/text/1999/freebsd-hackers/19991003.freebsd-hackers
which describes a particularly virulent attack they had on their list 
and submits a plea to avoid it in the future. I think just writing the 
code is a good antidote to engaging in the arguments in the first place. 
If the functionality is straightforward and easy to implement then just 
do it rather than argue about it. Most of the people spending their time 
arguing probably have enough inertia that they are not going to write 
any code and consequently, if you do have the initiative, the code 
itself is the most suitable response. As Poul-Henning Kamp said:


   I wish we could reduce the amount of noise in our lists and I wish 
we could let people build a bike shed every so often, and I don't really 
care what colour they paint it.


Who knows, if you write enough code we might even end up with an atomic 
power plant (or for you greens in the audience, a lovely old growth forest).


http://www.bikeshed.com/
Why Should I Care What Color the Bikeshed Is?

"The really, really short answer is that you should not. The somewhat 
longer answer is that just because you are capable of building a 
bikeshed does not mean you should stop others from building one just 
because you do not like the color they plan to paint it. This is a 
metaphor indicating that you need not argue about every little feature 
just because you know enough to do so. Some people have commented that 
the amount of noise generated by a change is inversely proportional to 
the complexity of the change."



Guylhem Aznar wrote:

Hello,

On 8/17/07, Walter Bender <[EMAIL PROTECTED]> wrote:
  

Lets please be careful not to over-engineer. While Mike makes good
points, we have this wonderful human social network we can depend upon
as well. E.g., If I am downloading something from your machine, I can
ask you to hold on a second until I finish. Let's take advantage of
the fact that the kids are in the same community/school most of the
time and not worry so much about corner cases until we have some more
breathing room.



Yet thinking before implementing can easily overcome future problems.
I believethe idea of "inibitors" for the various power schemes should
not be overlooked since their benefits can be important.

In your example, a download activity could make the suspend wait an
additional minute or two, explaining the user than its request was
noticed, won't happen until the download/upload is over, unless it is
overriden.

If people are in the same class, of course, but what if the person is
several hops away on the mesh network?

Moreover, this interesting idea could also be applied to video
playback/screen rotation requests, explaining that the screen can't be
rotated or the playback will stop, etc.

There's a great potential in such examples to go beyond the
traditionnal power management done in GNU/linux.

But anyway, if you think these cases are so special and supporting
them will take too much time, write a quick shell script to test the
concepts, play with it, and see if it helps you or if it's just a
waste of cpu cycles.

PS I have some more suggestions (ex: a maximal suspend mode to carry
the machine without using it)  but on a computer I don't have here - I
will post a message a little bit later.


Guylhem
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel
  


___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: Power manager specification... (request for comments).

2007-08-17 Thread Guylhem Aznar
Hello,

On 8/17/07, Walter Bender <[EMAIL PROTECTED]> wrote:
> Lets please be careful not to over-engineer. While Mike makes good
> points, we have this wonderful human social network we can depend upon
> as well. E.g., If I am downloading something from your machine, I can
> ask you to hold on a second until I finish. Let's take advantage of
> the fact that the kids are in the same community/school most of the
> time and not worry so much about corner cases until we have some more
> breathing room.

Yet thinking before implementing can easily overcome future problems.
I believethe idea of "inibitors" for the various power schemes should
not be overlooked since their benefits can be important.

In your example, a download activity could make the suspend wait an
additional minute or two, explaining the user than its request was
noticed, won't happen until the download/upload is over, unless it is
overriden.

If people are in the same class, of course, but what if the person is
several hops away on the mesh network?

Moreover, this interesting idea could also be applied to video
playback/screen rotation requests, explaining that the screen can't be
rotated or the playback will stop, etc.

There's a great potential in such examples to go beyond the
traditionnal power management done in GNU/linux.

But anyway, if you think these cases are so special and supporting
them will take too much time, write a quick shell script to test the
concepts, play with it, and see if it helps you or if it's just a
waste of cpu cycles.

PS I have some more suggestions (ex: a maximal suspend mode to carry
the machine without using it)  but on a computer I don't have here - I
will post a message a little bit later.


Guylhem
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: Power manager specification... (request for comments).

2007-08-17 Thread Walter Bender
Lets please be careful not to over-engineer. While Mike makes good
points, we have this wonderful human social network we can depend upon
as well. E.g., If I am downloading something from your machine, I can
ask you to hold on a second until I finish. Let's take advantage of
the fact that the kids are in the same community/school most of the
time and not worry so much about corner cases until we have some more
breathing room.

-walter

On 8/16/07, Mike C. Fletcher <[EMAIL PROTECTED]> wrote:
> Jim Gettys wrote:
> ...
> >> There seems to be no way to manually adjust the backlight level in
> >> ebook mode. What would be the policy for it? Leave it on all the time
> >> or dim down after some idle time? Also CPU (and wireless?) should go
> >> to suspend for most of time in ebook mode?
> >>
> >
> > We have code in at least our PDF viewer to literally do exactly this; as
> > soon as the page is rendered and it is idle, it puts the machine to
> > sleep.
> >
> For the activity developers in the audience:
>
>This is (I believe) in the GIT read-activity/readactivity.py[1]
>module.  The implementation uses the HardwareManager[2] service
>(set_kernel_suspend) exposed over dbus to directly send the kernel
>into suspended state.  AFAICS there's no allowance for tracking
>whether something *else* might need the machine to be alive (e.g. a
>download or the like being done in the background).  The same
>Manager object has controls for various operations such as changing
>brightness and the like.
>
> On the original topic of the thread (what the power manager should do):
>
>I'm guessing eventually we'll want some of the logic currently in
>the read activity to migrate into HardwareManager.  That is, allow
>for signaling "inhibit_suspend( )" and "allow_suspend()"[3], rather
>than directly setting suspend, such that a given activity can
>declare that it must be allowed to continue processing in the
>back-end.  Then you'd want something like "suggest_suspend()" so
>that a foreground activity can tell the system "hey, I don't expect
>to do anything for a second or two, if no-one objects, feel free to
>suspend".
>
> From there, a second level does a suggest-suspend from Sugar (or
>whoever) on no-cpu, no-network (other than the autonomous routing),
>no-input, for a given period.  No opinion on where/how to put that.
>
>HardwareManager should likely send dbus events so that activities
>can watch for resume, suggested-suspend, or what have you and adjust
>behaviour accordingly.  Example usage scenario: switch a per-second
>clock-updating timer to a per-minute timer.
>
> Hope this helps,
> Mike
>
> [1]
> http://dev.laptop.org/git.do?p=projects/read-activity;a=blob;f=readactivity.py;h=3eeb858cc5ea1dc67a60faee90628100479509be;hb=HEAD
> [2]
> http://dev.laptop.org/git.do?p=hardware-manager;a=blob;f=hardwaremanager.py;h=3154b17553621cc41fa947cbff2756372e6e37ec;hb=HEAD
> [3] with allow-suspend happening automatically after a short-ish timeout
> if the activity doesn't re-assert the inhibition
>
> --
> 
>  Mike C. Fletcher
>  Designer, VR Plumber, Coder
>  http://www.vrplumber.com
>  http://blog.vrplumber.com
>
> ___
> Devel mailing list
> Devel@lists.laptop.org
> http://lists.laptop.org/listinfo/devel
>


-- 
Walter Bender
One Laptop per Child
http://laptop.org
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: Power manager specification... (request for comments).

2007-08-16 Thread Mike C. Fletcher
Jim Gettys wrote:
...
>> There seems to be no way to manually adjust the backlight level in
>> ebook mode. What would be the policy for it? Leave it on all the time
>> or dim down after some idle time? Also CPU (and wireless?) should go
>> to suspend for most of time in ebook mode?
>> 
>
> We have code in at least our PDF viewer to literally do exactly this; as
> soon as the page is rendered and it is idle, it puts the machine to
> sleep.
>   
For the activity developers in the audience:

This is (I believe) in the GIT read-activity/readactivity.py[1]
module.  The implementation uses the HardwareManager[2] service
(set_kernel_suspend) exposed over dbus to directly send the kernel
into suspended state.  AFAICS there's no allowance for tracking
whether something *else* might need the machine to be alive (e.g. a
download or the like being done in the background).  The same
Manager object has controls for various operations such as changing
brightness and the like.

On the original topic of the thread (what the power manager should do):

I'm guessing eventually we'll want some of the logic currently in
the read activity to migrate into HardwareManager.  That is, allow
for signaling "inhibit_suspend( )" and "allow_suspend()"[3], rather
than directly setting suspend, such that a given activity can
declare that it must be allowed to continue processing in the
back-end.  Then you'd want something like "suggest_suspend()" so
that a foreground activity can tell the system "hey, I don't expect
to do anything for a second or two, if no-one objects, feel free to
suspend".

 From there, a second level does a suggest-suspend from Sugar (or
whoever) on no-cpu, no-network (other than the autonomous routing),
no-input, for a given period.  No opinion on where/how to put that.

HardwareManager should likely send dbus events so that activities
can watch for resume, suggested-suspend, or what have you and adjust
behaviour accordingly.  Example usage scenario: switch a per-second
clock-updating timer to a per-minute timer.

Hope this helps,
Mike

[1] 
http://dev.laptop.org/git.do?p=projects/read-activity;a=blob;f=readactivity.py;h=3eeb858cc5ea1dc67a60faee90628100479509be;hb=HEAD
[2] 
http://dev.laptop.org/git.do?p=hardware-manager;a=blob;f=hardwaremanager.py;h=3154b17553621cc41fa947cbff2756372e6e37ec;hb=HEAD
[3] with allow-suspend happening automatically after a short-ish timeout 
if the activity doesn't re-assert the inhibition

-- 

  Mike C. Fletcher
  Designer, VR Plumber, Coder
  http://www.vrplumber.com
  http://blog.vrplumber.com

___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: Power manager specification... (request for comments).

2007-08-16 Thread Jim Gettys
On Thu, 2007-08-16 at 07:23 +0800, Yuan Chao wrote:

> 
> > o On momentary power button:
> >   turn off screen, suspend machine, leave keyboard and wireless on;
> > keyboard/touchpad will cause instant on again.
> I'm curious here that I thought the wireless needs CPU to work with.
> Why suspend the machine and leave the wireless on?

No, our wireless is able to forward packets in the mesh network without
the main CPU being powered.  It is important for people to easily leave
their machine in a mode which maintains the mesh network for others in
the network.

> 
> > o on lid close, on power, leave the machine on and running.
> Even though it's on AC power, maybe the screen can also be turned off
> to be more Eco?

Yup.  It certainly should be.

> 
> > o On ebook mode, should turn off keyboard
> > o On lid open, should reset keyboard
> There seems to be no way to manually adjust the backlight level in
> ebook mode. What would be the policy for it? Leave it on all the time
> or dim down after some idle time? Also CPU (and wireless?) should go
> to suspend for most of time in ebook mode?

We have code in at least our PDF viewer to literally do exactly this; as
soon as the page is rendered and it is idle, it puts the machine to
sleep.

> 
> > o rotate should probably be done by OHM.
> There seems no way to predict which direction to go in ebook mode as
> no position sensor. Here you mean restore the rotation after get back
> from ebook mode?

No, mostly that we happened to first implement this in Sugar, and it is
really much more a hardware and window manager function from a
architectural perspective.
- Jim

-- 
Jim Gettys
One Laptop Per Child


___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: Power manager specification... (request for comments).

2007-08-15 Thread Yuan Chao
On 8/16/07, Jim Gettys <[EMAIL PROTECTED]> wrote:

> Fpr general comment and discussion, the following is a list of things
> cjb and I think should happen.  What are we missing?  Other opinions?
I'm not an expert here, but I'd like to share some ideas. How about
sorting these events into catagories like "on AC power", "on battery"?
Though XO doesn't use ACPI as most recent notebook PCs do, we can
still refer to some existing ACPI scripts as most events are in
common.

> o On momentary power button:
>   turn off screen, suspend machine, leave keyboard and wireless on;
> keyboard/touchpad will cause instant on again.
I'm curious here that I thought the wireless needs CPU to work with.
Why suspend the machine and leave the wireless on?

> o on lid close, on power, leave the machine on and running.
Even though it's on AC power, maybe the screen can also be turned off
to be more Eco?

> o On ebook mode, should turn off keyboard
> o On lid open, should reset keyboard
There seems to be no way to manually adjust the backlight level in
ebook mode. What would be the policy for it? Leave it on all the time
or dim down after some idle time? Also CPU (and wireless?) should go
to suspend for most of time in ebook mode?

> o rotate should probably be done by OHM.
There seems no way to predict which direction to go in ebook mode as
no position sensor. Here you mean restore the rotation after get back
from ebook mode?


-- 
Best regards,
Yuan Chao
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: Power manager specification... (request for comments).

2007-08-15 Thread Zephaniah E. Hull
On Wed, Aug 15, 2007 at 04:01:47PM -0400, Jim Gettys wrote:
> Fpr general comment and discussion, the following is a list of things
> cjb and I think should happen.  What are we missing?  Other opinions?
> 
> Actions that OHM should do:
> 
> o On momentary power button:
>   turn off screen, suspend machine, leave keyboard and wireless on;
> keyboard/touchpad will cause instant on again.
> o On lid close on battery, should turn off keyboard, turn off screen
>   Then should suspend to RAM, including disabling and 
>   powering down wireless
> o on lid close, on power, leave the machine on and running.
> o On lid open, turn on keyboard, reset keyboard, resume from suspend,
> turn wireless back on, tell NM to reassociate (maybe only after some
> delay), try previous association first, of course...
> o On ebook mode, should turn off keyboard
> o On lid open, should reset keyboard
> o on ebook to non-ebook mode, should reset keyboard
> o on external power supply on *or* off, should reset touchpad

On external power supply off, should check lid, if lid is closed then we
should do the 'lid close on battery' process.

Possibly, on external power supply on, we should switch to 'lid close,
on power' state.

> o rotate should probably be done by OHM.
> 
> When we are suspended, and the battery wakes us up because it is "low",
> then:
>   For now, graceful shutdown after journal has been notified
>   May do hibernation if enough flash is available.
> 
> Task: Tune the default DPMS parameters.
> 
> Reset keyboard instructions are in trac.
> 
> The big question is: how to do idle?
>   X DPMS extension? X SS extension? cpuidle kernel patch, about to go
> mainline in Linux, with module to tell ohm the system has been idle?
> other ideas?

-- 
  1024D/E65A7801 Zephaniah E. Hull <[EMAIL PROTECTED]>
   92ED 94E4 B1E6 3624 226D  5727 4453 008B E65A 7801
CCs of replies from mailing lists are requested.


signature.asc
Description: Digital signature
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Power manager specification... (request for comments).

2007-08-15 Thread Jim Gettys
Fpr general comment and discussion, the following is a list of things
cjb and I think should happen.  What are we missing?  Other opinions?

Actions that OHM should do:

o On momentary power button:
  turn off screen, suspend machine, leave keyboard and wireless on;
keyboard/touchpad will cause instant on again.
o On lid close on battery, should turn off keyboard, turn off screen
  Then should suspend to RAM, including disabling and 
  powering down wireless
o on lid close, on power, leave the machine on and running.
o On lid open, turn on keyboard, reset keyboard, resume from suspend,
turn wireless back on, tell NM to reassociate (maybe only after some
delay), try previous association first, of course...
o On ebook mode, should turn off keyboard
o On lid open, should reset keyboard
o on ebook to non-ebook mode, should reset keyboard
o on external power supply on *or* off, should reset touchpad
o rotate should probably be done by OHM.

When we are suspended, and the battery wakes us up because it is "low",
then:
For now, graceful shutdown after journal has been notified
May do hibernation if enough flash is available.

Task: Tune the default DPMS parameters.

Reset keyboard instructions are in trac.

The big question is: how to do idle?
X DPMS extension? X SS extension? cpuidle kernel patch, about to go
mainline in Linux, with module to tell ohm the system has been idle?
other ideas?

-- 
Jim Gettys
One Laptop Per Child


___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel