Re: [PATCH -v8a 3/7] sched: use a buddy to implement yield_task_fair

2011-02-03 Thread Peter Zijlstra
On Tue, 2011-02-01 at 09:51 -0500, Rik van Riel wrote: > -static void yield_task_fair(struct rq *rq) > -{ > - struct task_struct *curr = rq->curr; > - struct cfs_rq *cfs_rq = task_cfs_rq(curr); > - struct sched_entity *rightmost, *se = &curr->se; > - > - /* > -* Are

Re: [PATCH -v8a 3/7] sched: use a buddy to implement yield_task_fair

2011-02-01 Thread Peter Zijlstra
On Tue, 2011-02-01 at 09:51 -0500, Rik van Riel wrote: > --- a/kernel/sysctl.c > +++ b/kernel/sysctl.c > @@ -375,13 +375,6 @@ static struct ctl_table kern_table[] = { > .mode = 0644, > .proc_handler = sched_rt_handler, > }, > - { > -

[PATCH -v8a 3/7] sched: use a buddy to implement yield_task_fair

2011-02-01 Thread Rik van Riel
Use the buddy mechanism to implement yield_task_fair. This allows us to skip onto the next highest priority se at every level in the CFS tree, unless doing so would introduce gross unfairness in CPU time distribution. We order the buddy selection in pick_next_entity to check yield first, then las