aboutsummaryrefslogtreecommitdiffstats
path: root/meta-toradex-extras/recipes/linux/linux-toradex-fsl/ARM-perf-add-support-for-perf-registers-API.diff
diff options
context:
space:
mode:
Diffstat (limited to 'meta-toradex-extras/recipes/linux/linux-toradex-fsl/ARM-perf-add-support-for-perf-registers-API.diff')
-rw-r--r--meta-toradex-extras/recipes/linux/linux-toradex-fsl/ARM-perf-add-support-for-perf-registers-API.diff126
1 files changed, 0 insertions, 126 deletions
diff --git a/meta-toradex-extras/recipes/linux/linux-toradex-fsl/ARM-perf-add-support-for-perf-registers-API.diff b/meta-toradex-extras/recipes/linux/linux-toradex-fsl/ARM-perf-add-support-for-perf-registers-API.diff
deleted file mode 100644
index e6f44fda..00000000
--- a/meta-toradex-extras/recipes/linux/linux-toradex-fsl/ARM-perf-add-support-for-perf-registers-API.diff
+++ /dev/null
@@ -1,126 +0,0 @@
-From 49863894db3ed7bd41541b1c17733273966cea71 Mon Sep 17 00:00:00 2001
-From: Will Deacon <will.deacon@arm.com>
-Date: Thu, 26 Sep 2013 12:36:35 +0100
-Subject: [PATCH] ARM: perf: add support for perf registers API
-
-This patch implements the functions required for the perf registers API,
-allowing the perf tool to interface kernel register dumps with libunwind
-in order to provide userspace backtracing.
-
-Cc: Jean Pihet <jean.pihet@linaro.org>
-Signed-off-by: Will Deacon <will.deacon@arm.com>
----
- arch/arm/Kconfig | 2 ++
- arch/arm/include/uapi/asm/Kbuild | 1 +
- arch/arm/include/uapi/asm/perf_regs.h | 23 +++++++++++++++++++++++
- arch/arm/kernel/Makefile | 1 +
- arch/arm/kernel/perf_regs.c | 30 ++++++++++++++++++++++++++++++
- 5 files changed, 57 insertions(+)
- create mode 100644 arch/arm/include/uapi/asm/perf_regs.h
- create mode 100644 arch/arm/kernel/perf_regs.c
-
-diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
-index 1ad6fb6..899d0c6 100644
---- a/arch/arm/Kconfig
-+++ b/arch/arm/Kconfig
-@@ -51,6 +51,8 @@ config ARM
- select HAVE_MOD_ARCH_SPECIFIC if ARM_UNWIND
- select HAVE_OPROFILE if (HAVE_PERF_EVENTS)
- select HAVE_PERF_EVENTS
-+ select HAVE_PERF_REGS
-+ select HAVE_PERF_USER_STACK_DUMP
- select HAVE_REGS_AND_STACK_ACCESS_API
- select HAVE_SYSCALL_TRACEPOINTS
- select HAVE_UID16
-diff --git a/arch/arm/include/uapi/asm/Kbuild b/arch/arm/include/uapi/asm/Kbuild
-index 18d76fd..70a1c9d 100644
---- a/arch/arm/include/uapi/asm/Kbuild
-+++ b/arch/arm/include/uapi/asm/Kbuild
-@@ -7,6 +7,7 @@ header-y += hwcap.h
- header-y += ioctls.h
- header-y += kvm_para.h
- header-y += mman.h
-+header-y += perf_regs.h
- header-y += posix_types.h
- header-y += ptrace.h
- header-y += setup.h
-diff --git a/arch/arm/include/uapi/asm/perf_regs.h b/arch/arm/include/uapi/asm/perf_regs.h
-new file mode 100644
-index 0000000..ce59448
---- /dev/null
-+++ b/arch/arm/include/uapi/asm/perf_regs.h
-@@ -0,0 +1,23 @@
-+#ifndef _ASM_ARM_PERF_REGS_H
-+#define _ASM_ARM_PERF_REGS_H
-+
-+enum perf_event_arm_regs {
-+ PERF_REG_ARM_R0,
-+ PERF_REG_ARM_R1,
-+ PERF_REG_ARM_R2,
-+ PERF_REG_ARM_R3,
-+ PERF_REG_ARM_R4,
-+ PERF_REG_ARM_R5,
-+ PERF_REG_ARM_R6,
-+ PERF_REG_ARM_R7,
-+ PERF_REG_ARM_R8,
-+ PERF_REG_ARM_R9,
-+ PERF_REG_ARM_R10,
-+ PERF_REG_ARM_FP,
-+ PERF_REG_ARM_IP,
-+ PERF_REG_ARM_SP,
-+ PERF_REG_ARM_LR,
-+ PERF_REG_ARM_PC,
-+ PERF_REG_ARM_MAX,
-+};
-+#endif /* _ASM_ARM_PERF_REGS_H */
-diff --git a/arch/arm/kernel/Makefile b/arch/arm/kernel/Makefile
-index 5140df5f..9b818ca 100644
---- a/arch/arm/kernel/Makefile
-+++ b/arch/arm/kernel/Makefile
-@@ -78,6 +78,7 @@ obj-$(CONFIG_CPU_XSC3) += xscale-cp0.o
- obj-$(CONFIG_CPU_MOHAWK) += xscale-cp0.o
- obj-$(CONFIG_CPU_PJ4) += pj4-cp0.o
- obj-$(CONFIG_IWMMXT) += iwmmxt.o
-+obj-$(CONFIG_PERF_EVENTS) += perf_regs.o
- obj-$(CONFIG_HW_PERF_EVENTS) += perf_event.o perf_event_cpu.o
- AFLAGS_iwmmxt.o := -Wa,-mcpu=iwmmxt
- obj-$(CONFIG_ARM_CPU_TOPOLOGY) += topology.o
-diff --git a/arch/arm/kernel/perf_regs.c b/arch/arm/kernel/perf_regs.c
-new file mode 100644
-index 0000000..6e4379c
---- /dev/null
-+++ b/arch/arm/kernel/perf_regs.c
-@@ -0,0 +1,30 @@
-+
-+#include <linux/errno.h>
-+#include <linux/kernel.h>
-+#include <linux/perf_event.h>
-+#include <linux/bug.h>
-+#include <asm/perf_regs.h>
-+#include <asm/ptrace.h>
-+
-+u64 perf_reg_value(struct pt_regs *regs, int idx)
-+{
-+ if (WARN_ON_ONCE((u32)idx >= PERF_REG_ARM_MAX))
-+ return 0;
-+
-+ return regs->uregs[idx];
-+}
-+
-+#define REG_RESERVED (~((1ULL << PERF_REG_ARM_MAX) - 1))
-+
-+int perf_reg_validate(u64 mask)
-+{
-+ if (!mask || mask & REG_RESERVED)
-+ return -EINVAL;
-+
-+ return 0;
-+}
-+
-+u64 perf_reg_abi(struct task_struct *task)
-+{
-+ return PERF_SAMPLE_REGS_ABI_32;
-+}
---
-1.9.1
-