kernel/sched/fair.c | 13 ++++++++++++- kernel/sched/sched.h | 1 + 2 files changed, 13 insertions(+), 1 deletion(-)
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.
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(-)
--
2.41.0
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@amd.com/ Tested-by: Swapnil Sapkal <Swapnil.Sapkal@amd.com> > 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
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@amd.com/ > > Tested-by: Swapnil Sapkal <Swapnil.Sapkal@amd.com> 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
© 2016 - 2025 Red Hat, Inc.