Messages in this thread | | | Date | Wed, 14 Oct 2020 15:19:10 +0200 | From | Peter Zijlstra <> | Subject | Re: [PATCH 1/1] Sched/fair: Improve the accuracy of sched_stat_wait statistics |
| |
On Fri, Oct 09, 2020 at 05:25:30PM +0800, qianjun.kernel@gmail.com wrote: > From: jun qian <qianjun.kernel@gmail.com> > > 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. > > Signed-off-by: jun qian <qianjun.kernel@gmail.com> > Signed-off-by: Yafang Shao <laoar.shao@gmail.com>
This SoB chain isn't valid. Did Yafang's tag need to a reviewed-by or something?
> --- > kernel/sched/fair.c | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c > index 1a68a05..6f8ca0c 100644 > --- a/kernel/sched/fair.c > +++ b/kernel/sched/fair.c > @@ -906,6 +906,15 @@ static void update_curr_fair(struct rq *rq) > if (!schedstat_enabled()) > return; > > + /* > + * 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 delta wrong. We need to avoid this > + * scenario. > + */ > + if (unlikely(!schedstat_val(se->statistics.wait_start))) > + return; > + > delta = rq_clock(rq_of(cfs_rq)) - schedstat_val(se->statistics.wait_start); > > if (entity_is_task(se)) { > -- > 1.8.3.1 >
| |