aboutsummaryrefslogtreecommitdiff
path: root/arch/arm/include/asm/processor.h
diff options
context:
space:
mode:
authorChristian Borntraeger <[email protected]>2016-10-25 11:03:12 +0200
committerIngo Molnar <[email protected]>2016-11-16 10:15:09 +0100
commitbf0d31c05411f030e7df9f98b5be4d0c6fd5cd39 (patch)
treeb262eca13e61a75ae2ecdd6c7d1dc33ba46981e4 /arch/arm/include/asm/processor.h
parent79ab11cdb90d8536817ab7357ecb6b1ff76be26c (diff)
locking/core, stop_machine: Yield the CPU during stop machine()
Some time ago the following commit: 57f2ffe14fd125c2 ("s390: remove diag 44 calls from cpu_relax()") ... stopped cpu_relax() on s390 yielding to the hypervisor. As it turns out this made stop_machine() run really slow on virtualized overcommited systems. For example the kprobes test during bootup took several seconds instead of just running unnoticed with large guests. Therefore, yielding was reintroduced with commit: 4d92f50249eb ("s390: reintroduce diag 44 calls for cpu_relax()") ... but in fact the stop machine code seems to be the only place where this yielding was really necessary. This place is probably the most important one as it makes all but one guest CPUs wait for one guest CPU. As we now have cpu_relax_yield(), we can use this in multi_cpu_stop(). For now lets only add it here. We can add it later in other places when necessary. Signed-off-by: Christian Borntraeger <[email protected]> Signed-off-by: Peter Zijlstra (Intel) <[email protected]> Cc: Catalin Marinas <[email protected]> Cc: Heiko Carstens <[email protected]> Cc: Linus Torvalds <[email protected]> Cc: Martin Schwidefsky <[email protected]> Cc: Nicholas Piggin <[email protected]> Cc: Noam Camus <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Russell King <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: Will Deacon <[email protected]> Cc: [email protected] Cc: [email protected] Cc: [email protected] Link: http://lkml.kernel.org/r/[email protected] Signed-off-by: Ingo Molnar <[email protected]>
Diffstat (limited to 'arch/arm/include/asm/processor.h')
0 files changed, 0 insertions, 0 deletions