aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarkus Metzger <markus.t.metzger@intel.com>2008-01-30 07:32:04 -0500
committerIngo Molnar <mingo@elte.hu>2008-01-30 07:32:04 -0500
commitc6334593c61c71ab2e666c015eef13995736f49a (patch)
tree49ea09756335b1be671bb7fc4fee4ba0abb7c0ac
parentcba4b65d359268c40679ca75ac92c0b93cecf6de (diff)
x86, ptrace: overflow signal API
Establish the user API for sending a user-defined signal to the traced task on a BTS buffer overflow. This should complete the user API for the BTS ptrace extension. The patches so far implement wrap-around overflow handling as is needed for debugging. The remaining open is another overflow handling mechanism that sends a signal to the traced task on a buffer overflow. This will take some more time from my side. Since, from a user perspective, this occurs behind the scenes, the patch set should already be useful. More features may/will be added on top of it (overflow signal, pageable back-up buffers, kernel tracing, core file support, profiling, ...). Signed-off-by: Markus Metzger <markus.t.metzger@intel.com> Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-rw-r--r--include/asm-x86/ptrace-abi.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/include/asm-x86/ptrace-abi.h b/include/asm-x86/ptrace-abi.h
index bcf67044754c..b3b9e023afce 100644
--- a/include/asm-x86/ptrace-abi.h
+++ b/include/asm-x86/ptrace-abi.h
@@ -88,11 +88,13 @@ struct ptrace_bts_config {
88 unsigned int size; 88 unsigned int size;
89 /* bitmask of below flags */ 89 /* bitmask of below flags */
90 unsigned int flags; 90 unsigned int flags;
91 /* buffer overflow signal */
92 unsigned int signal;
91}; 93};
92 94
93#define PTRACE_BTS_O_TRACE 0x1 /* branch trace */ 95#define PTRACE_BTS_O_TRACE 0x1 /* branch trace */
94#define PTRACE_BTS_O_SCHED 0x2 /* scheduling events w/ jiffies */ 96#define PTRACE_BTS_O_SCHED 0x2 /* scheduling events w/ jiffies */
95#define PTRACE_BTS_O_SIGNAL 0x4 /* send SIG? on buffer overflow 97#define PTRACE_BTS_O_SIGNAL 0x4 /* send SIG<signal> on buffer overflow
96 instead of wrapping around */ 98 instead of wrapping around */
97#define PTRACE_BTS_O_CUT_SIZE 0x8 /* cut requested size to max available 99#define PTRACE_BTS_O_CUT_SIZE 0x8 /* cut requested size to max available
98 instead of failing */ 100 instead of failing */