diff options
| author | Peter Zijlstra <peterz@infradead.org> | 2025-09-01 22:50:56 +0200 |
|---|---|---|
| committer | Ingo Molnar <mingo@kernel.org> | 2025-12-14 08:25:02 +0100 |
| commit | 95a0155224a658965f34ed4b1943b238d9be1fea (patch) | |
| tree | 43b03b15bdc4071f56e35f2d0fd0faaea9b185ed | |
| parent | a03fee333a2f1e065a739bdbe5edbc5512fab9a4 (diff) | |
sched/fair: Limit hrtick work
The task_tick_fair() function does:
- update the hierarchical runtimes
- drive NUMA-balancing
- update load-balance statistics
- drive force-idle preemption
All but the very first can be limited to the periodic tick. Let hrtick
only update accounting and drive preemption, not load-balancing and
other bits.
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Link: https://patch.msgid.link/20250918080205.563385766@infradead.org
| -rw-r--r-- | kernel/sched/fair.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 496a30a41854..f79951facff4 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -13332,6 +13332,12 @@ static void task_tick_fair(struct rq *rq, struct task_struct *curr, int queued) entity_tick(cfs_rq, se, queued); } + if (queued) { + if (!need_resched()) + hrtick_start_fair(rq, curr); + return; + } + if (static_branch_unlikely(&sched_numa_balancing)) task_tick_numa(rq, curr); |
