[PATCH] sched/fair: reduce preemption with IDLE tasks runable

From: Jiang Biao
Date: Fri Jul 31 2020 - 22:33:11 EST


From: Jiang Biao <benbjiang@xxxxxxxxxxx>

No need to preempt when there are only one runable CFS task with
other IDLE tasks on runqueue. The only one CFS task would always
be picked in that case.

Signed-off-by: Jiang Biao <benbjiang@xxxxxxxxxxx>
---
kernel/sched/fair.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index 04fa8dbcfa4d..8fb80636b010 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -4527,7 +4527,7 @@ entity_tick(struct cfs_rq *cfs_rq, struct sched_entity *curr, int queued)
return;
#endif

- if (cfs_rq->nr_running > 1)
+ if (cfs_rq->nr_running > cfs_rq.idle_h_nr_running + 1)
check_preempt_tick(cfs_rq, curr);
}

--
2.21.0