Re: [PATCH 1/8] PM: Add suspend block api.

Tony Lindgren
2010-05-07T18:01:52Z

* Matthew Garrett <mjg@redhat.com> [100507 10:46]:
> On Fri, May 07, 2010 at 10:35:49AM -0700, Tony Lindgren wrote:
> > * Matthew Garrett <mjg@redhat.com> [100507 10:08]:
> > > The situation is this. You've frozen most of your userspace because you
> > > don't trust the applications. One of those applications has an open
> > > network socket, and policy indicates that receiving a network packet
> > > should generate a wakeup, allow the userspace application to handle the
> > > packet and then return to sleep. What mechanism do you use to do that?
> >
> > I think the ideal way of doing this would be to have the system running
> > and hitting some deeper idle states using cpuidle. Then fix the apps
> > so timers don't wake up the system too often. Then everything would
> > just run in a normal way.
>
> Effective power management in the face of real-world applications is a
> reasonable usecase.

Sure there's no easy solution to misbehaving apps.

> > For the misbehaving stopped apps, maybe they could be woken
> > to deal with the incoming network data with sysfs_notify?
>
> How would that work? Have the kernel send a sysfs_notify on every netwrk
> packet and have a monitor app listen for it and unfreeze the rest of
> userspace if it's frozen? That sounds expensive.

Yeah maybe there are better ways of dealing with this.

Maybe deferred timers would help some so all the apps could
be allowed to run until some power management policy decides
to suspend the whole device.

Regards,

Tony