Messages in this thread | | | From | Aaron Lu <> | Subject | [PATCH 0/1] Reduce cost of accessing tg->load_avg | Date | Wed, 23 Aug 2023 14:08:31 +0800 |
| |
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
| |