diff options
author | Peter Zijlstra <peterz@infradead.org> | 2017-09-20 19:00:19 +0200 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2017-09-25 22:11:43 +0200 |
commit | 5ebe7742fff8be5f1359bc50f5d43fb6ff7bd060 (patch) | |
tree | 7959e66651a79d2b7a3df00a1e93f391c2f0d0a7 /kernel/irq/affinity.c | |
parent | 5f4b55e10645b7371322c800a5ec745cab487a6c (diff) | |
download | op-kernel-dev-5ebe7742fff8be5f1359bc50f5d43fb6ff7bd060.zip op-kernel-dev-5ebe7742fff8be5f1359bc50f5d43fb6ff7bd060.tar.gz |
smp/hotplug: Differentiate the AP completion between up and down
With lockdep-crossrelease we get deadlock reports that span cpu-up and
cpu-down chains. Such deadlocks cannot possibly happen because cpu-up
and cpu-down are globally serialized.
takedown_cpu()
irq_lock_sparse()
wait_for_completion(&st->done)
cpuhp_thread_fun
cpuhp_up_callback
cpuhp_invoke_callback
irq_affinity_online_cpu
irq_local_spare()
irq_unlock_sparse()
complete(&st->done)
Now that we have consistent AP state, we can trivially separate the
AP completion between up and down using st->bringup.
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: max.byungchul.park@gmail.com
Cc: bigeasy@linutronix.de
Cc: efault@gmx.de
Cc: rostedt@goodmis.org
Link: https://lkml.kernel.org/r/20170920170546.872472799@infradead.org
Diffstat (limited to 'kernel/irq/affinity.c')
0 files changed, 0 insertions, 0 deletions