mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-13 00:00:00 -04:00
cpufreq: schedutil: Queue sugov irq work on policy online cpu
Got never update frequency if scheduled the irq work on an offlined cpu and it will always pending. Queue sugov irq work on any online cpu if current cpu is offline. Change-Id: I33fc691917b5866488b6aeb11ed902a2753130b2 Signed-off-by: Maria Yu <aiquny@codeaurora.org> [clingutla@codeaurora.org: Moved 'walt_irq_work_queue' to 'sched.h' for multiple callers] Signed-off-by: Lingutla Chandrasekhar <clingutla@codeaurora.org>
This commit is contained in:
parent
5b47848843
commit
9af2c23239
2 changed files with 16 additions and 1 deletions
|
|
@ -263,7 +263,7 @@ static void sugov_deferred_update(struct sugov_policy *sg_policy, u64 time,
|
|||
|
||||
if (use_pelt())
|
||||
sg_policy->work_in_progress = true;
|
||||
irq_work_queue(&sg_policy->irq_work);
|
||||
walt_irq_work_queue(&sg_policy->irq_work);
|
||||
}
|
||||
|
||||
#define TARGET_LOAD 80
|
||||
|
|
|
|||
|
|
@ -3368,3 +3368,18 @@ extern void walt_init_sched_boost(struct task_group *tg);
|
|||
#else
|
||||
static inline void walt_init_sched_boost(struct task_group *tg) {}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_SCHED_WALT
|
||||
static inline void walt_irq_work_queue(struct irq_work *work)
|
||||
{
|
||||
if (likely(cpu_online(raw_smp_processor_id())))
|
||||
irq_work_queue(work);
|
||||
else
|
||||
irq_work_queue_on(work, cpumask_any(cpu_online_mask));
|
||||
}
|
||||
#else
|
||||
static inline void walt_irq_work_queue(struct irq_work *work)
|
||||
{
|
||||
irq_work_queue(work);
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Reference in a new issue