Re: suspend/resume PM criterion for application

2014-09-16 Thread Peter Teoh
On Sun, Sep 14, 2014 at 2:11 AM, Ran Shalit ransha...@gmail.com wrote:

 On Thu, Sep 11, 2014 at 12:24 PM, Ran Shalit ransha...@gmail.com wrote:
  On Thu, Sep 11, 2014 at 8:32 AM, AYAN KUMAR HALDER ayankum...@gmail.com
 wrote:
  On Thu, Sep 11, 2014 at 12:55 AM,  valdis.kletni...@vt.edu wrote:
  On Wed, 10 Sep 2014 21:58:48 +0300, Ran Shalit said:
 
  1. How can I make a process to notice this inactivity ? Do you think
  it can be implemented by some periodic process who check if there is
  activity ? It returns to the original question I raised, that I will
  use some periodic process who checks maybe cpu load or something like
  that. What do you think ?
 
  That's going to depend on your system and what processes are running.
 
  You may have an MP3 player going that doesn't take much CPU at all -
 but
  shutting down because the user hasn't hit a button in 47 minutes will
 probably
  irritate the user no end.  Or there may be a screensaver running that
 takes
  twice as much CPU as the MP3 player, but is totally OK on the system
  suspending whenever the rest of the system wants it.
 
  You're going to have to look at your system design, and decide for
 yourself
  what the criteria are.
 
  Please correct me if my understanding is wrong:-
 
  I believe that autosuspend feature (for system suspend) is not present
  in kernel. I believe that there is no feature in kernel which checks
  for system ( cpu, devices) inactivity and suspends the entire system.
  System suspend is caused when :-
  1. the user issues a command
  2. The system receives some interrupt or event (lid closing event)
  3. There is an external process which monitors system inactivity and
  suspends the system.
 
  For runtime suspend of a device, I believe it is the driver who has
  the complete responsibility to decide when to suspend the device or
  resume it.  The driver can take this decision on user intervention (eg
  when user writes to   /sys/devices/my-device/power/* ) or when the
  driver has completed servicing an interrupt and feels it has nothing
  more to do, etc
 
  Thanks Vlaid, Ayan,
 
  I am a bit yet struggling for couple of days on this PM issue, and I
  would appreciate your continous advise.
  The system requirement I have is as following:
  1. make everything as automatic as possible , so that there won't be
  any need to add any userspace application for the matter.
  2. wakeup from all relevant wakeup sources
  3. should not use sysfs (it should be disabled from kernel)
  4. platform is OMAP3530.


a.   look into /arch/arm/mach-omap2 of kernel source and grep for sleep
and wakeup functionality:   power management is just managing with the
different frequencies of the the CPU.   as far as I can tell, once sleep,
only uart pin can be used for waking upnot sure.

b.   read this:

http://e2e.ti.com/support/dsp/omap_applications_processors/f/447/t/30005.aspx

http://www.ti.com/lit/an/slva310b/slva310b.pdf   (read page 2, which
describe the different powerup-sequence of the CPU, Powering-Up Sequence.


c.   the technology brand name for omap3530 is DVFSsearch for this
inside the arch/arm kernel source.you can find lots of sample codes
there.

(don't confuse with another omap CPU brand name DeepSleep but is PM for
another type of omap cpu.)

d.   http://www.ti.com/product/omap3530 -- on the right is a DVSDK +
Android source code for 3530grep the codes for the above keywords...

hopefully it helps?



 
  Now, As I understand thus far, I have the following options (
  requirement 3 above I will ignore, don't know how to handle it yet,
  and assume for meanwhile that I have sysfs) :
  1. use suspend scheme (no runtime PM)
  1.a. create some kernel thread who check cpu load and will decide
  to disable system only if its below some minimum threshold (which
  should indicate no activity)
  1.b. initialize all HW interrupts (gpio, uart, etc) as wakeup sources
  with this scheme only this thread is responsible for the suspend,
  and there is no use of the runtime PM, right ?
 
  2. use runtime PM scheme :
  With this scheme I don't understand how some device will wake the
  system , or doesn't it need to  ? If a driver wakes up maybe it need
  to deliver some info to system?
 
  I think option 1 is also easier to support, what do you think about both
 ?
 
  Thanks!!
  Ran

 Does Anyone have any suggestions and feedback on the above requirements ?

 Thank you,
 Ran

 ___
 Kernelnewbies mailing list
 Kernelnewbies@kernelnewbies.org
 http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies




-- 
Regards,
Peter Teoh
___
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies


Re: suspend/resume PM criterion for application

2014-09-16 Thread Peter Teoh
On Wed, Sep 17, 2014 at 11:16 AM, Peter Teoh htmldevelo...@gmail.com
wrote:



 On Sun, Sep 14, 2014 at 2:11 AM, Ran Shalit ransha...@gmail.com wrote:

 On Thu, Sep 11, 2014 at 12:24 PM, Ran Shalit ransha...@gmail.com wrote:
  On Thu, Sep 11, 2014 at 8:32 AM, AYAN KUMAR HALDER 
 ayankum...@gmail.com wrote:
  On Thu, Sep 11, 2014 at 12:55 AM,  valdis.kletni...@vt.edu wrote:
  On Wed, 10 Sep 2014 21:58:48 +0300, Ran Shalit said:
 
  1. How can I make a process to notice this inactivity ? Do you think
  it can be implemented by some periodic process who check if there is
  activity ? It returns to the original question I raised, that I will
  use some periodic process who checks maybe cpu load or something like
  that. What do you think ?
 
  That's going to depend on your system and what processes are running.
 
  You may have an MP3 player going that doesn't take much CPU at all -
 but
  shutting down because the user hasn't hit a button in 47 minutes will
 probably
  irritate the user no end.  Or there may be a screensaver running that
 takes
  twice as much CPU as the MP3 player, but is totally OK on the system
  suspending whenever the rest of the system wants it.
 
  You're going to have to look at your system design, and decide for
 yourself
  what the criteria are.
 
  Please correct me if my understanding is wrong:-
 
  I believe that autosuspend feature (for system suspend) is not present
  in kernel. I believe that there is no feature in kernel which checks
  for system ( cpu, devices) inactivity and suspends the entire system.
  System suspend is caused when :-
  1. the user issues a command
  2. The system receives some interrupt or event (lid closing event)
  3. There is an external process which monitors system inactivity and
  suspends the system.
 
  For runtime suspend of a device, I believe it is the driver who has
  the complete responsibility to decide when to suspend the device or
  resume it.  The driver can take this decision on user intervention (eg
  when user writes to   /sys/devices/my-device/power/* ) or when the
  driver has completed servicing an interrupt and feels it has nothing
  more to do, etc
 
  Thanks Vlaid, Ayan,
 
  I am a bit yet struggling for couple of days on this PM issue, and I
  would appreciate your continous advise.
  The system requirement I have is as following:
  1. make everything as automatic as possible , so that there won't be
  any need to add any userspace application for the matter.
  2. wakeup from all relevant wakeup sources
  3. should not use sysfs (it should be disabled from kernel)
  4. platform is OMAP3530.


 a.   look into /arch/arm/mach-omap2 of kernel source and grep for sleep
 and wakeup functionality:   power management is just managing with the
 different frequencies of the the CPU.   as far as I can tell, once sleep,
 only uart pin can be used for waking upnot sure.

 b.   read this:


 http://e2e.ti.com/support/dsp/omap_applications_processors/f/447/t/30005.aspx

 http://www.ti.com/lit/an/slva310b/slva310b.pdf   (read page 2, which
 describe the different powerup-sequence of the CPU, Powering-Up Sequence.


 c.   the technology brand name for omap3530 is DVFSsearch for this
 inside the arch/arm kernel source.you can find lots of sample codes
 there.

 (don't confuse with another omap CPU brand name DeepSleep but is PM for
 another type of omap cpu.)

 d.   http://www.ti.com/product/omap3530 -- on the right is a DVSDK +
 Android source code for 3530grep the codes for the above keywords...

 hopefully it helps?


at the risk of missing out other files:

how about this two files:

inside arch/arm/mach-omap2:

omap-pm.h
omap-pm-noop.c

which I think provide a lot of hint for you.
___
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies


Re: suspend/resume PM criterion for application

2014-09-14 Thread Ran Shalit
On Thu, Sep 11, 2014 at 12:24 PM, Ran Shalit ransha...@gmail.com wrote:
 On Thu, Sep 11, 2014 at 8:32 AM, AYAN KUMAR HALDER ayankum...@gmail.com 
 wrote:
 On Thu, Sep 11, 2014 at 12:55 AM,  valdis.kletni...@vt.edu wrote:
 On Wed, 10 Sep 2014 21:58:48 +0300, Ran Shalit said:

 1. How can I make a process to notice this inactivity ? Do you think
 it can be implemented by some periodic process who check if there is
 activity ? It returns to the original question I raised, that I will
 use some periodic process who checks maybe cpu load or something like
 that. What do you think ?

 That's going to depend on your system and what processes are running.

 You may have an MP3 player going that doesn't take much CPU at all - but
 shutting down because the user hasn't hit a button in 47 minutes will 
 probably
 irritate the user no end.  Or there may be a screensaver running that takes
 twice as much CPU as the MP3 player, but is totally OK on the system
 suspending whenever the rest of the system wants it.

 You're going to have to look at your system design, and decide for yourself
 what the criteria are.

 Please correct me if my understanding is wrong:-

 I believe that autosuspend feature (for system suspend) is not present
 in kernel. I believe that there is no feature in kernel which checks
 for system ( cpu, devices) inactivity and suspends the entire system.
 System suspend is caused when :-
 1. the user issues a command
 2. The system receives some interrupt or event (lid closing event)
 3. There is an external process which monitors system inactivity and
 suspends the system.

 For runtime suspend of a device, I believe it is the driver who has
 the complete responsibility to decide when to suspend the device or
 resume it.  The driver can take this decision on user intervention (eg
 when user writes to   /sys/devices/my-device/power/* ) or when the
 driver has completed servicing an interrupt and feels it has nothing
 more to do, etc

 Thanks Vlaid, Ayan,

 I am a bit yet struggling for couple of days on this PM issue, and I
 would appreciate your continous advise.
 The system requirement I have is as following:
 1. make everything as automatic as possible , so that there won't be
 any need to add any userspace application for the matter.
 2. wakeup from all relevant wakeup sources
 3. should not use sysfs (it should be disabled from kernel)
 4. platform is OMAP3530.

 Now, As I understand thus far, I have the following options (
 requirement 3 above I will ignore, don't know how to handle it yet,
 and assume for meanwhile that I have sysfs) :
 1. use suspend scheme (no runtime PM)
 1.a. create some kernel thread who check cpu load and will decide
 to disable system only if its below some minimum threshold (which
 should indicate no activity)
 1.b. initialize all HW interrupts (gpio, uart, etc) as wakeup sources
 with this scheme only this thread is responsible for the suspend,
 and there is no use of the runtime PM, right ?

 2. use runtime PM scheme :
 With this scheme I don't understand how some device will wake the
 system , or doesn't it need to  ? If a driver wakes up maybe it need
 to deliver some info to system?

 I think option 1 is also easier to support, what do you think about both ?

 Thanks!!
 Ran

Does Anyone have any suggestions and feedback on the above requirements ?

Thank you,
Ran

___
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies


suspend/resume PM criterion for application

2014-09-10 Thread Ran Shalit
Hello,

What is usually the criterion for PM (power management) suspending
that application shall use ? Is it according to minimum threshold for
cpu load (as indication for no process) ?

How usually it is performed, i.e.  is it some periodic process, which
wakes up periodically to check criterion for cpu load ? If so, isn't
it problematic in PM terms, becuase it mean that the system is resumed
periodically (as a result of the the periodic timer's interrupt), and
all devices are resumed ?

Thanks,
Ran

___
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies


Re: suspend/resume PM criterion for application

2014-09-10 Thread Valdis . Kletnieks
On Wed, 10 Sep 2014 20:26:48 +0300, Ran Shalit said:

 What is usually the criterion for PM (power management) suspending
 that application shall use ? Is it according to minimum threshold for
 cpu load (as indication for no process) ?

That will be highly application dependent.  Something that checks your email
in the background may not care at all, as long as it gets network
access every 5 minutes or so, and the entire system can power down for 4 minutes
and 58 seconds as far as it cares.  If it's doing media streaming, it may
insist on having at least one CPU burst per screen refresh, and the CPU can
go to sleep for the rest of the 1/30th of  a second.

 How usually it is performed, i.e.  is it some periodic process, which
 wakes up periodically to check criterion for cpu load ? If so, isn't
 it problematic in PM terms, becuase it mean that the system is resumed
 periodically (as a result of the the periodic timer's interrupt), and
 all devices are resumed ?

No, it can be done on a per-device basis.

'powertop' is a possibly useful tool for playing with this stuff that will
let you look at power management on the fly.


pgp9BucHMj6iG.pgp
Description: PGP signature
___
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies


Re: suspend/resume PM criterion for application

2014-09-10 Thread Ran Shalit
On Wed, Sep 10, 2014 at 8:59 PM,  valdis.kletni...@vt.edu wrote:
 On Wed, 10 Sep 2014 20:26:48 +0300, Ran Shalit said:

 What is usually the criterion for PM (power management) suspending
 that application shall use ? Is it according to minimum threshold for
 cpu load (as indication for no process) ?

 That will be highly application dependent.  Something that checks your email
 in the background may not care at all, as long as it gets network
 access every 5 minutes or so, and the entire system can power down for 4 
 minutes
 and 58 seconds as far as it cares.  If it's doing media streaming, it may
 insist on having at least one CPU burst per screen refresh, and the CPU can
 go to sleep for the rest of the 1/30th of  a second.

 How usually it is performed, i.e.  is it some periodic process, which
 wakes up periodically to check criterion for cpu load ? If so, isn't
 it problematic in PM terms, becuase it mean that the system is resumed
 periodically (as a result of the the periodic timer's interrupt), and
 all devices are resumed ?

 No, it can be done on a per-device basis.

 'powertop' is a possibly useful tool for playing with this stuff that will
 let you look at power management on the fly.

As far as I understand, suspend/respond PM is not per device, but for
all system,
and wakeup source will resume again the whole system.
I think you mean runtime suspend/resume in the answer.

___
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies


Re: suspend/resume PM criterion for application

2014-09-10 Thread Valdis . Kletnieks
On Wed, 10 Sep 2014 21:23:28 +0300, Ran Shalit said:

 As far as I understand, suspend/respond PM is not per device, but for
 all system,
 and wakeup source will resume again the whole system.
 I think you mean runtime suspend/resume in the answer.

The original question didn't specify. You said suspending that application,
not the entire system.

And runtime suspend/resume of devices and even the CPU does fit within
your original question constraints.

If you're looking at system-wide suspend/resume specificially, there's
two basic schemes in use:

1) User hits a button, acpid or similar notices, and does a suspend to
disk/ram/papertape/whatever.

2) User hits a button, closes the lid, or a user inactivity timer expires.
A process notices, and asks all processes which have registered for suspend
notifications Is it OK if we suspend?, and if nobody says Nay, it does it.
If a process complains, it is repeatedly polled until it finishes whatever it
was doing and says OK now.


pgpm87vefaFPw.pgp
Description: PGP signature
___
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies


Re: suspend/resume PM criterion for application

2014-09-10 Thread Ran Shalit
On Wed, Sep 10, 2014 at 9:39 PM,  valdis.kletni...@vt.edu wrote:
 On Wed, 10 Sep 2014 21:23:28 +0300, Ran Shalit said:

 As far as I understand, suspend/respond PM is not per device, but for
 all system,
 and wakeup source will resume again the whole system.
 I think you mean runtime suspend/resume in the answer.

 The original question didn't specify. You said suspending that application,
 not the entire system.

 And runtime suspend/resume of devices and even the CPU does fit within
 your original question constraints.

 If you're looking at system-wide suspend/resume specificially, there's
 two basic schemes in use:

 1) User hits a button, acpid or similar notices, and does a suspend to
 disk/ram/papertape/whatever.

 2) User hits a button, closes the lid, or a user inactivity timer expires.
 A process notices, and asks all processes which have registered for suspend
 notifications Is it OK if we suspend?, and if nobody says Nay, it does it.
 If a process complains, it is repeatedly polled until it finishes whatever it
 was doing and says OK now.

Hi Veldis,

The second scheme you mention is what I am required to achieve, but it
raises some question:
 or a user inactivity timer expires. A process notices...
1. How can I make a process to notice this inactivity ? Do you think
it can be implemented by some periodic process who check if there is
activity ? It returns to the original question I raised, that I will
use some periodic process who checks maybe cpu load or something like
that. What do you think ?
 and asks all processes which have registered for suspend notifications Is it 
 OK if we suspend?
2. What Do you mean here by process ?  Do you mean SW process which
register for suspend notification (how do we do this) ? What about
devices which register for suspend/resume. Must they accept the
suspend ?

Thanks very much,
Ran

___
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies


Re: suspend/resume PM criterion for application

2014-09-10 Thread Valdis . Kletnieks
On Wed, 10 Sep 2014 21:58:48 +0300, Ran Shalit said:

 1. How can I make a process to notice this inactivity ? Do you think
 it can be implemented by some periodic process who check if there is
 activity ? It returns to the original question I raised, that I will
 use some periodic process who checks maybe cpu load or something like
 that. What do you think ?

That's going to depend on your system and what processes are running.

You may have an MP3 player going that doesn't take much CPU at all - but
shutting down because the user hasn't hit a button in 47 minutes will probably
irritate the user no end.  Or there may be a screensaver running that takes
twice as much CPU as the MP3 player, but is totally OK on the system
suspending whenever the rest of the system wants it.

You're going to have to look at your system design, and decide for yourself
what the criteria are.


 2. What Do you mean here by process ?  Do you mean SW process which
 register for suspend notification (how do we do this) ? What about
 devices which register for suspend/resume. Must they accept the
 suspend ?

I believe Android already has libraries and monitor processes for this.

It's really hard to give more specific advice without knowing what your
hardware, software, and usage is.


pgpJ85YFgcFFc.pgp
Description: PGP signature
___
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies


Re: suspend/resume PM criterion for application

2014-09-10 Thread Ran Shalit
On Wed, Sep 10, 2014 at 10:25 PM,  valdis.kletni...@vt.edu wrote:
 On Wed, 10 Sep 2014 21:58:48 +0300, Ran Shalit said:

 1. How can I make a process to notice this inactivity ? Do you think
 it can be implemented by some periodic process who check if there is
 activity ? It returns to the original question I raised, that I will
 use some periodic process who checks maybe cpu load or something like
 that. What do you think ?

 That's going to depend on your system and what processes are running.

 You may have an MP3 player going that doesn't take much CPU at all - but
 shutting down because the user hasn't hit a button in 47 minutes will probably
 irritate the user no end.  Or there may be a screensaver running that takes
 twice as much CPU as the MP3 player, but is totally OK on the system
 suspending whenever the rest of the system wants it.

 You're going to have to look at your system design, and decide for yourself
 what the criteria are.


 2. What Do you mean here by process ?  Do you mean SW process which
 register for suspend notification (how do we do this) ? What about
 devices which register for suspend/resume. Must they accept the
 suspend ?

 I believe Android already has libraries and monitor processes for this.

 It's really hard to give more specific advice without knowing what your
 hardware, software, and usage is.

Ok, Thanks, I just tried to understand and learn from your previous answer.
I have OMAP Soc and knows that the linux SDK supports suspend/resume
and other mechnism. I did n't hear about the notification before.

Thanks, Ran

___
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies


Re: suspend/resume PM criterion for application

2014-09-10 Thread AYAN KUMAR HALDER
On Thu, Sep 11, 2014 at 12:55 AM,  valdis.kletni...@vt.edu wrote:
 On Wed, 10 Sep 2014 21:58:48 +0300, Ran Shalit said:

 1. How can I make a process to notice this inactivity ? Do you think
 it can be implemented by some periodic process who check if there is
 activity ? It returns to the original question I raised, that I will
 use some periodic process who checks maybe cpu load or something like
 that. What do you think ?

 That's going to depend on your system and what processes are running.

 You may have an MP3 player going that doesn't take much CPU at all - but
 shutting down because the user hasn't hit a button in 47 minutes will probably
 irritate the user no end.  Or there may be a screensaver running that takes
 twice as much CPU as the MP3 player, but is totally OK on the system
 suspending whenever the rest of the system wants it.

 You're going to have to look at your system design, and decide for yourself
 what the criteria are.

Please correct me if my understanding is wrong:-

I believe that autosuspend feature (for system suspend) is not present
in kernel. I believe that there is no feature in kernel which checks
for system ( cpu, devices) inactivity and suspends the entire system.
System suspend is caused when :-
1. the user issues a command
2. The system receives some interrupt or event (lid closing event)
3. There is an external process which monitors system inactivity and
suspends the system.

For runtime suspend of a device, I believe it is the driver who has
the complete responsibility to decide when to suspend the device or
resume it.  The driver can take this decision on user intervention (eg
when user writes to   /sys/devices/my-device/power/* ) or when the
driver has completed servicing an interrupt and feels it has nothing
more to do, etc

___
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies