Re: Internet Tablet Power Management presentation from linux-pm summit 2007

2007-07-11 Thread Frantisek Dufka
Igor Stoppa wrote:
 Hi,
 this is the presentation we gave last week in Ottawa at the pm summit.
 It is the first step in improving our communication process with the
 community and give a preview of what we are working on.
 
 http://maemo.org/midcom-permalink-0c828d202f2011dc9945e502835830f130f1
 
 It contains a brief overview of what is already shipping in the 770 and
 the n800, but the main focus is about our work in progress.
 
 Comments and questions are welcomed.

Thanks Igor, it is quite interesting. Maybe there is a bug on page 15 
with DSP frequency for OP 0, shouldn't the 133 be 233 or 333 (unless you 
need to slow it down because of speeding up the arm core to meet some 
power requirement)? Does it mean the arm core in current N800 can run at 
400Mhz?

As for dynamic voltage and frequency scaling did I understood it 
correctly that even if lower voltage means considerable saving (even if 
task runs longer) it is almost not worth the hassle due to other issues 
(latency of voltage/frequency change, static power consumption of other 
parts, hard prediction of future)? Or how big savings do you expect 
overall from voltage/frequency scaling when the device is mostly idle 
(i.e being mostly waken up by inefficient system or apps waiting for 
something and not hogging the CPU). Or maybe the question is how 
efficient is the system currently, is there something like 
http://www.linuxpowertop.org/ for omap to see what can be improved or 
what cannot and could benefit from lower frequency/voltage?

Do you plan to have user selectable power/speed profiles to let people 
choose whether they want slower system or shorter battery life? Or do 
you suppose there will be good enough cpufreq governor so it is not 
needed. Or do you consider some API so apps can suggest how fast system 
they want (i.e. media players, games, emulators vs book readers)?

Frantisek

___
maemo-developers mailing list
maemo-developers@maemo.org
https://lists.maemo.org/mailman/listinfo/maemo-developers


top_application?

2007-07-11 Thread Murray Cumming
Some applications seem to handle the top_application D-Bus method. I
guess that this is maybe sent to the application when it's launched from
the menu. And I guess that this maybe allows applications to be
activated by D-Bus without showing their UI, so there UI can then be
shown later when it's launched from the menu.

But I can't find any real documentation for this D-Bus method. I'd
rather not guess.

-- 
Murray Cumming
[EMAIL PROTECTED]
www.murrayc.com
www.openismus.com

___
maemo-developers mailing list
maemo-developers@maemo.org
https://lists.maemo.org/mailman/listinfo/maemo-developers


Re: Internet Tablet Power Management presentation from linux-pm summit 2007

2007-07-11 Thread Igor Stoppa
On Wed, 2007-07-11 at 10:08 +0200, ext Frantisek Dufka wrote:
 Thanks Igor, it is quite interesting. Maybe there is a bug on page 15 
 with DSP frequency for OP 0, shouldn't the 133 be 233 or 333 (unless you 
 need to slow it down because of speeding up the arm core to meet some 
 power requirement)?

No, no bug unfortunately, simply TI doesn't support the combination with
DSP @ 266 MHz (that would be the proper value).
Of course ymmw and some chips probably can cope with it (actually there
are also thermal issues so i bet that most OMAPs can do it at room
temperature) but in order to provide a certain yield value, the
constraints on the operating range are stricter.

I certainly will run my tablet at higher speed and/or lower voltage;
finland makes it unlikely to incur in heating problems ;-)

 Does it mean the arm core in current N800 can run at 
 400Mhz?

Yes, the data is for stock N800 (we have this SpeedSorted OMAP2 that can
run with ARM @ 400MHz).

 As for dynamic voltage and frequency scaling did I understood it 
 correctly that even if lower voltage means considerable saving (even if 
 task runs longer) it is almost not worth the hassle due to other issues 
 (latency of voltage/frequency change, static power consumption of other 
 parts, hard prediction of future)?

It just means that the whole system must be considered, not only the
processor. But we do have significant benefits at using the lower OP in
many cases.

It could be that there are benefits at using OP3 simply because of
problems in the current implementation of the sw stack, so fixing them
would make DVFS less attractive.

But while we get all the issues fixed, DVFS seems to help, for example
in reducing boot time and applications load time.

  Or how big savings do you expect 
 overall from voltage/frequency scaling when the device is mostly idle 
 (i.e being mostly waken up by inefficient system or apps waiting for 
 something and not hogging the CPU). Or maybe the question is how 
 efficient is the system currently, is there something like 
 http://www.linuxpowertop.org/ for omap to see what can be improved or 
 what cannot and could benefit from lower frequency/voltage?

Yes, eventually our goal would also be to provide users with means to
evaluate themselves 3rd party applications.

I remember several times somebody complaining about battery life after
installing some 3rd party application that had not gone through our
validation process. Not that I'm really blaming the developers: one can
do code review up to a certain point, but without proper tools it's hard
to evaluate how pm friendly a caertain application is.

 Do you plan to have user selectable power/speed profiles to let people 
 choose whether they want slower system or shorter battery life?

My personal belief is that the user should not have to care about this:
something is broken if the user has to be involved. The system should
have all the info (and means) to run at good enough speed when needed.

It's a similar case to sleep while idle vs user-controlled suspend: just
because old devices were doing suspend that doesn't make it desirable.

  Or do 
 you suppose there will be good enough cpufreq governor so it is not 
 needed. 

On demand should fit the bill, with some fixes. Conservative is useles
sfor every practical application, in our case.

 Or do you consider some API so apps can suggest how fast system 
 they want (i.e. media players, games, emulators vs book readers)?

You mean QoS. Yes, that seems to be the general understanding.
Intel too is going in that direction and they have very serious problems
when comparing their hw against OMAP, which is designed from ground up
to be pm friendly.

OMAP2 has retention mode and the transition to/from retention is much
faster than any OP change, so race-to-idle is more important on OMAP
than on x86 devices.

I would expect Intel to get QoS usable before us because of a more
urgent need.

-- 
Cheers, Igor

Igor Stoppa [EMAIL PROTECTED]
(Nokia Multimedia - CP - OSSO / Helsinki, Finland)
___
maemo-developers mailing list
maemo-developers@maemo.org
https://lists.maemo.org/mailman/listinfo/maemo-developers


Re: top_application?

2007-07-11 Thread Mika Yrjölä
On 7/11/07, Murray Cumming [EMAIL PROTECTED] wrote:
 Some applications seem to handle the top_application D-Bus method. I
 guess that this is maybe sent to the application when it's launched from
 the menu. And I guess that this maybe allows applications to be
 activated by D-Bus without showing their UI, so there UI can then be
 shown later when it's launched from the menu.

 But I can't find any real documentation for this D-Bus method. I'd
 rather not guess.

Hi,

the top_application support resides in libosso (to be more specific,
see libosso API documentation or libosso.h and
osso-application-top.[c|h] from the sources) . It's supposed to be
there for the purposes of bringing the target application to
foreground and to allow the apps to notice/do something  useful when
that happens with the corresponding callbacks, but as it's deprecated,
I think using it in new applications might now not be worth it.
___
maemo-developers mailing list
maemo-developers@maemo.org
https://lists.maemo.org/mailman/listinfo/maemo-developers


Re: top_application?

2007-07-11 Thread Murray Cumming
On Wed, 2007-07-11 at 13:53 +0300, Mika Yrjölä wrote:
 On 7/11/07, Murray Cumming [EMAIL PROTECTED] wrote:
  Some applications seem to handle the top_application D-Bus method. I
  guess that this is maybe sent to the application when it's launched from
  the menu. And I guess that this maybe allows applications to be
  activated by D-Bus without showing their UI, so there UI can then be
  shown later when it's launched from the menu.
 
  But I can't find any real documentation for this D-Bus method. I'd
  rather not guess.
 
 Hi,
 
 the top_application support resides in libosso (to be more specific,
 see libosso API documentation or libosso.h and
 osso-application-top.[c|h] from the sources) .

Sorry I can't find anything in the documentation. Do you have a URL?

  It's supposed to be
 there for the purposes of bringing the target application to
 foreground and to allow the apps to notice/do something  useful when
 that happens with the corresponding callbacks, but as it's deprecated,
 I think using it in new applications might now not be worth it.

Is this replaced by anything in particular? Is there some recommended
way to get the behaviour that I described?

-- 
Murray Cumming
[EMAIL PROTECTED]
www.murrayc.com
www.openismus.com

___
maemo-developers mailing list
maemo-developers@maemo.org
https://lists.maemo.org/mailman/listinfo/maemo-developers


Re: top_application?

2007-07-11 Thread Mika Yrjölä
On 7/11/07, Murray Cumming [EMAIL PROTECTED] wrote:
 On Wed, 2007-07-11 at 13:53 +0300, Mika Yrjölä wrote:
  On 7/11/07, Murray Cumming [EMAIL PROTECTED] wrote:
   Some applications seem to handle the top_application D-Bus method. I
   guess that this is maybe sent to the application when it's launched from
   the menu. And I guess that this maybe allows applications to be
   activated by D-Bus without showing their UI, so there UI can then be
   shown later when it's launched from the menu.
  
   But I can't find any real documentation for this D-Bus method. I'd
   rather not guess.
 
  Hi,
 
  the top_application support resides in libosso (to be more specific,
  see libosso API documentation or libosso.h and
  osso-application-top.[c|h] from the sources) .

 Sorry I can't find anything in the documentation. Do you have a URL?

Sure, here goes:

http://maemo.org/api_refs/3.0/libosso/group__Apps.html

documents the libosso features that use the top_application method
(however, it's true that the documentation doesn't mention that,
probably because it's just an internal implementation detail). I don't
know if there would be additional information in the rest of the
libosso docs (other than the source :), as most of the other libosso
doc links seem to be broken at the moment, though...

Desktop appears indeed to currently send a top_application method call
while it starts an application, at least according to a quick look to
the source (osso_manager_launch function).

   It's supposed to be
  there for the purposes of bringing the target application to
  foreground and to allow the apps to notice/do something  useful when
  that happens with the corresponding callbacks, but as it's deprecated,
  I think using it in new applications might now not be worth it.

 Is this replaced by anything in particular? Is there some recommended
 way to get the behaviour that I described?

AFAIK the mechanism is in use for now, even though the deprecation
notice implies that this might not be the case forever (the osso_rpc_*
functions are suggested as an alternative). I don't have any immediate
idea about how to do what you originally wished for, though (as the
top_application would cause the  application to become the active
one).
___
maemo-developers mailing list
maemo-developers@maemo.org
https://lists.maemo.org/mailman/listinfo/maemo-developers


Re: Internet Tablet Power Management presentation from linux-pm summit 2007

2007-07-11 Thread Andrew Flegg
On 7/11/07, Igor Stoppa [EMAIL PROTECTED] wrote:

[snip lots of interesting stuff]

 It's a similar case to sleep while idle vs user-controlled suspend: just
 because old devices were doing suspend that doesn't make it desirable.

This being reraised made me think about why, the other day, I *did*
want user suspend. Sometimes I just want a quick way to:

  * Shut off all network connections.
  * Stop any noise (except configured alarms)
  * Have the screen locked
  * Not have to save my position
  * Be able to resume quickly

This isn't suspend in a power sense, but in a use-case sense the
purpose is clear.

Cheers,

Andrew

-- 
Andrew Flegg -- mailto:[EMAIL PROTECTED]  |  http://www.bleb.org/
___
maemo-developers mailing list
maemo-developers@maemo.org
https://lists.maemo.org/mailman/listinfo/maemo-developers


Re: Internet Tablet Power Management presentation from linux-pm summit 2007

2007-07-11 Thread Frantisek Dufka
Igor Stoppa wrote:
 I certainly will run my tablet at higher speed and/or lower voltage;
 finland makes it unlikely to incur in heating problems ;-)

CPU temperature sensor might be useful to guess the limit and cut the 
speed down in case one is not in Finland :-) Is there one?

 
 Does it mean the arm core in current N800 can run at 
 400Mhz?
 
 Yes, the data is for stock N800 (we have this SpeedSorted OMAP2 that can
 run with ARM @ 400MHz).

Cool :-) Well, maybe 'Hot' actually :-)


 Do you plan to have user selectable power/speed profiles to let people 
 choose whether they want slower system or shorter battery life?
 
 My personal belief is that the user should not have to care about this:
 something is broken if the user has to be involved. The system should
 have all the info (and means) to run at good enough speed when needed.

Well, I'm not sure but maybe when being conservative with power saving 
and when some hints are applied (i.e some API) it could work. I'm mainly 
thinking about CPU spikes when applications are starting. I fear the 
system will not react quickly enough with 'overclocking' when 
application starts since otherwise the device does nothing before and 
after. But this specific problem could be solved with some hints done 
from application launcher or maybe kernel or libc (exec/fork call) itself.

I'm not sure how linux currently does it on x86 (shame on me, using XP 
on laptop and linux only in vmware) but my experience with RMClock on XP 
(http://cpu.rightmark.org/products/rmclock.shtml) is that it is 
hard/impossible to tune it in such way that application startup is not 
slower and you still save some power.

 
 It's a similar case to sleep while idle vs user-controlled suspend: just
 because old devices were doing suspend that doesn't make it desirable.

Yes, this is old discussion. I still think proper suspend is useful. 
While current implementation is great and is mostly what users expect or 
can tolerate, sometimes you simply want to 'pause' or 'hibernate' the 
device no matter what, throw it in the bag and 8 hours (or 10 days) 
later resume exactly where you left off with minimum energy lost. 
Without stopping applications or thinking about anything. This is what 
proper suspend can give you. This is how notebooks and PDAs work. This 
is what would be sometimes useful even on internet tablets (no matter 
how 'always connected' they are supposed to be). But I agree current 
power management on Nokia tablets is great so this is not critical. 
Still I can't resist when this is brought up :-)

I'm not saying this needs to be definitely implemented by freezing 
everything in user and/or kernel space. I'm saying that apart from 
current power saving when idle there should be easy way of telling the 
device to go to sleep completely (pausing audio, disconecting from 
network,...)

 Or do you consider some API so apps can suggest how fast system 
 they want (i.e. media players, games, emulators vs book readers)?
 
 You mean QoS. Yes, that seems to be the general understanding.

Yes that's it. Didn't know this term is used also in power management, 
though.

Frantisek
___
maemo-developers mailing list
maemo-developers@maemo.org
https://lists.maemo.org/mailman/listinfo/maemo-developers


Re: Internet Tablet Power Management presentation from linux-pm summit 2007

2007-07-11 Thread Andy Mulhearn
 Apart from shutting off the sound thing thsi looks like a N770 cover on mode. 
Is that about right?

Even if it's not, it's one I would like to have as well - as a put away for a 
while mode,

Andy
On Wednesday, July 11, 2007, at 01:29PM, Andrew Flegg [EMAIL PROTECTED] 
wrote:
On 7/11/07, Igor Stoppa [EMAIL PROTECTED] wrote:

[snip lots of interesting stuff]

 It's a similar case to sleep while idle vs user-controlled suspend: just
 because old devices were doing suspend that doesn't make it desirable.

This being reraised made me think about why, the other day, I *did*
want user suspend. Sometimes I just want a quick way to:

  * Shut off all network connections.
  * Stop any noise (except configured alarms)
  * Have the screen locked
  * Not have to save my position
  * Be able to resume quickly

This isn't suspend in a power sense, but in a use-case sense the
purpose is clear.

Cheers,

Andrew

-- 
Andrew Flegg -- mailto:[EMAIL PROTECTED]  |  http://www.bleb.org/
___
maemo-developers mailing list
maemo-developers@maemo.org
https://lists.maemo.org/mailman/listinfo/maemo-developers


___
maemo-developers mailing list
maemo-developers@maemo.org
https://lists.maemo.org/mailman/listinfo/maemo-developers


Re: Internet Tablet Power Management presentation from linux-pm summit 2007

2007-07-11 Thread Igor Stoppa
On Wed, 2007-07-11 at 13:28 +0100, ext Andrew Flegg wrote:
 On 7/11/07, Igor Stoppa [EMAIL PROTECTED] wrote:
 
 [snip lots of interesting stuff]
 
  It's a similar case to sleep while idle vs user-controlled suspend: just
  because old devices were doing suspend that doesn't make it desirable.
 
 This being reraised made me think about why, the other day, I *did*
 want user suspend. Sometimes I just want a quick way to:
 
   * Shut off all network connections.
   * Stop any noise (except configured alarms)
   * Have the screen locked
   * Not have to save my position
   * Be able to resume quickly
 
 This isn't suspend in a power sense, but in a use-case sense the
 purpose is clear.

Why not just put it in offline mode and lock the screen and keys?

That's what i do and it simply works.

The only drawback is that with sane applications you would get only 12
days with a full battery.

I do admit that in some extreme case it might not be enough, but on
OMAP2 it doesn't justify the hassle.

I'd rather spend time and resources in fixing kernel and applications to
make sleep while idle as close as possible to suspend to ram.

Plain suspend to ram (or disk), imho, sucks, because it produces a
useless brick till it is forcibly resumed. I think it would be much
better to simply let wakeup events happen, but make sure that only the
_useful_ ones happen.

The user should be able to configure wakeup sources, certainly, even up
to the point of saying: wake up only for power button, but the system
should manage itself automatically.

-- 
Cheers, Igor

Igor Stoppa [EMAIL PROTECTED]
(Nokia Multimedia - CP - OSSO / Helsinki, Finland)
___
maemo-developers mailing list
maemo-developers@maemo.org
https://lists.maemo.org/mailman/listinfo/maemo-developers


N800 - tell it not to reboot

2007-07-11 Thread Harald Fernengel
Hi,

I flashed a modified rootfs to my N800, but whatever changes I do to my 
rootfs, the N800 simply reboots 1-2 seconds after the UI showed up. I get as 
far as opening the app menu, but before I can hit xterm, it reboots :/

I enabled the RD mode and did the usual

./flasher-3.0 --set-rd-flags=no-omap-wd,no-retu-wd,no-lifeguard-reset

as suggested on the forums. Still, it reboots, and I don't even have a chance 
to log in and see why.

Did I forget something? Is there a way to tell the N800 to never reboot no 
matter what? Any other watchdogs/processes/whatever that I have to nuke?

Thanks,
Harald 
___
maemo-developers mailing list
maemo-developers@maemo.org
https://lists.maemo.org/mailman/listinfo/maemo-developers


Re: Internet Tablet Power Management presentation from linux-pm summit 2007

2007-07-11 Thread Andrew Flegg
On 7/11/07, Igor Stoppa [EMAIL PROTECTED] wrote:
 On Wed, 2007-07-11 at 13:28 +0100, ext Andrew Flegg wrote:
 
  This being reraised made me think about why, the other day, I *did*
  want user suspend. Sometimes I just want a quick way to:
 
* Shut off all network connections.
* Stop any noise (except configured alarms)
* Have the screen locked
* Not have to save my position
* Be able to resume quickly
 
  This isn't suspend in a power sense, but in a use-case sense the
  purpose is clear.

 Why not just put it in offline mode and lock the screen and keys?

 That's what i do and it simply works.

Well, that doesn't block sound so if the battery starts going down in
the night, or similar, I could be awoken by a noise. It's also clumsy
as the sequence is:

   1) Press power button
   2) Select offline mode
   3) Press OK
   4) Press power button
   5) Press OK

Unlocking is a simlar number. That's not exactly a simple sequence, as
say the 770's cover was (as Andy Mulhearn points out).

Now, if it was possible to hook into the power menu to define my own
sequence of actions I could set up a turn off volume, go offline,
lock screen  keys function and map that to the top-most item.

Is that possible? I've not seen any documentation on
/etc/systemui/systemui.xml except for hacking it to re-enable
soft-poweroff and reboot.

 The only drawback is that with sane applications you would get only 12
 days with a full battery.

As you point out elsewhere though, the only sane applications we can
be sure of are the IT OS built-in ones, at the moment :-(

 I do admit that in some extreme case it might not be enough, but on
 OMAP2 it doesn't justify the hassle.

As I said, when users say suspend they mean the kind of thing I
describe above, what that maps to under the covers is not important.

 I'd rather spend time and resources in fixing kernel and applications to
 make sleep while idle as close as possible to suspend to ram.

Agreed. But hopefully the system is open enough to allow third parties
to hook into the infrastructure (e.g. power menu).

 Plain suspend to ram (or disk), imho, sucks, because it produces a
 useless brick till it is forcibly resumed. I think it would be much
 better to simply let wakeup events happen, but make sure that only the
 _useful_ ones happen.

Absolutely. FSVO useful.

 The user should be able to configure wakeup sources, certainly, even up
 to the point of saying: wake up only for power button, but the system
 should manage itself automatically.

Agreed, remember I'm talking about use-case for users, not if it's an
*actual* system suspend under the covers.

Cheers,

Andrew

-- 
Andrew Flegg -- mailto:[EMAIL PROTECTED]  |  http://www.bleb.org/
___
maemo-developers mailing list
maemo-developers@maemo.org
https://lists.maemo.org/mailman/listinfo/maemo-developers


Re: Internet Tablet Power Management presentation from linux-pm summit 2007

2007-07-11 Thread David Weinehall
On ons, 2007-07-11 at 13:28 +0100, ext Andrew Flegg wrote:
 On 7/11/07, Igor Stoppa [EMAIL PROTECTED] wrote:
 
 [snip lots of interesting stuff]
 
  It's a similar case to sleep while idle vs user-controlled suspend: just
  because old devices were doing suspend that doesn't make it desirable.
 
 This being reraised made me think about why, the other day, I *did*
 want user suspend. Sometimes I just want a quick way to:
 
   * Shut off all network connections.
   * Stop any noise (except configured alarms)
   * Have the screen locked
   * Not have to save my position
   * Be able to resume quickly
 
 This isn't suspend in a power sense, but in a use-case sense the
 purpose is clear.

So what you want is basically the Soft Poweroff option that's
available to you with a simple:

vim /etc/systemui/systemui.conf

but with some minor tweaks?  I guess that can be arranged =)


Regards: David
___
maemo-developers mailing list
maemo-developers@maemo.org
https://lists.maemo.org/mailman/listinfo/maemo-developers


Re: Internet Tablet Power Management presentation from linux-pm summit 2007

2007-07-11 Thread Marius Gedminas
On Wed, Jul 11, 2007 at 01:44:58PM +0100, Andrew Flegg wrote:
 On 7/11/07, Igor Stoppa [EMAIL PROTECTED] wrote:
  On Wed, 2007-07-11 at 13:28 +0100, ext Andrew Flegg wrote:
   This being reraised made me think about why, the other day, I *did*
   want user suspend. Sometimes I just want a quick way to:
  
 * Shut off all network connections.
 * Stop any noise (except configured alarms)
 * Have the screen locked
 * Not have to save my position
 * Be able to resume quickly
  
   This isn't suspend in a power sense, but in a use-case sense the
   purpose is clear.
 
  Why not just put it in offline mode and lock the screen and keys?
 
  That's what i do and it simply works.
 
 Well, that doesn't block sound so if the battery starts going down in
 the night, or similar, I could be awoken by a noise. It's also clumsy
 as the sequence is:
 
1) Press power button
2) Select offline mode
3) Press OK
4) Press power button
5) Press OK
 
 Unlocking is a simlar number. That's not exactly a simple sequence, as
 say the 770's cover was (as Andy Mulhearn points out).

Right.  Palm had a simple sequence:

   1) Press power button

There's also the popular story about a guy at Palm whose job was to
count the taps needed to do something.  (If it takes more than three
taps, the user interface needs to be fixed, or something like that.)
As a user, I noticed that immediately when I exchanged my old Palm to a
770.  (It's getting better in newer software versions: copy  paste
moved one level up in the virtual keyboard menu.)

Marius Gedminas
-- 
If con is the opposite of pro, then what is the opposite of progress?


signature.asc
Description: Digital signature
___
maemo-developers mailing list
maemo-developers@maemo.org
https://lists.maemo.org/mailman/listinfo/maemo-developers


Re: Internet Tablet Power Management presentation from linux-pm summit 2007

2007-07-11 Thread Andrew Flegg
On 7/11/07, David Weinehall [EMAIL PROTECTED] wrote:
 On ons, 2007-07-11 at 13:28 +0100, ext Andrew Flegg wrote:
 
  This being reraised made me think about why, the other day, I *did*
  want user suspend. Sometimes I just want a quick way to:
 
* Shut off all network connections.
* Stop any noise (except configured alarms)
* Have the screen locked
* Not have to save my position
* Be able to resume quickly
 
  This isn't suspend in a power sense, but in a use-case sense the
  purpose is clear.

 So what you want is basically the Soft Poweroff option that's
 available [...] but with some minor tweaks?

Yes, exactly :-)

 I guess that can be arranged =)

Cool. Is it anything I could do straight off (I can also imagine a
control panel applet to allow users to customise[1] this suspended
state as Igor describes), or does it still dependent on some
relatively closed/unhookable infrastructure?

Cheers,

Andrew

[1] Sound on/off, network on/off being the obvious ones

-- 
Andrew Flegg -- mailto:[EMAIL PROTECTED]  |  http://www.bleb.org/
___
maemo-developers mailing list
maemo-developers@maemo.org
https://lists.maemo.org/mailman/listinfo/maemo-developers


Re: Internet Tablet Power Management presentation from linux-pm summit 2007

2007-07-11 Thread David Weinehall
On ons, 2007-07-11 at 13:53 +0100, ext Andrew Flegg wrote:
 On 7/11/07, David Weinehall [EMAIL PROTECTED] wrote:
  On ons, 2007-07-11 at 13:28 +0100, ext Andrew Flegg wrote:
  
   This being reraised made me think about why, the other day, I *did*
   want user suspend. Sometimes I just want a quick way to:
  
 * Shut off all network connections.
 * Stop any noise (except configured alarms)
 * Have the screen locked
 * Not have to save my position
 * Be able to resume quickly
  
   This isn't suspend in a power sense, but in a use-case sense the
   purpose is clear.
 
  So what you want is basically the Soft Poweroff option that's
  available [...] but with some minor tweaks?
 
 Yes, exactly :-)
 
  I guess that can be arranged =)
 
 Cool. Is it anything I could do straight off (I can also imagine a
 control panel applet to allow users to customise[1] this suspended
 state as Igor describes), or does it still dependent on some
 relatively closed/unhookable infrastructure?

systemui.xml (sorry, not conf as I wrote in my previous e-mail) file
supports callbacks, to get customised behaviour.

 [1] Sound on/off, network on/off being the obvious ones

I can make that configurable through /etc/mce/mce.ini


Regards: David
___
maemo-developers mailing list
maemo-developers@maemo.org
https://lists.maemo.org/mailman/listinfo/maemo-developers


Re: Internet Tablet Power Management presentation from linux-pm summit 2007

2007-07-11 Thread Igor Stoppa

On Wed, 2007-07-11 at 16:01 +0300, David Weinehall wrote:
 On ons, 2007-07-11 at 13:53 +0100, ext Andrew Flegg wrote:
  On 7/11/07, David Weinehall [EMAIL PROTECTED] wrote:
   On ons, 2007-07-11 at 13:28 +0100, ext Andrew Flegg wrote:
   
This being reraised made me think about why, the other day, I *did*
want user suspend. Sometimes I just want a quick way to:
   
  * Shut off all network connections.
  * Stop any noise (except configured alarms)
  * Have the screen locked
  * Not have to save my position
  * Be able to resume quickly
   
This isn't suspend in a power sense, but in a use-case sense the
purpose is clear.
  
   So what you want is basically the Soft Poweroff option that's
   available [...] but with some minor tweaks?
  
  Yes, exactly :-)
  
   I guess that can be arranged =)
  
  Cool. Is it anything I could do straight off (I can also imagine a
  control panel applet to allow users to customise[1] this suspended
  state as Igor describes), or does it still dependent on some
  relatively closed/unhookable infrastructure?
 
 systemui.xml (sorry, not conf as I wrote in my previous e-mail) file
 supports callbacks, to get customised behaviour.
 
  [1] Sound on/off, network on/off being the obvious ones
 
 I can make that configurable through /etc/mce/mce.ini

Sorry to ruin the party, but as Mike Baker wrote some time ago

(RFC: n800 suspend to ram)

the suspend wouldn't be forever anyway: Mike's script or something
similar should be used. So there _would_ be anyway some activity.

-- 
Cheers, Igor

Igor Stoppa [EMAIL PROTECTED]
(Nokia Multimedia - CP - OSSO / Helsinki, Finland)
___
maemo-developers mailing list
maemo-developers@maemo.org
https://lists.maemo.org/mailman/listinfo/maemo-developers


Re: Internet Tablet Power Management presentation from linux-pm summit 2007

2007-07-11 Thread Visti Andresen
On Wed, 11 Jul 2007 15:52:10 +0300
Marius Gedminas [EMAIL PROTECTED] wrote:

 On Wed, Jul 11, 2007 at 01:44:58PM +0100, Andrew Flegg wrote:
  On 7/11/07, Igor Stoppa [EMAIL PROTECTED] wrote:
   On Wed, 2007-07-11 at 13:28 +0100, ext Andrew Flegg wrote:
This being reraised made me think about why, the other day, I *did*
want user suspend. Sometimes I just want a quick way to:
   
  * Shut off all network connections.
  * Stop any noise (except configured alarms)
  * Have the screen locked
  * Not have to save my position
  * Be able to resume quickly
   
This isn't suspend in a power sense, but in a use-case sense the
purpose is clear.
  
   Why not just put it in offline mode and lock the screen and keys?
  
   That's what i do and it simply works.
  
  Well, that doesn't block sound so if the battery starts going down in
  the night, or similar, I could be awoken by a noise. It's also clumsy
  as the sequence is:
  
 1) Press power button
 2) Select offline mode
 3) Press OK
 4) Press power button
 5) Press OK
  
  Unlocking is a simlar number. That's not exactly a simple sequence, as
  say the 770's cover was (as Andy Mulhearn points out).
 
 Right.  Palm had a simple sequence:
 
1) Press power button
 

I could suggest using a double click on the power button

First click opens the Device mode dialogue.
Second click suspends the device.

Apply a timeout after the dialogue appears,
if the power button click happens after this,
the dialogue just closes (to prevent accidental suspends)  

 There's also the popular story about a guy at Palm whose job was to
 count the taps needed to do something.  (If it takes more than three
 taps, the user interface needs to be fixed, or something like that.)
 As a user, I noticed that immediately when I exchanged my old Palm to a
 770.  (It's getting better in newer software versions: copy  paste
 moved one level up in the virtual keyboard menu.)
 
 Marius Gedminas
 -- 
 If con is the opposite of pro, then what is the opposite of progress?
___
maemo-developers mailing list
maemo-developers@maemo.org
https://lists.maemo.org/mailman/listinfo/maemo-developers


Re: Internet Tablet Power Management presentation from linux-pm summit 2007

2007-07-11 Thread David Weinehall
On ons, 2007-07-11 at 16:14 +0300, Igor Stoppa wrote:
 On Wed, 2007-07-11 at 16:01 +0300, David Weinehall wrote:
  On ons, 2007-07-11 at 13:53 +0100, ext Andrew Flegg wrote:
  systemui.xml (sorry, not conf as I wrote in my previous e-mail) file
  supports callbacks, to get customised behaviour.
  
   [1] Sound on/off, network on/off being the obvious ones
  
  I can make that configurable through /etc/mce/mce.ini
 
 Sorry to ruin the party, but as Mike Baker wrote some time ago
 
 (RFC: n800 suspend to ram)
 
 the suspend wouldn't be forever anyway: Mike's script or something
 similar should be used. So there _would_ be anyway some activity.

Uhm?  What's that got to do with anything?  The standard soft-off in mce
only relies on the excellent dynamic sleep of the device (but with
display turned off, power off behaviour of the power button,
touchscreen/keypad lock enabled, etc).  Of course, if anyone wants to
use suspend too, that's their choice, but really, Soft Poweroff doesn't
rely on it.


Regards: David
___
maemo-developers mailing list
maemo-developers@maemo.org
https://lists.maemo.org/mailman/listinfo/maemo-developers


Re: Internet Tablet Power Management presentation from linux-pm summit 2007

2007-07-11 Thread Kemal Hadimli
   * Shut off all network connections.
   * Stop any noise (except configured alarms)
   * Have the screen locked
   * Not have to save my position
   * Be able to resume quickly

a special softpoweroff mode combined with muted sound and offline mode
sounds really useful to me.

 I could suggest using a double click on the power button

 First click opens the Device mode dialogue.
 Second click suspends the device.

 Apply a timeout after the dialogue appears,
 if the power button click happens after this,
 the dialogue just closes (to prevent accidental suspends)

I think adding a PowerKeyDoubleAction and PowerKeyDoubleTimeout (or
PowerKeyDoubleDelay) to mce.ini and making this all configurable would
be the best approach.

-- 
Kemal
___
maemo-developers mailing list
maemo-developers@maemo.org
https://lists.maemo.org/mailman/listinfo/maemo-developers


Re: Internet Tablet Power Management presentation from linux-pm summit 2007

2007-07-11 Thread Igor Stoppa
On Wed, 2007-07-11 at 14:29 +0200, ext Frantisek Dufka wrote:
 Igor Stoppa wrote:
  I certainly will run my tablet at higher speed and/or lower voltage;
  finland makes it unlikely to incur in heating problems ;-)
 
 CPU temperature sensor might be useful to guess the limit and cut the 
 speed down in case one is not in Finland :-) Is there one?

There is one between omap and the combo chip memory, but it is quite
sucky. Not that we haven't thought about it.

If there is some spare time (yeah, right) we could try to use it, but TI
is unlikely to support it and therefore i'm quite confident it will ever
ship (albeit it would be quite interesting since it would allow much
more aggressive trimming down of the voltage).

 Well, I'm not sure but maybe when being conservative with power saving 
 and when some hints are applied (i.e some API) it could work. I'm mainly 
 thinking about CPU spikes when applications are starting. I fear the 
 system will not react quickly enough with 'overclocking' when 
 application starts since otherwise the device does nothing before and 
 after. But this specific problem could be solved with some hints done 
 from application launcher or maybe kernel or libc (exec/fork call) itself.

Ondemand starts by cranking up to the max the frequency. It cannot be
beaten.

 I'm not sure how linux currently does it on x86 (shame on me, using XP 
 on laptop and linux only in vmware) but my experience with RMClock on XP 
 (http://cpu.rightmark.org/products/rmclock.shtml) is that it is 
 hard/impossible to tune it in such way that application startup is not 
 slower and you still save some power.

OMAP has retention so it's not that critical to fine tune. x86 otoh
doesn't, afaik, so it would require more aggressive tuning

[snip]

  You mean QoS. Yes, that seems to be the general understanding.
 
 Yes that's it. Didn't know this term is used also in power management, 
 though.

I use it :-P others are more shy about it, but when asked they admit
that it is what they have on their mind.

-- 
Cheers, Igor

Igor Stoppa [EMAIL PROTECTED]
(Nokia Multimedia - CP - OSSO / Helsinki, Finland)
___
maemo-developers mailing list
maemo-developers@maemo.org
https://lists.maemo.org/mailman/listinfo/maemo-developers


Re: Internet Tablet Power Management presentation from linux-pm summit 2007

2007-07-11 Thread David Weinehall
On ons, 2007-07-11 at 15:16 +0200, ext Visti Andresen wrote:

[snip]

 I could suggest using a double click on the power button
 
 First click opens the Device mode dialogue.
 Second click suspends the device.

The idea is great, IMHO, but I doubt that Nokia's UI-team would agree;
on a Nokia phone, pressing the power button when the device menu is open
acts as cursor down.  On our device it just ignores the press
completely, which was an acceptable behaviour too.  Adding a totally
different behaviour would probably be regarded as too complicated for
the user, or something =)

[snip]


Regards: David
___
maemo-developers mailing list
maemo-developers@maemo.org
https://lists.maemo.org/mailman/listinfo/maemo-developers


Re: Internet Tablet Power Management presentation from linux-pm summit 2007

2007-07-11 Thread Mika Yrjölä
On 7/11/07, Frantisek Dufka [EMAIL PROTECTED] wrote:
 Igor Stoppa wrote:
  I certainly will run my tablet at higher speed and/or lower voltage;
  finland makes it unlikely to incur in heating problems ;-)

 CPU temperature sensor might be useful to guess the limit and cut the
 speed down in case one is not in Finland :-) Is there one?

I noticed something that looked like a pseudofile for a temperature
sensor somewhere under the /sys awhile back, can't remember the exact
path right now, though. Neither do I have any idea whether the values
there are useful; they looked a bit like temperature in Centigrades *
1000 or something and did change, but that doesn't mean that they're
accurate, change in linear fashion etc.
___
maemo-developers mailing list
maemo-developers@maemo.org
https://lists.maemo.org/mailman/listinfo/maemo-developers


Re: Internet Tablet Power Management presentation from linux-pm summit 2007

2007-07-11 Thread Hanno Zulla
Marius Gedminas schrieb:
 Palm had a simple sequence:
 
1) Press power button

Something like that had been suggested through

https://bugs.maemo.org/show_bug.cgi?id=1246

and was rejected as WONTFIX by the Nokia team.

Regards,

Hanno
___
maemo-developers mailing list
maemo-developers@maemo.org
https://lists.maemo.org/mailman/listinfo/maemo-developers


Re: Internet Tablet Power Management presentation from linux-pm summit 2007

2007-07-11 Thread Ian

ola
 https://bugs.maemo.org/show_bug.cgi?id=1246
for me this gives

There is a problem with this website's security certificate.

on windows vista
[]'s
ian
-- 
http://ianlawrence.info


___
maemo-developers mailing list
maemo-developers@maemo.org
https://lists.maemo.org/mailman/listinfo/maemo-developers


Re: Internet Tablet Power Management presentation from linux-pm summit 2007

2007-07-11 Thread Neil MacLeod
David Weinehall wrote:
 On ons, 2007-07-11 at 15:16 +0200, ext Visti Andresen wrote:
 
 [snip]
 
 I could suggest using a double click on the power button

 First click opens the Device mode dialogue.
 Second click suspends the device.
 
 The idea is great, IMHO, but I doubt that Nokia's UI-team would agree;
 on a Nokia phone, pressing the power button when the device menu is open
 acts as cursor down.  On our device it just ignores the press
 completely, which was an acceptable behaviour too.  Adding a totally
 different behaviour would probably be regarded as too complicated for
 the user, or something =)
 
 [snip]
 
 
 Regards: David

Sounds similar to RFE https://bugs.maemo.org/show_bug.cgi?id=943

Vote it up if there's to be any hope of a change of heart on Nokia's part! :)

___
maemo-developers mailing list
maemo-developers@maemo.org
https://lists.maemo.org/mailman/listinfo/maemo-developers


Re: Internet Tablet Power Management presentation from linux-pm summit 2007

2007-07-11 Thread Igor Stoppa
On Wed, 2007-07-11 at 16:26 +0300, ext David Weinehall wrote:
 On ons, 2007-07-11 at 15:16 +0200, ext Visti Andresen wrote:
 
 [snip]
 
  I could suggest using a double click on the power button
  
  First click opens the Device mode dialogue.
  Second click suspends the device.
 
 The idea is great, IMHO, but I doubt that Nokia's UI-team would agree;
 on a Nokia phone, pressing the power button when the device menu is open
 acts as cursor down.  On our device it just ignores the press
 completely, which was an acceptable behaviour too.  Adding a totally
 different behaviour would probably be regarded as too complicated for
 the user, or something =)

We are doing open software, right? So let's provide a good mechanism
that supports more advanced interactions and even if we have to
officially ship with a lame set of choices for the average user, others
can implement more advanced features.

From the discussion so far, I'm getting the impression that what people
are actually asking for is a way to create very customised extra
profiles.

Example:

Create Night mode and associate it with the shortcut (double press on
the power button):
-disable chat/presence
-leave only VOIP with a subset of users actually able to generate rings
-kill all the led signalling
-

All these actions should be (are they already?) commands to be sent to
the interested application/daemon through DBUS, so a simple script,
paired with a command line dbus interface would be sufficient.

It's just a matter of having available the list of commands/requests
supported by every application over DBUS.

-- 
Cheers, Igor

Igor Stoppa [EMAIL PROTECTED]
(Nokia Multimedia - CP - OSSO / Helsinki, Finland)
___
maemo-developers mailing list
maemo-developers@maemo.org
https://lists.maemo.org/mailman/listinfo/maemo-developers


RE: Java acceleration/Jazelle

2007-07-11 Thread Simon Pickering
Hi all,

If this is all already known please let me know and I'll stop waffling, 
but some Googling couldn't find anything, so I'll present what I've 
found thus far.

 I had a look around for some more information and found the patent 
 for Jazelle: US patent number 7089539.

 Google link here (with figures, which makes understanding it far 
 easier): http://www.google.com/patents?id=iMt6EBAJdq=7089539

I've finally got round to reading all of the patent in question.

I've changed my mind about exception handlers (see my previous posts 
with the same subject line). I believe that the processor internally 
handles any exception caused by an unrecognised Java bytecode, and (and 
this is where a bit of interpretation/reading between the lines comes 
in) automatically switches to ARM mode and jumps to an address 
specified in a pointer table provided by the application running the 
JVM (i.e. us).

If you look at Fig.4 in the patent, for example, you can see a snippet 
of code. This is one of the chunks of code that would be jumped to 
(pointed to by the pointer table, which will be 256 pointers long, one 
for each bytecode) and implements the iadd bytecode.

I've repeated the code fragment below with comments above each line:

/* increment bytecode pointer (R14) and load value pointed to by R14 into R4.
This is performed so that we have the bytecode value of the *next* bytecode
(i.e. not the one that couldn't be handled) in R4. We move the Java
'program counter' register, R14, along by one before we do this (in fact it
does R4=*(R14+1) then R14=R14+1, but same in the end). */
LDRB R4, [R14, #1]!
/* decrement Rstack by 4, then pop first operand from stack into R1
This is part of handling the actual instruction, in this case an 
iadd, so we
need to pop the values from the stack */
LDR R1,[Rstack, #-4]!
/* decrement Rstack by 4, then pop first operand from stack into R0
As above */
LDR R0,[Rstack, #-4]!
/* Get address of next code fragment for next bytecode
load into R12 the value from Rexc + (R4 x 2^2).
In this step we look into the pointer table (which contains pointers to
ARM code fragments that handle each Java bytecode) and we load the address
of the code fragment for the next Java instruction (not the one we're
currently handling) which we loaded into R4 on the first line */
LDR R12,[Rexc, R4, LSL #2]
/* R0 = R0 + R1
Here we simply perform the add operation that this code fragment is
handling*/
ADD R0,R0,R1
/* Store R0 in Rstack and increment Rstack by 4 (pre or post? post probably)
Here we save the results of the add operation that we're handling in this
code snippet*/
STR R0,[Rstack],#4
/* Branch to Java
This command takes as its operand the address of the ARM software snippet
used to handled the bytecode. Not (it would appear) the address of the Java
bytecode to execute. The address of the bytecode should be in R14. The
Jazelle hardware decides whether Jazelle is present and enabled and chooses
whether to jump to the bytecode and enter Java mode, or to stay in ARM mode
and 'emulate' the instruction */
BXJ R12

Note that the actual implementation of the iadd instruction (popping 
twice, adding then pushing) is mixed in with the preparations to handle 
the next bytecode/re-enter Java mode. Afaiu, this is done to make the 
code more efficient and avoid stalls.

So you can see that the code has already worked out where it needs to 
jump to in  either Java or ARM 'emulation' mode (the latter is done to 
speed up processing should Jazelle be disabled or the bytecode be 
another one that's not handled by the hardware).

One curious point about this code is that I was under the impression 
that the stack was held in registers [1], rather than at some address 
as is indicated by the pop instructions. It may be that the Jazelle 
hardware does in fact hold the top stack elements in registers and 
flushes them to memory when the unrecognised Java bytecode exception is 
caused. The question then is which register actually holds this memory 
address (ie. Rstack in the code above)? The same article says that R6 
holds the stack pointer, so perhaps this is used...?

The other register that needs to be determined is Rexc, which is the 
one that points to the base of the pointer table which contains the 
pointers to the ARM code snippets. But it looks like accesses to this 
table are only handled in the ARM snippets (which 'we' would provide), 
so it then becomes a question of which spare register can be used to 
store this address and won't be overwritten.

There are of course a number of other patents that were from around the 
same time. Not sure whether any of the others will have any useful info 
in them. For that matter I wonder why ARM provided some of the register 
names/numbers, but not others?

Time to brush up on my inline asm, and to dig out my Java 2 Virtual 
Machine book and make up some test (byte)codes...


Simon


Re: Java acceleration/Jazelle

2007-07-11 Thread Sebastian Mancke
Hi Simon,

nice research !!! This seams easier (and more os independent) than my
thoughts with an interrupt in kernel mode. Although we can not say for
sure, that Jazelle is implemented the way, the patent describes, this is
a very good point to get a forthcome.

Regards,
  Sebastian


Simon Pickering schrieb:
 Hi all,
 
 If this is all already known please let me know and I'll stop waffling, 
 but some Googling couldn't find anything, so I'll present what I've 
 found thus far.
 
 I had a look around for some more information and found the patent 
 for Jazelle: US patent number 7089539.
 
 Google link here (with figures, which makes understanding it far 
 easier): http://www.google.com/patents?id=iMt6EBAJdq=7089539
 
 I've finally got round to reading all of the patent in question.
 
 I've changed my mind about exception handlers (see my previous posts 
 with the same subject line). I believe that the processor internally 
 handles any exception caused by an unrecognised Java bytecode, and (and 
 this is where a bit of interpretation/reading between the lines comes 
 in) automatically switches to ARM mode and jumps to an address 
 specified in a pointer table provided by the application running the 
 JVM (i.e. us).
 
 If you look at Fig.4 in the patent, for example, you can see a snippet 
 of code. This is one of the chunks of code that would be jumped to 
 (pointed to by the pointer table, which will be 256 pointers long, one 
 for each bytecode) and implements the iadd bytecode.
 
 I've repeated the code fragment below with comments above each line:
 
 /* increment bytecode pointer (R14) and load value pointed to by R14 into R4.
 This is performed so that we have the bytecode value of the *next* 
 bytecode
 (i.e. not the one that couldn't be handled) in R4. We move the Java
 'program counter' register, R14, along by one before we do this (in fact 
 it
 does R4=*(R14+1) then R14=R14+1, but same in the end). */
 LDRB R4, [R14, #1]!
 /* decrement Rstack by 4, then pop first operand from stack into R1
 This is part of handling the actual instruction, in this case an 
 iadd, so we
 need to pop the values from the stack */
 LDR R1,[Rstack, #-4]!
 /* decrement Rstack by 4, then pop first operand from stack into R0
 As above */
 LDR R0,[Rstack, #-4]!
 /* Get address of next code fragment for next bytecode
 load into R12 the value from Rexc + (R4 x 2^2).
 In this step we look into the pointer table (which contains pointers to
 ARM code fragments that handle each Java bytecode) and we load the address
 of the code fragment for the next Java instruction (not the one we're
 currently handling) which we loaded into R4 on the first line */
 LDR R12,[Rexc, R4, LSL #2]
 /* R0 = R0 + R1
 Here we simply perform the add operation that this code fragment is
 handling*/
 ADD R0,R0,R1
 /* Store R0 in Rstack and increment Rstack by 4 (pre or post? post probably)
 Here we save the results of the add operation that we're handling in this
 code snippet*/
 STR R0,[Rstack],#4
 /* Branch to Java
 This command takes as its operand the address of the ARM software snippet
 used to handled the bytecode. Not (it would appear) the address of the 
 Java
 bytecode to execute. The address of the bytecode should be in R14. The
 Jazelle hardware decides whether Jazelle is present and enabled and 
 chooses
 whether to jump to the bytecode and enter Java mode, or to stay in ARM 
 mode
 and 'emulate' the instruction */
 BXJ R12
 
 Note that the actual implementation of the iadd instruction (popping 
 twice, adding then pushing) is mixed in with the preparations to handle 
 the next bytecode/re-enter Java mode. Afaiu, this is done to make the 
 code more efficient and avoid stalls.
 
 So you can see that the code has already worked out where it needs to 
 jump to in  either Java or ARM 'emulation' mode (the latter is done to 
 speed up processing should Jazelle be disabled or the bytecode be 
 another one that's not handled by the hardware).
 
 One curious point about this code is that I was under the impression 
 that the stack was held in registers [1], rather than at some address 
 as is indicated by the pop instructions. It may be that the Jazelle 
 hardware does in fact hold the top stack elements in registers and 
 flushes them to memory when the unrecognised Java bytecode exception is 
 caused. The question then is which register actually holds this memory 
 address (ie. Rstack in the code above)? The same article says that R6 
 holds the stack pointer, so perhaps this is used...?
 
 The other register that needs to be determined is Rexc, which is the 
 one that points to the base of the pointer table which contains the 
 pointers to the ARM code snippets. But it looks like accesses to this 
 table are only handled in the ARM snippets (which 'we' would provide), 
 so it then becomes a question of which spare register can be used to 
 store this