Re: [PATCH 1/1] sched/fair: Fix the wrong sched_stat_wait time

From: Peter Zijlstra
Date: Wed Sep 30 2020 - 05:57:35 EST


On Wed, Sep 30, 2020 at 05:16:29PM +0800, jun qian wrote:
> Peter Zijlstra <peterz@xxxxxxxxxxxxx> 于2020年9月30日周三 下午4:20写道:
> >
> > On Wed, Sep 30, 2020 at 10:47:12AM +0800, qianjun.kernel@xxxxxxxxx wrote:
> > > From: jun qian <qianjun.kernel@xxxxxxxxx>
> > >
> > > When the sched_schedstat changes from 0 to 1, some sched se maybe
> > > already in the runqueue, the se->statistics.wait_start will be 0.
> > > So it will let the (rq_of(cfs_rq)) - se->statistics.wait_start)
> > > wrong. We need to avoid this scenario.
> >
> > Is this really the only problem there? Did you do a full audit of that
> > schedstat nonsense?
> >
>
> Did you mean that the sched_stat_xxx's xxx_start(sched_stat_sleep
> sched_stat_iowait sched_stat_blocked
> sched_stat_runtime) may be also depend the schedstat_enabled?

Yeah, this runtime schedstat_enabled thing is fairly recent, it used to
be an always on/off kinda thing.

At the time we figured inconsistencies from dynamically
enabling/disabling it were okay, it's just stats after all.

But if you now want to 'fix' that, then a full audit might be nice.

> I have searched the codes, and found that these sched_stat_xxx's
> xxx_start don't depend the schedstat_enabled
> except the wait_start.

OK, so you did the audit and only found this one issue? That's good
Changelog material :-)

Thanks!