[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <cover.1719295669.git.yu.c.chen@intel.com>
Date: Tue, 25 Jun 2024 15:21:49 +0800
From: Chen Yu <yu.c.chen@...el.com>
To: Peter Zijlstra <peterz@...radead.org>,
Ingo Molnar <mingo@...hat.com>,
Juri Lelli <juri.lelli@...hat.com>,
Vincent Guittot <vincent.guittot@...aro.org>
Cc: Mike Galbraith <efault@....de>,
Tim Chen <tim.c.chen@...el.com>,
Yujie Liu <yujie.liu@...el.com>,
K Prateek Nayak <kprateek.nayak@....com>,
"Gautham R . Shenoy" <gautham.shenoy@....com>,
Chen Yu <yu.chen.surf@...il.com>,
linux-kernel@...r.kernel.org,
Chen Yu <yu.c.chen@...el.com>
Subject: [PATCH 0/2] sched/fair: Enhance sync wakeup for short duration tasks
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@intel.com/
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
Powered by blists - more mailing lists