Merge "sched: walt: always return active cpu as part of nohz timer vendor hook"
This commit is contained in:
commit
433fd0bedd
1 changed files with 6 additions and 6 deletions
|
|
@ -533,9 +533,10 @@ static void android_rvh_get_nohz_timer_target(void *unused, int *cpu, bool *done
|
|||
{
|
||||
int i, default_cpu = -1;
|
||||
struct sched_domain *sd;
|
||||
cpumask_t unhalted;
|
||||
cpumask_t active_unhalted;
|
||||
|
||||
*done = true;
|
||||
cpumask_andnot(&active_unhalted, cpu_active_mask, cpu_halt_mask);
|
||||
|
||||
if (housekeeping_cpu(*cpu, HK_TYPE_TIMER) && !cpu_halted(*cpu)) {
|
||||
if (!available_idle_cpu(*cpu))
|
||||
|
|
@ -547,7 +548,7 @@ static void android_rvh_get_nohz_timer_target(void *unused, int *cpu, bool *done
|
|||
* find first cpu halted by core control and try to avoid
|
||||
* affecting externally halted cpus.
|
||||
*/
|
||||
if (!cpumask_andnot(&unhalted, cpu_active_mask, cpu_halt_mask)) {
|
||||
if (!cpumask_weight(&active_unhalted)) {
|
||||
cpumask_t tmp_pause, tmp_part_pause, tmp_halt, *tmp;
|
||||
|
||||
cpumask_and(&tmp_part_pause, cpu_active_mask, &cpus_part_paused_by_us);
|
||||
|
|
@ -580,8 +581,7 @@ static void android_rvh_get_nohz_timer_target(void *unused, int *cpu, bool *done
|
|||
}
|
||||
|
||||
if (default_cpu == -1) {
|
||||
cpumask_complement(&unhalted, cpu_halt_mask);
|
||||
for_each_cpu_and(i, &unhalted,
|
||||
for_each_cpu_and(i, &active_unhalted,
|
||||
housekeeping_cpumask(HK_TYPE_TIMER)) {
|
||||
if (*cpu == i)
|
||||
continue;
|
||||
|
|
@ -592,8 +592,8 @@ static void android_rvh_get_nohz_timer_target(void *unused, int *cpu, bool *done
|
|||
}
|
||||
}
|
||||
|
||||
/* no active, non-halted, not-idle, choose any */
|
||||
default_cpu = cpumask_any(&unhalted);
|
||||
/* choose any active unhalted cpu */
|
||||
default_cpu = cpumask_any(&active_unhalted);
|
||||
|
||||
if (unlikely(default_cpu >= nr_cpu_ids))
|
||||
goto unlock;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue