• Julien Grall's avatar
    tty/sysrq: Convert show_lock to raw_spinlock_t · 6ac972dd
    Julien Grall authored
    Systems which don't provide arch_trigger_cpumask_backtrace() will
    invoke showacpu() from a smp_call_function() function which is invoked
    with disabled interrupts even on -RT systems.
    
    The function acquires the show_lock lock which only purpose is to
    ensure that the CPUs don't print simultaneously. Otherwise the
    output would clash and it would be hard to tell the output from CPUx
    apart from CPUy.
    
    On -RT the spin_lock() can not be acquired from this context. A
    raw_spin_lock() is required. It will introduce the system's latency
    by performing the sysrq request and other CPUs will block on the lock
    until the request is done. This is okay because the user asked for a
    backtrace of all active CPUs and under "normal circumstances in
    production" this path should not be triggered.
    Signed-off-by: default avatarJulien Grall <julien.grall@arm.com>
    [bigeasy@linuxtronix.de: commit description]
    Signed-off-by: default avatarSebastian Andrzej Siewior <bigeasy@linutronix.de>
    Acked-by: default avatarSebastian Andrzej Siewior <bigeasy@linutronix.de>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    6ac972dd
sysrq.c 26.2 KB