Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6f0d5c39 authored by Peter Zijlstra's avatar Peter Zijlstra Committed by Ingo Molnar
Browse files

sched: rt-bandwidth accounting fix



It fixes an accounting bug where we would continue accumulating runtime
even though the bandwidth control is disabled. This would lead to very long
throttle periods once bandwidth control gets turned on again.

Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent af4491e5
Loading
Loading
Loading
Loading
+5 −6
Original line number Diff line number Diff line
@@ -438,9 +438,6 @@ static int sched_rt_runtime_exceeded(struct rt_rq *rt_rq)
{
	u64 runtime = sched_rt_runtime(rt_rq);

	if (runtime == RUNTIME_INF)
		return 0;

	if (rt_rq->rt_throttled)
		return rt_rq_throttled(rt_rq);

@@ -491,9 +488,11 @@ static void update_curr_rt(struct rq *rq)
		rt_rq = rt_rq_of_se(rt_se);

		spin_lock(&rt_rq->rt_runtime_lock);
		if (sched_rt_runtime(rt_rq) != RUNTIME_INF) {
			rt_rq->rt_time += delta_exec;
			if (sched_rt_runtime_exceeded(rt_rq))
				resched_task(curr);
		}
		spin_unlock(&rt_rq->rt_runtime_lock);
	}
}