On 01-07-19, 15:43, Peter Zijlstra wrote: > On Wed, Jun 26, 2019 at 10:36:28AM +0530, Viresh Kumar wrote: > > Hi, > > > > We try to find an idle CPU to run the next task, but in case we don't > > find an idle CPU it is better to pick a CPU which will run the task the > > soonest, for performance reason. > > > > A CPU which isn't idle but has only SCHED_IDLE activity queued on it > > should be a good target based on this criteria as any normal fair task > > will most likely preempt the currently running SCHED_IDLE task > > immediately. In fact, choosing a SCHED_IDLE CPU over a fully idle one > > shall give better results as it should be able to run the task sooner > > than an idle CPU (which requires to be woken up from an idle state). > > > > This patchset updates both fast and slow paths with this optimization. > > So this basically does the trivial SCHED_IDLE<-* wakeup preemption test;
Right. > one could consider doing the full wakeup preemption test instead. I am not sure what you meant by "full wakeup preemption test" :( > Now; the obvious argument against doing this is cost; esp. the cgroup > case is very expensive I suppose. But it might be a fun experiment to > try. > That said; I'm tempted to apply these patches.. Please do, who is stopping you :) -- viresh

