Commit b37042b2 authored by Huacai Chen's avatar Huacai Chen
Browse files

LoongArch: Add perf events support



The perf events infrastructure of LoongArch is very similar to old MIPS-
based Loongson, so most of the codes are derived from MIPS.

Signed-off-by: default avatarHuacai Chen <chenhuacai@loongson.cn>
parent 5f1e001b
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -97,6 +97,8 @@ config LOONGARCH
	select HAVE_NMI
	select HAVE_PCI
	select HAVE_PERF_EVENTS
	select HAVE_PERF_REGS
	select HAVE_PERF_USER_STACK_DUMP
	select HAVE_REGS_AND_STACK_ACCESS_API
	select HAVE_RSEQ
	select HAVE_SETUP_PER_CPU_AREA if NUMA
+3 −1
Original line number Diff line number Diff line
@@ -6,5 +6,7 @@

#ifndef __LOONGARCH_PERF_EVENT_H__
#define __LOONGARCH_PERF_EVENT_H__
/* Nothing to show here; the file is required by linux/perf_event.h. */

#define perf_arch_bpf_user_pt_regs(regs) (struct user_pt_regs *)regs

#endif /* __LOONGARCH_PERF_EVENT_H__ */
+40 −0
Original line number Diff line number Diff line
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
#ifndef _ASM_LOONGARCH_PERF_REGS_H
#define _ASM_LOONGARCH_PERF_REGS_H

enum perf_event_loongarch_regs {
	PERF_REG_LOONGARCH_PC,
	PERF_REG_LOONGARCH_R1,
	PERF_REG_LOONGARCH_R2,
	PERF_REG_LOONGARCH_R3,
	PERF_REG_LOONGARCH_R4,
	PERF_REG_LOONGARCH_R5,
	PERF_REG_LOONGARCH_R6,
	PERF_REG_LOONGARCH_R7,
	PERF_REG_LOONGARCH_R8,
	PERF_REG_LOONGARCH_R9,
	PERF_REG_LOONGARCH_R10,
	PERF_REG_LOONGARCH_R11,
	PERF_REG_LOONGARCH_R12,
	PERF_REG_LOONGARCH_R13,
	PERF_REG_LOONGARCH_R14,
	PERF_REG_LOONGARCH_R15,
	PERF_REG_LOONGARCH_R16,
	PERF_REG_LOONGARCH_R17,
	PERF_REG_LOONGARCH_R18,
	PERF_REG_LOONGARCH_R19,
	PERF_REG_LOONGARCH_R20,
	PERF_REG_LOONGARCH_R21,
	PERF_REG_LOONGARCH_R22,
	PERF_REG_LOONGARCH_R23,
	PERF_REG_LOONGARCH_R24,
	PERF_REG_LOONGARCH_R25,
	PERF_REG_LOONGARCH_R26,
	PERF_REG_LOONGARCH_R27,
	PERF_REG_LOONGARCH_R28,
	PERF_REG_LOONGARCH_R29,
	PERF_REG_LOONGARCH_R30,
	PERF_REG_LOONGARCH_R31,
	PERF_REG_LOONGARCH_MAX,
};
#endif /* _ASM_LOONGARCH_PERF_REGS_H */
+2 −0
Original line number Diff line number Diff line
@@ -26,4 +26,6 @@ obj-$(CONFIG_NUMA) += numa.o
obj-$(CONFIG_UNWINDER_GUESS)	+= unwind_guess.o
obj-$(CONFIG_UNWINDER_PROLOGUE) += unwind_prologue.o

obj-$(CONFIG_PERF_EVENTS)	+= perf_event.o perf_regs.o

CPPFLAGS_vmlinux.lds		:= $(KBUILD_CFLAGS)
+887 −0

File added.

Preview size limit exceeded, changes collapsed.

Loading