mirror of
https://github.com/torvalds/linux.git
synced 2026-08-01 12:11:59 +02:00
sched/walt: prevent main walt_irq_work execution for no notif
If there are no notifications pending for performing migration work, there is no migration work to be done because the work must have already been handled. Optimize the walt_irq_work execution for migrations. If no cpus got locked, then no notifications were handled, and the irq work function should exit. Change-Id: I57730503ebb8f440a288666c79c4cb4f31ed1023 Signed-off-by: Stephen Dickey <quic_dickey@quicinc.com>
This commit is contained in:
parent
38d3a1c4e7
commit
dca8a7b03c
|
|
@ -3674,9 +3674,18 @@ static void walt_irq_work(struct irq_work *irq_work)
|
|||
|
||||
cpumask_copy(&lock_cpus, cpu_possible_mask);
|
||||
|
||||
if (is_migration)
|
||||
if (is_migration) {
|
||||
irq_work_restrict_to_mig_clusters(&lock_cpus);
|
||||
|
||||
/*
|
||||
* if the notif_pending was handled by a previous
|
||||
* walt_irq_work invocation, there is no migration
|
||||
* work.
|
||||
*/
|
||||
if (cpumask_empty(&lock_cpus))
|
||||
return;
|
||||
}
|
||||
|
||||
for_each_cpu(cpu, &lock_cpus) {
|
||||
if (level == 0)
|
||||
raw_spin_lock(&cpu_rq(cpu)->__lock);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user