summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorStephen Rothwell <sfr@canb.auug.org.au>2008-12-17 12:30:31 +1100
committerStephen Rothwell <sfr@canb.auug.org.au>2008-12-17 12:30:31 +1100
commitf1d89a92b451134aa855a3d4c9e8dc77632761d4 (patch)
treec04f2e5f2e6e6bbe5837eb8bb27e6dd5b2543838 /include
parenta2a99bd4ea80751bb510861e1c6335ebbef34b83 (diff)
parent8b2891922fd6edddd71924c237d4aa57b8d8a1fb (diff)
Merge commit 'ftrace/auto-ftrace-next'
Diffstat (limited to 'include')
-rw-r--r--include/asm-generic/vmlinux.lds.h10
-rw-r--r--include/linux/ftrace.h11
-rw-r--r--include/linux/sched.h1
-rw-r--r--include/trace/sched.h4
4 files changed, 24 insertions, 2 deletions
diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h
index 30536c3b1976..acb72d8f01c0 100644
--- a/include/asm-generic/vmlinux.lds.h
+++ b/include/asm-generic/vmlinux.lds.h
@@ -288,6 +288,16 @@
*(.kprobes.text) \
VMLINUX_SYMBOL(__kprobes_text_end) = .;
+#ifdef CONFIG_FUNCTION_GRAPH_TRACER
+#define IRQENTRY_TEXT \
+ ALIGN_FUNCTION(); \
+ VMLINUX_SYMBOL(__irqentry_text_start) = .; \
+ *(.irqentry.text) \
+ VMLINUX_SYMBOL(__irqentry_text_end) = .;
+#else
+#define IRQENTRY_TEXT
+#endif
+
/* Section used for early init (in .S files) */
#define HEAD_TEXT *(.head.text)
diff --git a/include/linux/ftrace.h b/include/linux/ftrace.h
index 985b28dc2ba9..286af823d8da 100644
--- a/include/linux/ftrace.h
+++ b/include/linux/ftrace.h
@@ -378,6 +378,16 @@ struct ftrace_graph_ret {
*/
#define __notrace_funcgraph notrace
+/*
+ * We want to which function is an entrypoint of a hardirq.
+ * That will help us to put a signal on output.
+ */
+#define __irq_entry __attribute__((__section__(".irqentry.text")))
+
+/* Limits of hardirq entrypoints */
+extern char __irqentry_text_start[];
+extern char __irqentry_text_end[];
+
#define FTRACE_RETFUNC_DEPTH 50
#define FTRACE_RETSTACK_ALLOC_SIZE 32
/* Type of the callback handlers for tracing function graph*/
@@ -415,6 +425,7 @@ static inline void unpause_graph_tracing(void)
#else
#define __notrace_funcgraph
+#define __irq_entry
static inline void ftrace_graph_init_task(struct task_struct *t) { }
static inline void ftrace_graph_exit_task(struct task_struct *t) { }
diff --git a/include/linux/sched.h b/include/linux/sched.h
index 4240f6bfa812..404c18162c7d 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -1187,6 +1187,7 @@ struct task_struct {
* The buffer to hold the BTS data.
*/
void *bts_buffer;
+ size_t bts_size;
#endif /* CONFIG_X86_PTRACE_BTS */
/* PID/PID hash table linkage. */
diff --git a/include/trace/sched.h b/include/trace/sched.h
index 9b2854abf7e2..f4549d506b16 100644
--- a/include/trace/sched.h
+++ b/include/trace/sched.h
@@ -30,8 +30,8 @@ DECLARE_TRACE(sched_switch,
TPARGS(rq, prev, next));
DECLARE_TRACE(sched_migrate_task,
- TPPROTO(struct rq *rq, struct task_struct *p, int dest_cpu),
- TPARGS(rq, p, dest_cpu));
+ TPPROTO(struct task_struct *p, int orig_cpu, int dest_cpu),
+ TPARGS(p, orig_cpu, dest_cpu));
DECLARE_TRACE(sched_process_free,
TPPROTO(struct task_struct *p),