diff options
-rw-r--r-- | kernel/sched_rt.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/kernel/sched_rt.c b/kernel/sched_rt.c index 57fa3d96847b..a386758ffebb 100644 --- a/kernel/sched_rt.c +++ b/kernel/sched_rt.c | |||
@@ -34,9 +34,11 @@ static inline void rt_clear_overload(struct rq *rq) | |||
34 | static void update_rt_migration(struct rq *rq) | 34 | static void update_rt_migration(struct rq *rq) |
35 | { | 35 | { |
36 | if (rq->rt.rt_nr_migratory && (rq->rt.rt_nr_running > 1)) { | 36 | if (rq->rt.rt_nr_migratory && (rq->rt.rt_nr_running > 1)) { |
37 | rt_set_overload(rq); | 37 | if (!rq->rt.overloaded) { |
38 | rq->rt.overloaded = 1; | 38 | rt_set_overload(rq); |
39 | } else { | 39 | rq->rt.overloaded = 1; |
40 | } | ||
41 | } else if (rq->rt.overloaded) { | ||
40 | rt_clear_overload(rq); | 42 | rt_clear_overload(rq); |
41 | rq->rt.overloaded = 0; | 43 | rq->rt.overloaded = 0; |
42 | } | 44 | } |