[Skiboot] [PATCH 4/6] core/cpu: move cpu_wake out of job_lock, only wake if necessary
Nicholas Piggin
npiggin at gmail.com
Tue Dec 22 03:10:40 AEDT 2020
There is no need to keep the IPI initiation under the job_lock.
If the target does wake after the job is queued and before we can
send the IPI, it will check for new jobs.
Signed-off-by: Nicholas Piggin <npiggin at gmail.com>
---
core/cpu.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/core/cpu.c b/core/cpu.c
index 5505b681c..05901bf7f 100644
--- a/core/cpu.c
+++ b/core/cpu.c
@@ -193,8 +193,9 @@ static void queue_job_on_cpu(struct cpu_thread *cpu, struct cpu_job *job)
cpu->job_has_no_return = true;
else
cpu->job_count++;
- cpu_wake(cpu);
unlock(&cpu->job_lock);
+
+ cpu_wake(cpu);
}
struct cpu_job *__cpu_queue_job(struct cpu_thread *cpu,
--
2.23.0
More information about the Skiboot
mailing list