mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH] sched/eevdf: Toggle eligibility through sched_feat
@ 2023-10-13  3:02 Youssef Esmat
  2023-10-13  6:50 ` Mike Galbraith
  2023-10-15 10:44 ` Peter Zijlstra
  0 siblings, 2 replies; 6+ messages in thread
From: Youssef Esmat @ 2023-10-13  3:02 UTC (permalink / raw)
  To: LKML
  Cc: peterz, bsegall, mingo, vincent.guittot, juri.lelli,
	dietmar.eggemann, rostedt, mgorman, bristot, corbet, qyousef,
	chris.hyser, patrick.bellasi, pjt, pavel, qperret, tim.c.chen,
	joshdon, timj, kprateek.nayak, yu.c.chen, joel, efault, tglx,
	wuyun.abel, Youssef Esmat

Interactive workloads see performance gains by disabling eligibility
checks (EEVDF->EVDF). Disabling the checks reduces the number of
context switches and delays less important work (higher deadlines/nice
values) in favor of more important work (lower deadlines/nice values).

That said, that can add large latencies for some work loads and as the
default is eligibility on, but allowing it to be turned off when
beneficial.

Signed-off-by: Youssef Esmat <youssefesmat@chromium.org>
Link: https://lore.kernel.org/lkml/CA+q576MS0-MV1Oy-eecvmYpvNT3tqxD8syzrpxQ-Zk310hvRbw@mail.gmail.com/
---
 kernel/sched/fair.c     | 3 +++
 kernel/sched/features.h | 1 +
 2 files changed, 4 insertions(+)

diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index a751e552f253..16106da5a354 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -728,6 +728,9 @@ int entity_eligible(struct cfs_rq *cfs_rq, struct sched_entity *se)
 	s64 avg = cfs_rq->avg_vruntime;
 	long load = cfs_rq->avg_load;
 
+	if (!sched_feat(ENFORCE_ELIGIBILITY))
+		return 1;
+
 	if (curr && curr->on_rq) {
 		unsigned long weight = scale_load_down(curr->load.weight);
 
diff --git a/kernel/sched/features.h b/kernel/sched/features.h
index f770168230ae..84e38a0045b7 100644
--- a/kernel/sched/features.h
+++ b/kernel/sched/features.h
@@ -7,6 +7,7 @@
 SCHED_FEAT(PLACE_LAG, true)
 SCHED_FEAT(PLACE_DEADLINE_INITIAL, true)
 SCHED_FEAT(RUN_TO_PARITY, true)
+SCHED_FEAT(ENFORCE_ELIGIBILITY, true)
 
 /*
  * Prefer to schedule the task we woke last (assuming it failed
-- 
2.42.0.655.g421f12c284-goog


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2023-10-16 16:56 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-10-13  3:02 [PATCH] sched/eevdf: Toggle eligibility through sched_feat Youssef Esmat
2023-10-13  6:50 ` Mike Galbraith
2023-10-15 10:44 ` Peter Zijlstra
2023-10-16 13:33   ` Tor Vic
2023-10-16 15:28   ` Steven Rostedt
2023-10-16 16:52     ` Peter Zijlstra

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome