Re: [PATCH V3 0/3] riscv: Add perf callchain support

From: Paul Walmsley
Date: Fri Aug 16 2019 - 13:14:05 EST


Hello Mao Han,

On Fri, 17 May 2019, Mao Han wrote:

> This patch set add perf callchain(FP/DWARF) support for RISC-V.
> It comes from the csky version callchain support with some
> slight modifications. The patchset base on Linux 5.1.
>
> CC: Palmer Dabbelt <palmer@xxxxxxxxxx>
> CC: linux-riscv <linux-riscv@xxxxxxxxxxxxxxxxxxx>
> CC: Christoph Hellwig <hch@xxxxxx>
> CC: Guo Ren <guoren@xxxxxxxxxx>

I tried these patches on v5.3-rc4, both on the HiFive Unleashed board
with a Debian-based rootfs and QEMU rv64 with a Fedora-based rootfs. For
QEMU, I used defconfig, and for the HiFive Unleashed, I added a few more
Kconfig directives; and on both, I enabled CONFIG_PERF_EVENTS. I built
the perf tools from the kernel tree.

Upon running "/root/bin/perf record -e cpu-clock --call-graph fp
/bin/ls", I see the backtraces below. The first is on the HiFive
Unleashed, the second is on QEMU.

Could you take a look and tell me if you see similar issues? And if not,
could you please walk me through your process for testing these patches on
rv64, so I can reproduce it here?


thanks,

- Paul


# /root/bin/perf record -e cpu-clock --call-graph fp /bin/ls
[ 213.258888] Unable to handle kernel paging request at virtual address ffffffd2d979000c
[ 213.266025] Oops [#1]
[ 213.268278] Modules linked in:
[ 213.271323] CPU: 2 PID: 165 Comm: ls Not tainted 5.3.0-rc4-00006-g2615b94055fc #164
[ 213.278961] sepc: ffffffe0005bde76 ra : ffffffe0005bde84 sp : ffffffe1f609d870
[ 213.286166] gp : ffffffe000dbe6c0 tp : ffffffe1f60fa600 t0 : 0000000000046000
[ 213.293372] t1 : 0000000000000002 t2 : 0000002aaaac4890 s0 : ffffffe1f609d8b0
[ 213.300579] s1 : ffffffe1f609d8d8 a0 : 0000000000000004 a1 : 0000000000000000
[ 213.307785] a2 : 10ef8552d9790004 a3 : 0000000000000018 a4 : 0000000000000018
[ 213.314991] a5 : 0000000000000003 a6 : 0000000000000001 a7 : ffffffe1f7b685e0
[ 213.322198] s2 : 10ef8552d9790014 s3 : 0000003fffffffff s4 : 0000000000001ff8
[ 213.329404] s5 : b7e9595db7f9e15f s6 : ffffffe000dbe128 s7 : ffffffe1f8d6f820
[ 213.336610] s8 : 00000031a394a3e8 s9 : ffffffe000656150 s10: 0000000200000120
[ 213.343816] s11: 0000002aaaabc938 t3 : ffffffe1f7b685c0 t4 : 0000000000000001
[ 213.351021] t5 : 0000000000000008 t6 : 0000000000000000
[ 213.356319] sstatus: 0000000200000100 sbadaddr: ffffffd2d979000c scause: 000000000000000d
[ 213.364482] ---[ end trace f325867b8e0786aa ]---
[ 213.369083] Kernel panic - not syncing: Fatal exception in interrupt
[ 213.375421] SMP: stopping secondary CPUs
[ 213.379336] ---[ end Kernel panic - not syncing: Fatal exception in interrupt ]---


# /root/bin/perf record -e cpu-clock --call-graph fp /bin/ls
[ 3465.349655] Unable to handle kernel paging request at virtual address d9bfd43b47718688
[ 3465.352356] Oops [#1]
[ 3465.353375] Modules linked in:
[ 3465.354496] CPU: 0 PID: 9501 Comm: ls Not tainted 5.3.0-rc4-00004-g3bfea1b43363 #165
[ 3465.355904] sepc: ffffffe000039a0a ra : ffffffe000039a18 sp : ffffffe078c5b5e0
[ 3465.361041] gp : ffffffe000837760 tp : ffffffe078d88940 t0 : 0000000000046000
[ 3465.366104] t1 : 0000000000000002 t2 : 000000004387194a s0 : ffffffe078c5b620
[ 3465.366839] s1 : ffffffe078c5b648 a0 : 0000000000000004 a1 : 0000000000000000
[ 3465.369101] a2 : d9bfd43b47718680 a3 : 0000000000000690 a4 : 0000000000000018
[ 3465.370949] a5 : 0000000000000003 a6 : 0000000000000001 a7 : ffffffe0743b16d0
[ 3465.371650] s2 : d9bfd43b47718690 s3 : 0000003fffffffff s4 : 0000000000001ff8
[ 3465.372658] s5 : e85970cf9e9fbbc8 s6 : ffffffe0008371c8 s7 : ffffffe07a1527a0
[ 3465.373570] s8 : 00000326c7b3d418 s9 : ffffffe0000d3326 s10: 0000000000000120
[ 3465.377102] s11: ffffffe078cb4880 t3 : ffffffe0743b16c0 t4 : 0000000000000001
[ 3465.378125] t5 : 0000000000000008 t6 : ffffffe078c5bd60
[ 3465.380603] sstatus: 0000000000000100 sbadaddr: d9bfd43b47718688 scause: 000000000000000d
[ 3465.382872] ---[ end trace f0ff9969d564eb82 ]---
[ 3465.383998] Kernel panic - not syncing: Fatal exception in interrupt
[ 3465.385812] SMP: stopping secondary CPUs
[ 3465.394408] ---[ end Kernel panic - not syncing: Fatal exception in interrupt ]---