Loading kernel/sched/sched.h +10 −0 Original line number Diff line number Diff line Loading @@ -2975,3 +2975,13 @@ find_first_cpu_bit(struct task_struct *p, const cpumask_t *search_cpus, #else #define find_first_cpu_bit(...) -1 #endif #ifdef CONFIG_SMP static inline void sched_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)); } #endif kernel/sched/walt.c +2 −2 Original line number Diff line number Diff line Loading @@ -893,7 +893,7 @@ void fixup_busy_time(struct task_struct *p, int new_cpu) if (!same_freq_domain(new_cpu, task_cpu(p))) { src_rq->notif_pending = true; dest_rq->notif_pending = true; irq_work_queue(&walt_migration_irq_work); sched_irq_work_queue(&walt_migration_irq_work); } if (p == src_rq->ed_task) { Loading Loading @@ -1956,7 +1956,7 @@ static inline void run_walt_irq_work(u64 old_window_start, struct rq *rq) result = atomic64_cmpxchg(&walt_irq_work_lastq_ws, old_window_start, rq->window_start); if (result == old_window_start) irq_work_queue(&walt_cpufreq_irq_work); sched_irq_work_queue(&walt_cpufreq_irq_work); } /* Reflect task activity on its demand and cpu's busy time statistics */ Loading Loading
kernel/sched/sched.h +10 −0 Original line number Diff line number Diff line Loading @@ -2975,3 +2975,13 @@ find_first_cpu_bit(struct task_struct *p, const cpumask_t *search_cpus, #else #define find_first_cpu_bit(...) -1 #endif #ifdef CONFIG_SMP static inline void sched_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)); } #endif
kernel/sched/walt.c +2 −2 Original line number Diff line number Diff line Loading @@ -893,7 +893,7 @@ void fixup_busy_time(struct task_struct *p, int new_cpu) if (!same_freq_domain(new_cpu, task_cpu(p))) { src_rq->notif_pending = true; dest_rq->notif_pending = true; irq_work_queue(&walt_migration_irq_work); sched_irq_work_queue(&walt_migration_irq_work); } if (p == src_rq->ed_task) { Loading Loading @@ -1956,7 +1956,7 @@ static inline void run_walt_irq_work(u64 old_window_start, struct rq *rq) result = atomic64_cmpxchg(&walt_irq_work_lastq_ws, old_window_start, rq->window_start); if (result == old_window_start) irq_work_queue(&walt_cpufreq_irq_work); sched_irq_work_queue(&walt_cpufreq_irq_work); } /* Reflect task activity on its demand and cpu's busy time statistics */ Loading