riscv: Add support for perf registers sampling
authorMao Han <han_mao@c-sky.com>
Thu, 5 Sep 2019 03:46:35 +0000 (11:46 +0800)
committerPaul Walmsley <paul.walmsley@sifive.com>
Thu, 5 Sep 2019 07:48:58 +0000 (00:48 -0700)
commit98a93b0b561c571153b7cd6953e882bc3fd8cfcd
tree4698bf158191aa820da633e485089d0c447a6cd2
parentdbeb90b0c1eb86a9b963b929d3c937afb7dadfa3
riscv: Add support for perf registers sampling

This patch implements the perf registers sampling and validation API
for the riscv arch. The valid registers and their register ID are
defined in perf_regs.h. Perf tool can backtrace in userspace with
unwind library and the registers/user stack dump support.

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>
Tested-by: Greentime Hu <greentime.hu@sifive.com>
[paul.walmsley@sifive.com: minor patch description fix]
Signed-off-by: Paul Walmsley <paul.walmsley@sifive.com>
arch/riscv/Kconfig
arch/riscv/include/uapi/asm/perf_regs.h [new file with mode: 0644]
arch/riscv/kernel/Makefile
arch/riscv/kernel/perf_regs.c [new file with mode: 0644]