perf: Unified API to record selective sets of arch registers
authorJiri Olsa <jolsa@redhat.com>
Tue, 7 Aug 2012 13:20:36 +0000 (15:20 +0200)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Fri, 10 Aug 2012 14:21:37 +0000 (11:21 -0300)
commitc5e63197db519bae1c33e41ea0342a50f39e7a93
tree94d29d1a4c6b23ee8778ecdfb7eecf9bd41c25b6
parentb691f64360ecec49c44d534cf4c1798a438bfccb
perf: Unified API to record selective sets of arch registers

This brings a new API to help the selective dump of registers on event
sampling, and its implementation for x86 arch.

Added HAVE_PERF_REGS config option to determine if the architecture
provides perf registers ABI.

The information about desired registers will be passed in u64 mask.
It's up to the architecture to map the registers into the mask bits.

For the x86 arch implementation, both 32 and 64 bit registers bits are
defined within single enum to ensure 64 bit system can provide register
dump for compat task if needed in the future.

Original-patch-by: Frederic Weisbecker <fweisbec@gmail.com>
[ Added missing linux/errno.h include ]
Signed-off-by: Jiri Olsa <jolsa@redhat.com>
Cc: "Frank Ch. Eigler" <fche@redhat.com>
Cc: Arun Sharma <asharma@fb.com>
Cc: Benjamin Redelings <benjamin.redelings@nescent.org>
Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
Cc: Cyrill Gorcunov <gorcunov@openvz.org>
Cc: Frank Ch. Eigler <fche@redhat.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Robert Richter <robert.richter@amd.com>
Cc: Stephane Eranian <eranian@google.com>
Cc: Tom Zanussi <tzanussi@gmail.com>
Cc: Ulrich Drepper <drepper@gmail.com>
Link: http://lkml.kernel.org/r/1344345647-11536-2-git-send-email-jolsa@redhat.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
arch/Kconfig
arch/x86/Kconfig
arch/x86/include/asm/perf_regs.h [new file with mode: 0644]
arch/x86/kernel/Makefile
arch/x86/kernel/perf_regs.c [new file with mode: 0644]
include/linux/perf_regs.h [new file with mode: 0644]