Re: [PATCH v2] sched/fair: Fix insertion in rq->leaf_cfs_rq_list

From: Peter Zijlstra
Date: Wed Jan 30 2019 - 09:01:50 EST


On Wed, Jan 30, 2019 at 03:01:04PM +0100, Peter Zijlstra wrote:
> --- a/kernel/sched/fair.c
> +++ b/kernel/sched/fair.c
> @@ -282,13 +282,15 @@ static inline struct cfs_rq *group_cfs_r
> return grp->my_q;
> }
>
> -static inline void list_add_leaf_cfs_rq(struct cfs_rq *cfs_rq)
> +static inline bool list_add_leaf_cfs_rq(struct cfs_rq *cfs_rq)
> {
> struct rq *rq = rq_of(cfs_rq);
> int cpu = cpu_of(rq);
>
> if (cfs_rq->on_list)
> - return;
> + return rq->tmp_alone_branch == &rq->leaf_cfs_rq_list;

And I'm almost certain that can be: return true, but got my brain in a
twist.

> +
> + cfs_rq->on_list = 1;
>
> /*
> * Ensure we either appear before our parent (if already