cpuidle: lpm-levels: Core isolation check to get PM QoS latency

Check the core isolation to get PM QoS request on that core while
it going to lpm. If its an isolated core pass long latency so
that core can select deeper lpm state.

Change-Id: Iafbfb75c484d602eb37bcd702e83371fd97362fd
Signed-off-by: Raghavendra Kakarla <rkakarla@codeaurora.org>
This commit is contained in:
Raghavendra Kakarla 2020-09-14 22:06:56 +05:30
commit b4d4fb25b9

View file

@ -149,7 +149,8 @@ static int lpm_cpu_qos_notify(struct notifier_block *nb,
int cpu = nb - dev_pm_qos_nb;
preempt_disable();
if (cpu != smp_processor_id() && cpu_online(cpu))
if (cpu != smp_processor_id() && cpu_online(cpu) &&
!check_cpu_isolated(cpu))
wake_up_if_idle(cpu);
preempt_enable();
@ -657,6 +658,8 @@ static inline uint32_t get_cpus_qos(const struct cpumask *mask)
uint32_t latency = PM_QOS_CPU_DMA_LAT_DEFAULT_VALUE;
for_each_cpu(cpu, mask) {
if (check_cpu_isolated(cpu))
continue;
n = cpuidle_governor_latency_req(cpu);
if (n < latency)
latency = n;