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

From: Peter Zijlstra
Date: Tue Sep 21 2021 - 03:17:26 EST


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.