• Ryo Takakura's avatar
    RISC-V: Enable IPI CPU Backtrace · f15c21a3
    Ryo Takakura authored
    Add arch_trigger_cpumask_backtrace() which is a generic infrastructure
    for sampling other CPUs' backtrace using IPI.
    
    The feature is used when lockups are detected or in case of oops/panic
    if parameters are set accordingly.
    
    Below is the case of oops with the oops_all_cpu_backtrace enabled.
    
    $ sysctl kernel.oops_all_cpu_backtrace=1
    
    triggering oops shows:
    [  212.214237] NMI backtrace for cpu 1
    [  212.214390] CPU: 1 PID: 610 Comm: in:imklog Tainted: G           OE      6.10.0-rc6 #1
    [  212.214570] Hardware name: riscv-virtio,qemu (DT)
    [  212.214690] epc : fallback_scalar_usercopy+0x8/0xdc
    [  212.214809]  ra : _copy_to_user+0x20/0x40
    [  212.214913] epc : ffffffff80c3a930 ra : ffffffff8059ba7e sp : ff20000000eabb50
    [  212.215061]  gp : ffffffff82066f90 tp : ff6000008e958000 t0 : 3463303866660000
    [  212.215210]  t1 : 000000000000005b t2 : 3463303866666666 s0 : ff20000000eabb60
    [  212.215358]  s1 : 0000000000000386 a0 : 00007ff6e81df926 a1 : ff600000824df800
    [  212.215505]  a2 : 000000000000003f a3 : 7fffffffffffffc0 a4 : 0000000000000000
    [  212.215651]  a5 : 000000000000003f a6 : 0000000000000000 a7 : 0000000000000000
    [  212.215857]  s2 : ff600000824df800 s3 : ffffffff82066cc0 s4 : 0000000000001c1a
    [  212.216074]  s5 : ffffffff8206a5a8 s6 : 00007ff6e81df926 s7 : ffffffff8206a5a0
    [  212.216278]  s8 : ff600000824df800 s9 : ffffffff81e25de0 s10: 000000000000003f
    [  212.216471]  s11: ffffffff8206a59d t3 : ff600000824df812 t4 : ff600000824df812
    [  212.216651]  t5 : ff600000824df818 t6 : 0000000000040000
    [  212.216796] status: 0000000000040120 badaddr: 0000000000000000 cause: 8000000000000001
    [  212.217035] [<ffffffff80c3a930>] fallback_scalar_usercopy+0x8/0xdc
    [  212.217207] [<ffffffff80095f56>] syslog_print+0x1f4/0x2b2
    [  212.217362] [<ffffffff80096e5c>] do_syslog.part.0+0x94/0x2d8
    [  212.217502] [<ffffffff800979e8>] do_syslog+0x66/0x88
    [  212.217636] [<ffffffff803a5dda>] kmsg_read+0x44/0x5c
    [  212.217764] [<ffffffff80392dbe>] proc_reg_read+0x7a/0xa8
    [  212.217952] [<ffffffff802ff726>] vfs_read+0xb0/0x24e
    [  212.218090] [<ffffffff803001ba>] ksys_read+0x64/0xe4
    [  212.218264] [<ffffffff8030025a>] __riscv_sys_read+0x20/0x2c
    [  212.218453] [<ffffffff80c4af9a>] do_trap_ecall_u+0x60/0x1d4
    [  212.218664] [<ffffffff80c56998>] ret_from_exception+0x0/0x64
    Signed-off-by: default avatarRyo Takakura <takakura@valinux.co.jp>
    Link: https://lore.kernel.org/r/20240718093659.158912-1-takakura@valinux.co.jpSigned-off-by: default avatarPalmer Dabbelt <palmer@rivosinc.com>
    f15c21a3
irq.h 603 Bytes