Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e24b1df8 authored by Biao Long's avatar Biao Long Committed by Satya Durga Srinivasu Prabhala
Browse files

sched/fair: Don't place wakee on waker cpu if colocate enabled



If both wakee and waker are in top-app,don't place wakee on waker
cpu, because most of this case waker is not going to sleep,this
will cause waker preempted and lead high runnable time,so let
scheduler to select the best cpu in this case.

Change-Id: If6eb3c0acb202197e9dd90205c581398ac049649
Signed-off-by: default avatarBiao Long <blong@codeaurora.org>
parent c9a80de9
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -7003,7 +7003,7 @@ int find_energy_efficient_cpu(struct task_struct *p, int prev_cpu,
	struct perf_domain *pd;
	unsigned long cur_energy;
	cpumask_t *candidates;
	bool is_rtg;
	bool is_rtg, curr_is_rtg;
	struct find_best_target_env fbt_env;
	bool need_idle = wake_to_idle(p);
	int placement_boost = task_boost_policy(p);
@@ -7017,6 +7017,7 @@ int find_energy_efficient_cpu(struct task_struct *p, int prev_cpu,
		goto eas_not_ready;

	is_rtg = task_in_related_thread_group(p);
	curr_is_rtg = task_in_related_thread_group(cpu_rq(cpu)->curr);

	fbt_env.fastpath = 0;

@@ -7027,7 +7028,7 @@ int find_energy_efficient_cpu(struct task_struct *p, int prev_cpu,
	candidates = this_cpu_ptr(&energy_cpus);
	cpumask_clear(candidates);

	if (need_idle)
	if (sync && (need_idle || (is_rtg && curr_is_rtg)))
		sync = 0;

	if (sync && bias_to_this_cpu(p, cpu, start_cpu)) {