diff options
Diffstat (limited to 'kernel/sched_rt.c')
| -rw-r--r-- | kernel/sched_rt.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/kernel/sched_rt.c b/kernel/sched_rt.c index 6d2d0a5d030b..2e228bd5395e 100644 --- a/kernel/sched_rt.c +++ b/kernel/sched_rt.c | |||
| @@ -350,6 +350,7 @@ static void __enable_runtime(struct rq *rq) | |||
| 350 | spin_lock(&rt_rq->rt_runtime_lock); | 350 | spin_lock(&rt_rq->rt_runtime_lock); |
| 351 | rt_rq->rt_runtime = rt_b->rt_runtime; | 351 | rt_rq->rt_runtime = rt_b->rt_runtime; |
| 352 | rt_rq->rt_time = 0; | 352 | rt_rq->rt_time = 0; |
| 353 | rt_rq->rt_throttled = 0; | ||
| 353 | spin_unlock(&rt_rq->rt_runtime_lock); | 354 | spin_unlock(&rt_rq->rt_runtime_lock); |
| 354 | spin_unlock(&rt_b->rt_runtime_lock); | 355 | spin_unlock(&rt_b->rt_runtime_lock); |
| 355 | } | 356 | } |
| @@ -388,7 +389,7 @@ static int do_sched_rt_period_timer(struct rt_bandwidth *rt_b, int overrun) | |||
| 388 | int i, idle = 1; | 389 | int i, idle = 1; |
| 389 | cpumask_t span; | 390 | cpumask_t span; |
| 390 | 391 | ||
| 391 | if (rt_b->rt_runtime == RUNTIME_INF) | 392 | if (!rt_bandwidth_enabled() || rt_b->rt_runtime == RUNTIME_INF) |
| 392 | return 1; | 393 | return 1; |
| 393 | 394 | ||
| 394 | span = sched_rt_period_mask(); | 395 | span = sched_rt_period_mask(); |
| @@ -486,6 +487,9 @@ static void update_curr_rt(struct rq *rq) | |||
| 486 | curr->se.exec_start = rq->clock; | 487 | curr->se.exec_start = rq->clock; |
| 487 | cpuacct_charge(curr, delta_exec); | 488 | cpuacct_charge(curr, delta_exec); |
| 488 | 489 | ||
| 490 | if (!rt_bandwidth_enabled()) | ||
| 491 | return; | ||
| 492 | |||
| 489 | for_each_sched_rt_entity(rt_se) { | 493 | for_each_sched_rt_entity(rt_se) { |
| 490 | rt_rq = rt_rq_of_se(rt_se); | 494 | rt_rq = rt_rq_of_se(rt_se); |
| 491 | 495 | ||
