On Tue, 16 Jun 2020 20:37:29 +0800 Lichao Liu <[email protected]> wrote:
> Active rt throtting will dequeue rt_rq from rq at least 50ms, > When there is no running cfs task, do we still active it? > This is something I would like to have. Peter, what's your thought on this? -- Steve > 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 {

