sysrq: do not omit current cpu when showing backtrace of all active CPUs
[ Upstream commit
5390e7f46b9d5546d45a83e6463bc656678b1d0e ]
The backtrace of current CPU also should be printed as it is active. This
change add stack trace for current CPU and print a hint for idle CPU for
the generic workqueue based printing. (x86 already does this)
Now it looks like below:
[ 279.401567] sysrq: Show backtrace of all active CPUs
[ 279.407234] sysrq: CPU5:
[ 279.407505] Call Trace:
[ 279.408789] [<
ffffffff8000606c>] dump_backtrace+0x2c/0x3a
[ 279.411698] [<
ffffffff800060ac>] show_stack+0x32/0x3e
[ 279.411809] [<
ffffffff80542258>] sysrq_handle_showallcpus+0x4c/0xc6
[ 279.411929] [<
ffffffff80542f16>] __handle_sysrq+0x106/0x26c
[ 279.412034] [<
ffffffff805436a8>] write_sysrq_trigger+0x64/0x74
[ 279.412139] [<
ffffffff8029cd48>] proc_reg_write+0x8e/0xe2
[ 279.412252] [<
ffffffff8021a8f8>] vfs_write+0x90/0x2be
[ 279.412362] [<
ffffffff8021acd2>] ksys_write+0xa6/0xce
[ 279.412467] [<
ffffffff8021ad24>] sys_write+0x2a/0x38
[ 279.412689] [<
ffffffff80003ff8>] ret_from_syscall+0x0/0x2
[ 279.417173] sysrq: CPU6: backtrace skipped as idling
[ 279.417185] sysrq: CPU4: backtrace skipped as idling
[ 279.417187] sysrq: CPU0: backtrace skipped as idling
[ 279.417181] sysrq: CPU7: backtrace skipped as idling
[ 279.417190] sysrq: CPU1: backtrace skipped as idling
[ 279.417193] sysrq: CPU3: backtrace skipped as idling
[ 279.417219] sysrq: CPU2:
[ 279.419179] Call Trace:
[ 279.419440] [<
ffffffff8000606c>] dump_backtrace+0x2c/0x3a
[ 279.419782] [<
ffffffff800060ac>] show_stack+0x32/0x3e
[ 279.420015] [<
ffffffff80542b30>] showacpu+0x5c/0x96
[ 279.420317] [<
ffffffff800ba71c>] flush_smp_call_function_queue+0xd6/0x218
[ 279.420569] [<
ffffffff800bb438>] generic_smp_call_function_single_interrupt+0x14/0x1c
[ 279.420798] [<
ffffffff800079ae>] handle_IPI+0xaa/0x13a
[ 279.421024] [<
ffffffff804dcb92>] riscv_intc_irq+0x56/0x70
[ 279.421274] [<
ffffffff80a05b70>] generic_handle_arch_irq+0x6a/0xfa
[ 279.421518] [<
ffffffff80004006>] ret_from_exception+0x0/0x10
[ 279.421750] [<
ffffffff80096492>] rcu_idle_enter+0x16/0x1e
Signed-off-by: Changbin Du <changbin.du@gmail.com>
Link: https://lore.kernel.org/r/20220117154300.2808-1-changbin.du@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>