linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH V7 0/2] riscv: Add perf callchain support
@ 2019-09-05  3:46 Mao Han
  2019-09-05  3:46 ` [PATCH V7 1/2] riscv: Add support for perf registers sampling Mao Han
  2019-09-05  3:46 ` [PATCH V7 2/2] riscv: Add support for libdw Mao Han
  0 siblings, 2 replies; 5+ messages in thread
From: Mao Han @ 2019-09-05  3:46 UTC (permalink / raw)
  To: linux-riscv
  Cc: linux-kernel, linux-csky, Mao Han, Paul Walmsley, Greentime Hu,
	Palmer Dabbelt, Christoph Hellwig, Guo Ren

This patchset adds 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.3-rc6.

The patchset has some 'checkpatch.pl --strict' warnings:
WARNING: Use #include <linux/perf_regs.h> instead of <asm/perf_regs.h>
#141: FILE: tools/perf/arch/riscv/include/perf_regs.h:9:
+#include <asm/perf_regs.h>

CHECK: Avoid CamelCase: <Dwfl_Thread>
#329: FILE: tools/perf/arch/riscv/util/unwind-libdw.c:9:
+bool libdw__arch_set_initial_registers(Dwfl_Thread *thread, void *arg)

CHECK: Avoid CamelCase: <Dwarf_Word>
#333: FILE: tools/perf/arch/riscv/util/unwind-libdw.c:13:
+	Dwarf_Word dwarf_regs[32];
As all the other Linux architectures use asm/perf_regs.h directly and
get these camelcases, I didn't try to fix them.

Changes since v6:
  - add "WITH Linux-syscall-note" for uapi headers.

Changes since v5:
  - use walk_stackframe from stacktrace.c to handle
    kernel callchain unwinding(fix invalid mem access)

Changes since v4:
  - Add missing PERF_HAVE_ARCH_REGS_QUERY_REGISTER_OFFSET
    verified with extra CFLAGS(-Wall -Werror)

Changes since v3:
  - Add more strict check for unwind_frame_kernel
  - update for kernel 5.3

Changes since v2:
  - fix inconsistent comment
  - force to build kernel with -fno-omit-frame-pointer if perf
    event is enabled

Changes since v1:
  - simplify implementation and code convention

Signed-off-by: Mao Han <han_mao@c-sky.com>
Cc: Paul Walmsley <paul.walmsley@sifive.com>
Cc: Greentime Hu <green.hu@gmail.com>
Cc: Palmer Dabbelt <palmer@sifive.com>
Cc: linux-riscv <linux-riscv@lists.infradead.org>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Guo Ren <guoren@kernel.org>

Mao Han (2):
  riscv: Add support for perf registers sampling
  riscv: Add support for libdw

 arch/riscv/Kconfig                            |  2 +
 arch/riscv/include/uapi/asm/perf_regs.h       | 42 ++++++++++++
 arch/riscv/kernel/Makefile                    |  1 +
 arch/riscv/kernel/perf_regs.c                 | 44 ++++++++++++
 tools/arch/riscv/include/uapi/asm/perf_regs.h | 42 ++++++++++++
 tools/perf/Makefile.config                    |  6 +-
 tools/perf/arch/riscv/Build                   |  1 +
 tools/perf/arch/riscv/Makefile                |  4 ++
 tools/perf/arch/riscv/include/perf_regs.h     | 96 +++++++++++++++++++++++++++
 tools/perf/arch/riscv/util/Build              |  2 +
 tools/perf/arch/riscv/util/dwarf-regs.c       | 72 ++++++++++++++++++++
 tools/perf/arch/riscv/util/unwind-libdw.c     | 57 ++++++++++++++++
 12 files changed, 368 insertions(+), 1 deletion(-)
 create mode 100644 arch/riscv/include/uapi/asm/perf_regs.h
 create mode 100644 arch/riscv/kernel/perf_regs.c
 create mode 100644 tools/arch/riscv/include/uapi/asm/perf_regs.h
 create mode 100644 tools/perf/arch/riscv/Build
 create mode 100644 tools/perf/arch/riscv/Makefile
 create mode 100644 tools/perf/arch/riscv/include/perf_regs.h
 create mode 100644 tools/perf/arch/riscv/util/Build
 create mode 100644 tools/perf/arch/riscv/util/dwarf-regs.c
 create mode 100644 tools/perf/arch/riscv/util/unwind-libdw.c

-- 
2.7.4


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2019-09-05  7:55 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-09-05  3:46 [PATCH V7 0/2] riscv: Add perf callchain support Mao Han
2019-09-05  3:46 ` [PATCH V7 1/2] riscv: Add support for perf registers sampling Mao Han
2019-09-05  7:54   ` Paul Walmsley
2019-09-05  3:46 ` [PATCH V7 2/2] riscv: Add support for libdw Mao Han
2019-09-05  7:55   ` Paul Walmsley

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).