Messages in this thread Patch in this message | | | From | Yuyang Du <> | Subject | [RFC PATCH 13/16 v3] Intercept wakeup/fork/exec load balancing | Date | Fri, 30 May 2014 14:36:09 +0800 |
| |
We intercept load balancing to contain the load and load balancing in the consolidated CPUs according to our consolidating mechanism.
In wakeup/fork/exec load balaning, when to find the idlest sched_group, we first try to find the consolidated group
Signed-off-by: Yuyang Du <yuyang.du@intel.com> --- kernel/sched/fair.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index d40ec9e..1c9ac08 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -4475,7 +4475,7 @@ select_task_rq_fair(struct task_struct *p, int prev_cpu, int sd_flag, int wake_f } while (sd) { - struct sched_group *group; + struct sched_group *group = NULL; int weight; if (!(sd->flags & sd_flag)) { @@ -4483,7 +4483,12 @@ select_task_rq_fair(struct task_struct *p, int prev_cpu, int sd_flag, int wake_f continue; } - group = find_idlest_group(sd, p, cpu, sd_flag); + if (sd->flags & SD_WORKLOAD_CONSOLIDATION) + group = wc_find_group(sd, p, cpu); + + if (!group) + group = find_idlest_group(sd, p, cpu, sd_flag); + if (!group) { sd = sd->child; continue; -- 1.7.9.5
| |