Re: [tip: sched/core] sched: Make struct sched_statistics independent of fair sched class

From: Dan Carpenter
Date: Tue Sep 21 2021 - 03:41:29 EST


On Tue, Sep 21, 2021 at 09:17:07AM +0200, Peter Zijlstra wrote:
> On Tue, Sep 21, 2021 at 09:17:27AM +0300, Dan Carpenter wrote:
> > On Thu, Sep 16, 2021 at 11:59:30AM -0000, tip-bot2 for Yafang Shao wrote:
> > > @@ -11424,7 +11441,7 @@ int alloc_fair_sched_group(struct task_group *tg, struct task_group *parent)
> > > if (!cfs_rq)
> > > goto err;
> > >
> > > - se = kzalloc_node(sizeof(struct sched_entity),
> > > + se = kzalloc_node(sizeof(struct sched_entity_stats),
> >
> > This wasn't there in the original patch and it causes a Smatch warning
>
> What original patch? It's part of the v4 posting.
>
> > because "se" is declared as a "sched_entity" but it's allocating a
> > larger "sched_entity_stats" which contains a sched_entity.
>
> Yep, on purpose.
>
> > To me, ideally, we would update the type of se.
>
> That's a lot of churn for very little gain. I can rewrite it like:
>
> struct sched_entity_stats *ses = kzalloc_node(sizeof(*ses),...);
> se = &ses->se;
>
> If that makes smatch happy. It's the exact same thing tho because we
> force ses->se to be at 0 offset.

I mean, I understood what the allocation was doing and that this was a
way to avoid churn. But it's pretty confusing, because every "se" is
really an "ses" now right?

Anyway, just leave it. It's fine.

regards,
dan carpenter