Re: [patch 1/1] sched: update_curr versus correct cfs_rq incheck_preempt_wakeup

From: Peter Zijlstra
Date: Sat Jul 02 2011 - 05:58:17 EST


On Sat, 2011-07-02 at 11:08 +0200, Ingo Molnar wrote:
> * Paul Turner <pjt@xxxxxxxxxx> wrote:
>
> > We update_curr() versus the current entity as the preemption
> > decision is based on the relative vruntime. However, update_curr()
> > is not hierarchical and in the group scheduling case
> > find_matching_se() will have us making the comparison on a cfs_rq
> > different to the one just updated.
>
> Would be nice to include more contextual information in the
> changelog: how did you find it, what effect (if any) did you
> see from this patch, what effect do you expect others to see
> (if any).

Agreed that the Changelog can be improved. From talking to pjt on IRC
though, I think he spotted this by reading through the code.

The effect of not updating the correct se for comparison is that you
compare the new task to old data of the existing task, thereby giving a
slight preference to the old task (its further to the left than it
should be and thus more desirable to run).

That said, I'm not quite sure the patch is correct though, both se and
pse can change in find_match_se(), maybe we should do update_curr() on
every se we traverse in there, or at least the final two.


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/