Active rt throtting will dequeue rt_rq from rq at least 50ms, When there is no running cfs task, do we still active it?
Signed-off-by: Lichao Liu <[email protected]> --- kernel/sched/rt.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c index df11d88c9895..d6524347cea0 100644 --- a/kernel/sched/rt.c +++ b/kernel/sched/rt.c @@ -961,12 +961,13 @@ static int sched_rt_runtime_exceeded(struct rt_rq *rt_rq) if (rt_rq->rt_time > runtime) { struct rt_bandwidth *rt_b = sched_rt_bandwidth(rt_rq); + struct rq *rq = rq_of_rt_rq(rt_rq); /* * Don't actually throttle groups that have no runtime assigned * but accrue some time due to boosting. */ - if (likely(rt_b->rt_runtime)) { + if (likely(rt_b->rt_runtime) && rq->cfs.nr_running > 0) { rt_rq->rt_throttled = 1; printk_deferred_once("sched: RT throttling activated\n"); } else { -- 2.25.1

