|
@@ -2052,7 +2052,7 @@ static void destroy_cfs_bandwidth(struct cfs_bandwidth *cfs_b)
|
|
|
hrtimer_cancel(&cfs_b->slack_timer);
|
|
|
}
|
|
|
|
|
|
-void unthrottle_offline_cfs_rqs(struct rq *rq)
|
|
|
+static void unthrottle_offline_cfs_rqs(struct rq *rq)
|
|
|
{
|
|
|
struct cfs_rq *cfs_rq;
|
|
|
|
|
@@ -2106,7 +2106,7 @@ static inline struct cfs_bandwidth *tg_cfs_bandwidth(struct task_group *tg)
|
|
|
return NULL;
|
|
|
}
|
|
|
static inline void destroy_cfs_bandwidth(struct cfs_bandwidth *cfs_b) {}
|
|
|
-void unthrottle_offline_cfs_rqs(struct rq *rq) {}
|
|
|
+static inline void unthrottle_offline_cfs_rqs(struct rq *rq) {}
|
|
|
|
|
|
#endif /* CONFIG_CFS_BANDWIDTH */
|
|
|
|
|
@@ -4956,6 +4956,9 @@ static void rq_online_fair(struct rq *rq)
|
|
|
static void rq_offline_fair(struct rq *rq)
|
|
|
{
|
|
|
update_sysctl();
|
|
|
+
|
|
|
+ /* Ensure any throttled groups are reachable by pick_next_task */
|
|
|
+ unthrottle_offline_cfs_rqs(rq);
|
|
|
}
|
|
|
|
|
|
#endif /* CONFIG_SMP */
|