Messages in this thread | | | Subject | Re: [linux-pm] [PATCH 0/8] Suspend block api (version 6) | From | Daniel Walker <> | Date | Thu, 13 May 2010 13:36:20 -0700 |
| |
On Thu, 2010-05-13 at 13:23 -0700, Tony Lindgren wrote: > * Matthew Garrett <mjg@redhat.com> [100513 13:03]: > > On Thu, May 13, 2010 at 01:00:04PM -0700, Tony Lindgren wrote: > > > > > The system stays running because there's something to do. The system > > > won't suspend until all the processors hit the kernel idle loop and > > > the next_timer_interrupt_critical() returns nothing. > > > > At which point an application in a busy loop cripples you. > > Maybe you could deal with the misbehaving untrusted apps in the userspace > by sending kill -STOP to them when the screen blanks? Then continue > when some event wakes up the system again.
Couldn't you just use priorities (nice), or cgroups to deal with that? I'm sure there is a way to limit an apps runtime, so the system does go idle sometimes.
> > I think we could implement your suggestion more easily by just giving > > untrusted applications an effectively infinite amount of timer slack, > > but it still doesn't handle the case where an app behaves excrutiatingly > > badly. > > Hmm, if you use timer slack then you still need to search through > the whole timer list instead of a smaller critical timer list. > Both ways sound doable though.
There are deferrable timers already in Linux.. It seems like it would just be an extension of that.
Daniel
| |