diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index f757c47def9d..a0105decf5ca 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -10088,7 +10088,7 @@ static inline int _nohz_kick_needed_hmp(struct rq *rq, int cpu, int *type) if (rq->nr_running < 2) return 0; - if (!sysctl_sched_restrict_cluster_spill) + if (!sysctl_sched_restrict_cluster_spill || sched_boost()) return 1; if (hmp_capable() && cpu_max_possible_capacity(cpu) == diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c index 2fa7f9cdb9e2..cfec881491ef 100644 --- a/kernel/sched/rt.c +++ b/kernel/sched/rt.c @@ -1673,7 +1673,8 @@ static int find_lowest_rq_hmp(struct task_struct *task) int prev_cpu = task_cpu(task); u64 cpu_load, min_load = ULLONG_MAX; int i; - int restrict_cluster = sysctl_sched_restrict_cluster_spill; + int restrict_cluster = sched_boost() ? 0 : + sysctl_sched_restrict_cluster_spill; /* Make sure the mask is initialized first */ if (unlikely(!lowest_mask))