diff --git a/[refs] b/[refs] index ac441d5a9813..c8c389ed0da3 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: c6dc7f055d333ef35f397b8d7c3abcd1918bf8cb +refs/heads/master: 4a6184ce7a48c478dee0d8a9ed74c1fa35161858 diff --git a/trunk/kernel/sched_features.h b/trunk/kernel/sched_features.h index efa0a7b75dde..84802245abd2 100644 --- a/trunk/kernel/sched_features.h +++ b/trunk/kernel/sched_features.h @@ -67,3 +67,4 @@ SCHED_FEAT(NONTASK_POWER, 1) SCHED_FEAT(TTWU_QUEUE, 1) SCHED_FEAT(FORCE_SD_OVERLAP, 0) +SCHED_FEAT(RT_RUNTIME_SHARE, 1) diff --git a/trunk/kernel/sched_rt.c b/trunk/kernel/sched_rt.c index 056cbd2e2a27..583a1368afe6 100644 --- a/trunk/kernel/sched_rt.c +++ b/trunk/kernel/sched_rt.c @@ -560,6 +560,9 @@ static int balance_runtime(struct rt_rq *rt_rq) { int more = 0; + if (!sched_feat(RT_RUNTIME_SHARE)) + return more; + if (rt_rq->rt_time > rt_rq->rt_runtime) { raw_spin_unlock(&rt_rq->rt_runtime_lock); more = do_balance_runtime(rt_rq);