[PATCH 0/2] sched/fair: Enhance sync wakeup for short duration tasks
From: Chen Yu
Date: Tue Jun 25 2024 - 03:25:08 EST
Hi,
This is a respin of the previous work to inhit task migration[1].
Many workloads suffer from high Cache-to-Cache latency on large system. Especially
when different tasks access the same cache line, which brings false sharing.
This patch set leverages the WF_SYNC flag, and inhits task wakeup migration
for short duration ones. This can help reduce the chance to trigger the
cache false sharing.
The main concern of this proposal in the last discussion is that, it could
break idle-cpu-first task wakeup strategy. Usually an idle CPU can beat other
non-idle CPU in terms of latency. Based on this, the new proposal takes the
CPU number into consideration, if it is a low-core-count system, the bar to
inhit the task migration is much higher or even impossible. Vice versa. Meanwhile,
only when there is no idle Core in the system, this inhiting task migration will take
effect.
According to the test on 4 different platforms, it has shown good improvement for
Client/Server workloads, like netperf, tbench. And not saw any performance regression
on my 8 CPUs laptop. Please refer to PATCH 2/2 for detail.
Comments and tests would be appreciated.
[1] https://lore.kernel.org/lkml/cover.1682661027.git.yu.c.chen@xxxxxxxxx/
Chen Yu (2):
sched/fair: Record the average duration of a task
sched/fair: Enhance sync wakeup for short duration tasks
include/linux/sched.h | 3 ++
kernel/sched/core.c | 2 ++
kernel/sched/fair.c | 74 ++++++++++++++++++++++++++++++++++++++---
kernel/sched/features.h | 1 +
4 files changed, 75 insertions(+), 5 deletions(-)
--
2.25.1