Messages in this thread | | | From | Chen Yu <> | Subject | [RFC PATCH v2 0/2] sched/fair: Choose the CPU where short task is running during wake up | Date | Sun, 23 Oct 2022 23:31:50 +0800 |
| |
At LPC 2022 Real-time and Scheduling Micro Conference we presented the cross CPU wakeup issue. This patch is a text version of the talk, and hopefully, we can clarify the problem and appreciate any feedback.
The main purpose of this change is to avoid too many crosses CPU wake up when the system is busy. Please refer to the commit log of [PATCH 2/2] for detail.
This patch set is composed of two parts. The first part is to introduce the definition of a short-duration task. The second part leverages the first part to choose a CPU where only one short-duration task is running on. This CPU is chosen as the candidate to place a woken task.
This version is modified based on the following feedback on v1: 1. Tim suggested raising the bar to choose a CPU with a short-duration task, by checking if the short-duration task is the only runnable task on the target CPU. 2. To address Peter's concern: would this patch inhibit spreading the workload when there are idle CPUs around? The patch would only take effect when the system is relatively busy, and only choose the CPU where only one short-duration task is running. 3. Prateek, Honglwei and Hillf suggsted to prefer previous idle CPU to the CPU with short-duration task running.
v1 link: https://lore.kernel.org/lkml/20220915165407.1776363-1-yu.c.chen@intel.com/
Chen Yu (2): sched/fair: Introduce short duration task check sched/fair: Choose the CPU where short task is running during wake up
include/linux/sched.h | 8 ++++ kernel/sched/core.c | 2 + kernel/sched/fair.c | 99 +++++++++++++++++++++++++++++++++++++++++ kernel/sched/features.h | 1 + 4 files changed, 110 insertions(+)
-- 2.25.1
| |