Messages in this thread |  | | | Subject | Re: [patch 1/1] sched: update_curr versus correct cfs_rq in check_preempt_wakeup | | From | Peter Zijlstra <> | | Date | Sat, 02 Jul 2011 11:57:05 +0200 |
| |
On Sat, 2011-07-02 at 11:08 +0200, Ingo Molnar wrote: > * Paul Turner <pjt@google.com> 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.
|  |