[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CAKfTPtDHuM99sy7eU1LQSAUuZNb6VNUr0uYq4B7Dy3WyQcavqQ@mail.gmail.com>
Date: Wed, 24 May 2023 15:02:18 +0200
From: Vincent Guittot <vincent.guittot@...aro.org>
To: Peter Zijlstra <peterz@...radead.org>
Cc: linux-kernel@...r.kernel.org, linux-tip-commits@...r.kernel.org,
Ricardo Neri <ricardo.neri-calderon@...ux.intel.com>,
"Joel Fernandes (Google)" <joel@...lfernandes.org>,
Len Brown <len.brown@...el.com>, x86@...nel.org
Subject: Re: [tip: sched/core] sched/topology: Introduce sched_group::flags
On Tue, 23 May 2023 at 12:59, Peter Zijlstra <peterz@...radead.org> wrote:
>
> On Tue, Oct 05, 2021 at 02:12:02PM -0000, tip-bot2 for Ricardo Neri wrote:
>
> > index 4e8698e..c56faae 100644
> > --- a/kernel/sched/topology.c
> > +++ b/kernel/sched/topology.c
> > @@ -716,8 +716,20 @@ cpu_attach_domain(struct sched_domain *sd, struct root_domain *rd, int cpu)
> > tmp = sd;
> > sd = sd->parent;
> > destroy_sched_domain(tmp);
> > - if (sd)
> > + if (sd) {
> > + struct sched_group *sg = sd->groups;
> > +
> > + /*
> > + * sched groups hold the flags of the child sched
> > + * domain for convenience. Clear such flags since
> > + * the child is being destroyed.
> > + */
> > + do {
> > + sg->flags = 0;
> > + } while (sg != sd->groups);
>
>
> I happened to be reading this here code and aren't we missing:
>
> sg = sg->next;
>
> somewhere in that loop?
Yes, I missed that.
That being said, the only reason for sd to be degenerate is that there
is only 1 group. Otherwise we will keep it and degenerate parents
instead
Powered by blists - more mailing lists