Better integration with power management scripts

Richard Hughes hughsient at gmail.com
Wed Apr 26 14:43:18 PDT 2006


On Wed, 2006-04-26 at 18:55 +0200, Holger Macht wrote:
> On Sun 23. Apr - 23:02:25, Richard Hughes wrote:
> > On Wed, 2006-04-19 at 18:47 +0100, Richard Hughes wrote:
> > > * Perhaps apply for freedesktop for the project...
> > 
> > Which I've done, as the general consensus was this shouldn't be hosted
> > by any one $VENDOR.
> > 
> > If you are interested, please subscribe to this list:
> >
> > http://lists.freedesktop.org/mailman/listinfo/pm-utils
> >
> 
> I did, but no mails so far...

Been busy with other stuff, sorry. I need to fire off a load of emails
to ppl about asking people to register to the list.

> > a list for the *sole purpose* of developing these little weedy scripts
> > that do clunky things. Nothing is going to be imported or checked in,
> > until we have a quick design draft that we can all work with.
> 
> This would be great indeed. But why are there already things imported
> before this happended?

Ahh, I think pjones wanted something that worked here and now, although
my personal preference would have been to do this file-by-file.
It does make sense keeping the history I guess, and gives us something
to build on.

>  And why are there posts about this topic on the HAL
> list excluding the pm-utils at lists.freedesktop.org list? And not one single
> mail on that independent list so far. So please continue discussion on the
> new list and ping the authors of the different existing projects to give
> them at least chance to get involved.

See above, apologies.

> But now let me start to say what I actually want...
> 
> As a general statement, I don't like these scripts to reside in HAL.
> 
> But...
> this seems to be the way most people like to go, although not all people
> involved in power management read the HAL list. SUSE, respectively me,
> likes to definitely avoid a situation in the future where HAL has one way
> of doing things and the powersave daemon/SUSE has another one. The common
> goal should be to have one solution which fits everybody's needs and
> that's definitely something we agree in.

Yup, agreed.

> So...
> I (or we) will try to work together with you to find and create this
> common solution. It's a hard decision for me, but I'm willing to go this
> way. But It's only possible if you really keep your promises: Let this
> discussion and implementation take place on an independent list and don't
> import or create anything before everybody agrees with it or, at least, is
> able to life with it. For this reason I've CC'd this new list. Otherwise
> we will again end up in a situation were we fight each other.
> 
> One thing that bothers me is that you try to do things completely
> new. There are already good working and good designed solutions like the
> so called hibernate scripts or the scripts which come along with the
> powersave daemon. We already planned to merge our solution with the other
> existing ones and now I think is the time to do this merge and create this
> new project pm-utils.

I don't like the idea of pm-utils doing anything clever. They should be
*really* simple.

> What we decided yesterday was to provide you with a rough description of
> our design and the different scripts we already use to do these suspend
> things. I really think that they are useable and modular/extendable to use
> parts of them in the future. What we tried over the last month was to make
> them really distribution independent and configurable, removing all
> hardcoded paths (like /etc/pm) etc.
> 
> Therefore I will do this rough overview now and hopefully it is
> helpful. It's important to mention that I definitely do not want to say
> something like: "Please take our solution!". But these have proven about a
> long time to be useable, so I think parts of them are also useable for
> pm-utils. Some things maybe outdated and were just there for hitorical
> reasons and there are also things that maybe done better, but I hope you
> get what I'm trying to say...

Ears open.

> General design
> ==============
> 
>   We separated the suspend into three steps. Preparing (stopping services
>   etc.), doing the suspend (echo [state] > /sys/power/state) and restoring
>   the system to it's original state.
> 
>   We also have some possibilities to communicate with the desktop/user or
>   any other application:
>    
>    1. Send a message over dbus about a notice, a failure or an
>       error. There's definitely the possibility that _something_ goes
>       wrong during preparation of the suspend. For example "Failed
>       unloading module xyz because device is still in use". That's just
>       one example, but IMO there might definitely arise something like
>       that. Maybe we add a dbus interface like
>       org.freedesktop.PowerManagement.SuspendMessages or the like which
>       applications can listen to show these messages to the user.

I don't think we have to. Telling the user that the suspend failed
because module xyz failed to unload isn't useful. It should just work.

>    2. Send messages over dbus to report the current progress of the
>       scripts. In our case, we show a progress bar in kpowersave shortly
>       before suspending which says something like "unloading module xyz"
>       or "stopping service xyz". For this purpose we added some progress()
>       fuction calls to our scripts in different places. That's just a nice
>       to have feature but in general it might be valuable. Maybe we can
>       seperate the suspend cycle in different stages like NetworkManager
>       does. This would also be needed for any graphical bootsplash to show
>       this. Something like org.freedesktop.PowerManagement.SuspendProgress
>       comes to my mind...

How long does modprobing a few modules take? pm-suspend takes an small
about of of time on my system, the largest delay being on the first
sync, which takes less than a second.

>    3. For user interaction, we need a possibility to ask questions. Just
>       some simple examples like "do you really like to suspend although
>       there are other users logged in" or "really suspend? There is a CD
>       buring job running". That's not yet in our scripts but is something
>       we should have in mind for the future.

I don't think this belongs in the HAL or pm-utils layer IMO. It might
belong in powersaved or gnome-power-manager but certainly not in
pm-utils.

>   It would be easy to have a function notify_user() or progress() which
>   does a dbus-send or looks into a directory if there is a script to
>   execute for this purpose. All this is something we have already and it
>   would be hard for us to have a regression in this area because it's
>   something our users really appreciate.

I really think dbus is too complicated for these incredibly simple
scripts.

> 
> Summary of most important and noteworthy script parts we currently have:
> ========================================================================
> 
> I put a tarball with all the scripts regarding suspend to
> http://powersave.sf.net/powersave-sleep-scripts.tar.bz2 to make it
> possible for everybody to have a quick look without the need to download
> the whole powersaved tarball which these scripts are usually part of.

I'll look tomorrow, as today has been one hell of day! Thanks for the
pkg tho.

> So let's try to work together to find a good solution.

Yes, but give me a couple of days to look through your scripts, and then
we can bash out some details of stuff that needs to change.

Richard.



More information about the hal mailing list