diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 71c69c8161ffdddee3ddca2afd8de2d6c7bbefde..cdf98e1d447a20e189716035f576b39347e4a21f 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -9481,8 +9481,14 @@ static int tg_change_scheduler(struct task_group *tg, void *data) param.sched_priority = 0; css_task_iter_start(css, 0, &it); - while ((tsk = css_task_iter_next(&it))) + while ((tsk = css_task_iter_next(&it))) { + if (unlikely(rt_task(tsk) || dl_task(tsk))) { + pr_warn("skip %s/%d when setting qos_level\n", tsk->comm, tsk->pid); + continue; + } + sched_setscheduler(tsk, policy, ¶m); + } css_task_iter_end(&it); return 0;