From: Zhang Qiao zhangqiao22@huawei.com
hulk inclusion category: feature bugzilla: 51828, https://gitee.com/openeuler/kernel/issues/I4K96G CVE: NA
--------------------------------
In order for the throttled task to continue running after the CPU is offline, we need unthrottle the throttled cfs rq saved in the qos_throttled_cfs_rq.
Signed-off-by: Zhang Qiao zhangqiao22@huawei.com Signed-off-by: Zheng Zucheng zhengzucheng@huawei.com Reviewed-by: Chen Hui judy.chenhui@huawei.com Reviewed-by: Xiu Jianfeng xiujianfeng@huawei.com Signed-off-by: Yang Yingliang yangyingliang@huawei.com --- kernel/sched/fair.c | 6 ++++++ 1 file changed, 6 insertions(+)
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 24ea9b7a716e9..01ae007760376 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -101,6 +101,8 @@ int __weak arch_asym_cpu_priority(int cpu)
#ifdef CONFIG_QOS_SCHED static DEFINE_PER_CPU_SHARED_ALIGNED(struct list_head, qos_throttled_cfs_rq); + +static int unthrottle_qos_cfs_rqs(int cpu); #endif
#ifdef CONFIG_CFS_BANDWIDTH @@ -5131,6 +5133,10 @@ static void __maybe_unused unthrottle_offline_cfs_rqs(struct rq *rq) unthrottle_cfs_rq(cfs_rq); } rcu_read_unlock(); + +#ifdef CONFIG_QOS_SCHED + unthrottle_qos_cfs_rqs(cpu_of(rq)); +#endif }
#else /* CONFIG_CFS_BANDWIDTH */