On Sat, 2010-05-29 at 00:18 +0200, Rafael J. Wysocki wrote: > On Friday 28 May 2010, Peter Zijlstra wrote: > > On Fri, 2010-05-28 at 00:50 +0100, Alan Cox wrote: > > > Today "idle" means "no task running" > > > > > > If you are prepared to rephrase that as "no task that matters is running" > > > what would need to answer ? > > > > I'm not sure we need or want to go there. > > > > Why not simply let upatedb block on its IO because its QoS policy tells > > us that its IO priority is idle. Therefore it will not avoid the IO > > device from going idle and indefinitely delaying servicing requests. > > > > When updatedb blocks, the runqueue becomes empty and we gain goodness. > > > > Or are we talking about the same thing? > > There may be apps that don't actually do I/O that we may want to be treated > that way too. > > Consider the following scenario. I have a purely computational task that's > running on my laptop in the background (say it's a folding@home or something > similar), but I only want it to run when (a) the box is on AC power and (b) > when user interface is "active" (the latter would have to be defined precisely, > but for the purpose of this thought experiment let's assume we have such a > definition). Then, I'd only like it to be regarded as runnable if (a) and (b) > both happen at the same time, but it can't block on I/O. Well, both folding@home and Seti will need to do some IO in order to get new data and report results, although the computational task might indeed take quite a while before it does so. Such tasks should listen to general environment hints, we already have battery power state exposed, make it use that information. The user interface is active can be gotten from X. The thing is, if its a well behaved app and listens to the environment hints, it will work as you want (could be done by policy knobs all-round). The only problem is dealing with apps that don't listen, those are considered bad/buggy and hence we don't particularly care if they don't function properly. For long-running computational tasks we will send a progression of SIGXCPU, SIGSTOP, SIGTERM and eventually SIGKILL if they keep violating policy. _______________________________________________ linux-pm mailing list linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/linux-pm