aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrederic Weisbecker <fweisbec@gmail.com>2008-12-09 17:53:16 -0500
committerIngo Molnar <mingo@elte.hu>2008-12-12 05:14:07 -0500
commita0343e823184070f55364d8359f832dcb33c57c7 (patch)
tree9ec950c5881e244a741f21f0c3ab262fbae0f0fb
parentf3134de60624829a57741c1f3796847d4de165f6 (diff)
tracing/function-graph-tracer: add a new .irqentry.text section
Impact: let the function-graph-tracer be aware of the irq entrypoints Add a new .irqentry.text section to store the irq entrypoints functions inside the same section. This way, the tracer will be able to signal an interrupts triggering on output by recognizing these entrypoints. Also, make this section recordable for dynamic tracing. Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
-rw-r--r--arch/x86/kernel/vmlinux_64.lds.S1
-rw-r--r--include/asm-generic/vmlinux.lds.h10
-rwxr-xr-xscripts/recordmcount.pl1
3 files changed, 12 insertions, 0 deletions
diff --git a/arch/x86/kernel/vmlinux_64.lds.S b/arch/x86/kernel/vmlinux_64.lds.S
index 46e05447405b..1a614c0e6bef 100644
--- a/arch/x86/kernel/vmlinux_64.lds.S
+++ b/arch/x86/kernel/vmlinux_64.lds.S
@@ -35,6 +35,7 @@ SECTIONS
35 SCHED_TEXT 35 SCHED_TEXT
36 LOCK_TEXT 36 LOCK_TEXT
37 KPROBES_TEXT 37 KPROBES_TEXT
38 IRQENTRY_TEXT
38 *(.fixup) 39 *(.fixup)
39 *(.gnu.warning) 40 *(.gnu.warning)
40 _etext = .; /* End of text section */ 41 _etext = .; /* End of text section */
diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h
index eba835a2c2cd..c61fab1dd2f8 100644
--- a/include/asm-generic/vmlinux.lds.h
+++ b/include/asm-generic/vmlinux.lds.h
@@ -288,6 +288,16 @@
288 *(.kprobes.text) \ 288 *(.kprobes.text) \
289 VMLINUX_SYMBOL(__kprobes_text_end) = .; 289 VMLINUX_SYMBOL(__kprobes_text_end) = .;
290 290
291#ifdef CONFIG_FUNCTION_GRAPH_TRACER
292#define IRQENTRY_TEXT \
293 ALIGN_FUNCTION(); \
294 VMLINUX_SYMBOL(__irqentry_text_start) = .; \
295 *(.irqentry.text) \
296 VMLINUX_SYMBOL(__irqentry_text_end) = .;
297#else
298#define IRQENTRY_TEXT
299#endif
300
291/* Section used for early init (in .S files) */ 301/* Section used for early init (in .S files) */
292#define HEAD_TEXT *(.head.text) 302#define HEAD_TEXT *(.head.text)
293 303
diff --git a/scripts/recordmcount.pl b/scripts/recordmcount.pl
index 0b1dc9f9bb06..fe831412bea9 100755
--- a/scripts/recordmcount.pl
+++ b/scripts/recordmcount.pl
@@ -114,6 +114,7 @@ my %text_sections = (
114 ".text" => 1, 114 ".text" => 1,
115 ".sched.text" => 1, 115 ".sched.text" => 1,
116 ".spinlock.text" => 1, 116 ".spinlock.text" => 1,
117 ".irqentry.text" => 1,
117); 118);
118 119
119$objdump = "objdump" if ((length $objdump) == 0); 120$objdump = "objdump" if ((length $objdump) == 0);