From 2af15a46b9a5101f367111788db39de80b0317a3 Mon Sep 17 00:00:00 2001 From: Hui Tang Date: Thu, 21 Jul 2022 09:03:59 +0000 Subject: [PATCH] sched: Adjust cpu range in load balance dynamicly hulk inclusion category: feature bugzilla: 187173, https://gitee.com/openeuler/kernel/issues/I5G4IH CVE: NA -------------------------------- Signed-off-by: Hui Tang Reviewed-by: Chen Hui Reviewed-by: Zhang Qiao Signed-off-by: Yongqiang Liu --- kernel/sched/fair.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 407bceee1126..7833ef8f32f4 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -7789,7 +7789,12 @@ int can_migrate_task(struct task_struct *p, struct lb_env *env) if (throttled_lb_pair(task_group(p), env->src_cpu, env->dst_cpu)) return 0; +#ifdef CONFIG_QOS_SCHED_DYNAMIC_AFFINITY + set_task_select_cpus(p, NULL, 0); + if (!cpumask_test_cpu(env->dst_cpu, p->select_cpus)) { +#else if (!cpumask_test_cpu(env->dst_cpu, &p->cpus_allowed)) { +#endif int cpu; schedstat_inc(p->se.statistics.nr_failed_migrations_affine); @@ -7809,7 +7814,11 @@ int can_migrate_task(struct task_struct *p, struct lb_env *env) /* Prevent to re-select dst_cpu via env's CPUs: */ for_each_cpu_and(cpu, env->dst_grpmask, env->cpus) { +#ifdef CONFIG_QOS_SCHED_DYNAMIC_AFFINITY + if (cpumask_test_cpu(cpu, p->select_cpus)) { +#else if (cpumask_test_cpu(cpu, &p->cpus_allowed)) { +#endif env->flags |= LBF_DST_PINNED; env->new_dst_cpu = cpu; break; -- GitLab