Messages in this thread | | | Subject | Re: [PATCH 12/15] sched,fair: flatten update_curr functionality | From | Dietmar Eggemann <> | Date | Tue, 27 Aug 2019 12:37:38 +0200 |
| |
On 22/08/2019 04:17, Rik van Riel wrote: > Make it clear that update_curr only works on tasks any more. > > There is no need for task_tick_fair to call it on every sched entity up > the hierarchy, so move the call out of entity_tick. > > Signed-off-by: Rik van Riel <riel@surriel.com>` > Signed-off-by: Rik van Riel <riel@surriel.com> > --- > kernel/sched/fair.c | 24 +++++++++++------------- > 1 file changed, 11 insertions(+), 13 deletions(-) > > diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c > index fa8e88731821..5cfa3dbeba49 100644 > --- a/kernel/sched/fair.c > +++ b/kernel/sched/fair.c > @@ -872,10 +872,11 @@ static void update_tg_load_avg(struct cfs_rq *cfs_rq, int force) > static void update_curr(struct cfs_rq *cfs_rq) > { > struct sched_entity *curr = cfs_rq->curr; > + struct task_struct *curtask; > u64 now = rq_clock_task(rq_of(cfs_rq)); > u64 delta_exec; > > - if (unlikely(!curr)) > + if (unlikely(!curr) || !entity_is_task(curr)) > return;
Shouldn't this be
- if (unlikely(!curr) || !entity_is_task(curr)) + if (unlikely(!curr)) return;
+ BUG_ON(!entity_is_task(curr));
IMHO, cfs_rq->curr can only be a task with your changes.
| |