--- x/kernel/sched/fair.c +++ y/kernel/sched/fair.c @@ -7151,8 +7151,11 @@ static int dequeue_entities(struct rq *r idle_h_nr_running = h_nr_running; /* end evaluation on encountering a throttled cfs_rq */ - if (cfs_rq_throttled(cfs_rq)) + if (cfs_rq_throttled(cfs_rq)) { + if (rq_h_nr_running && !rq->cfs.h_nr_running) + dl_server_stop(&rq->fair_server); return 0; + } } sub_nr_running(rq, h_nr_running);