diff options
Diffstat (limited to 'kernel/sched/fair.c')
| -rw-r--r-- | kernel/sched/fair.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index bc9cfeaac8bd..500f5db0de0b 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c | |||
| @@ -4470,6 +4470,8 @@ static void __account_cfs_rq_runtime(struct cfs_rq *cfs_rq, u64 delta_exec) | |||
| 4470 | if (likely(cfs_rq->runtime_remaining > 0)) | 4470 | if (likely(cfs_rq->runtime_remaining > 0)) |
| 4471 | return; | 4471 | return; |
| 4472 | 4472 | ||
| 4473 | if (cfs_rq->throttled) | ||
| 4474 | return; | ||
| 4473 | /* | 4475 | /* |
| 4474 | * if we're unable to extend our runtime we resched so that the active | 4476 | * if we're unable to extend our runtime we resched so that the active |
| 4475 | * hierarchy can be throttled | 4477 | * hierarchy can be throttled |
| @@ -4673,6 +4675,9 @@ static u64 distribute_cfs_runtime(struct cfs_bandwidth *cfs_b, | |||
| 4673 | if (!cfs_rq_throttled(cfs_rq)) | 4675 | if (!cfs_rq_throttled(cfs_rq)) |
| 4674 | goto next; | 4676 | goto next; |
| 4675 | 4677 | ||
| 4678 | /* By the above check, this should never be true */ | ||
| 4679 | SCHED_WARN_ON(cfs_rq->runtime_remaining > 0); | ||
| 4680 | |||
| 4676 | runtime = -cfs_rq->runtime_remaining + 1; | 4681 | runtime = -cfs_rq->runtime_remaining + 1; |
| 4677 | if (runtime > remaining) | 4682 | if (runtime > remaining) |
| 4678 | runtime = remaining; | 4683 | runtime = remaining; |
