Re: [PATCH 0/1] Reduce cost of accessing tg->load_avg

From: Aaron Lu
Date: Mon Aug 28 2023 - 07:23:05 EST


Hi Swapnil,

On Fri, Aug 25, 2023 at 04:03:20PM +0530, Swapnil Sapkal wrote:
> Hello Aaron,
>
> On 8/23/2023 11:38 AM, Aaron Lu wrote:
> > RFC v2 -> v1:
> > - drop RFC;
> > - move cfs_rq->last_update_tg_load_avg before cfs_rq->tg_load_avg_contrib;
> > - add Vincent's reviewed-by tag.
> >
> > RFC v2:
> > Nitin Tekchandani noticed some scheduler functions have high cost
> > according to perf/cycles while running postgres_sysbench workload.
> > I perf/annotated the high cost functions: update_cfs_group() and
> > update_load_avg() and found the costs were ~90% due to accessing to
> > tg->load_avg. This series is an attempt to reduce the overhead of
> > the two functions.
> > Thanks to Vincent's suggestion from v1, this revision used a simpler way
> > to solve the overhead problem by limiting updates to tg->load_avg to at
> > most once per ms. Benchmark shows that it has good results and with the
> > rate limit in place, other optimizations in v1 don't improve performance
> > further so they are dropped from this revision.
> >
>
> I have tested this series alongside Mathieu's changes. You can find the
> report here: https://lore.kernel.org/all/f6dc1652-bc39-0b12-4b6b-29a2f9cd8484@xxxxxxx/
>
> Tested-by: Swapnil Sapkal <Swapnil.Sapkal@xxxxxxx>

Thanks a lot for running these workloads and share the results, will
include your tag when sending the next version.

Regards,
Aaron

> > Aaron Lu (1):
> > sched/fair: ratelimit update to tg->load_avg
> >
> > kernel/sched/fair.c | 13 ++++++++++++-
> > kernel/sched/sched.h | 1 +
> > 2 files changed, 13 insertions(+), 1 deletion(-)
> >
> --
> Thanks and Regards,
> Swapnil