• Jinjie Ruan's avatar
    RISC-V: Implement kgdb_roundup_cpus() to enable future NMI Roundup · 983f1214
    Jinjie Ruan authored
    Until now, the generic weak kgdb_roundup_cpus() has been used for kgdb on
    RISCV. A custom one allows to debug CPUs that are stuck with interrupts
    disabled with NMI support in the future. And using an IPI is better than
    the generic one since it avoids the potential situation described in the
    generic kgdb_call_nmi_hook(). As Andrew pointed out, once there is NMI
    support, we can easily extend this and the CPU backtrace support
    to use NMIs.
    
    After this patch, the kgdb test show that:
    	# echo g > /proc/sysrq-trigger
    	[2]kdb> btc
    	btc: cpu status: Currently on cpu 2
    	Available cpus: 0-1(-), 2, 3(-)
    	Stack traceback for pid 0
    	0xffffffff81c13a40        0        0  1    0   -  0xffffffff81c14510  swapper/0
    	CPU: 0 PID: 0 Comm: swapper/0 Not tainted 6.10.0-g3120273055b6-dirty #51
    	Hardware name: riscv-virtio,qemu (DT)
    	Call Trace:
    	[<ffffffff80006c48>] dump_backtrace+0x28/0x30
    	[<ffffffff80fceb38>] show_stack+0x38/0x44
    	[<ffffffff80fe6a04>] dump_stack_lvl+0x58/0x7a
    	[<ffffffff80fe6a3e>] dump_stack+0x18/0x20
    	[<ffffffff801143fa>] kgdb_cpu_enter+0x682/0x6b2
    	[<ffffffff801144ca>] kgdb_nmicallback+0xa0/0xac
    	[<ffffffff8000a392>] handle_IPI+0x9c/0x120
    	[<ffffffff800a2baa>] handle_percpu_devid_irq+0xa4/0x1e4
    	[<ffffffff8009cca8>] generic_handle_domain_irq+0x28/0x36
    	[<ffffffff800a9e5c>] ipi_mux_process+0xe8/0x110
    	[<ffffffff806e1e30>] imsic_handle_irq+0xf8/0x13a
    	[<ffffffff8009cca8>] generic_handle_domain_irq+0x28/0x36
    	[<ffffffff806dff12>] riscv_intc_aia_irq+0x2e/0x40
    	[<ffffffff80fe6ab0>] handle_riscv_irq+0x54/0x86
    	[<ffffffff80ff2e4a>] call_on_irq_stack+0x32/0x40
    
    Rebased on Ryo Takakura's "RISC-V: Enable IPI CPU Backtrace" patch.
    Signed-off-by: default avatarJinjie Ruan <ruanjinjie@huawei.com>
    Reviewed-by: default avatarAndrew Jones <ajones@ventanamicro.com>
    Link: https://lore.kernel.org/r/20240727063438.886155-1-ruanjinjie@huawei.comSigned-off-by: default avatarPalmer Dabbelt <palmer@rivosinc.com>
    983f1214
smp.c 7.62 KB