tracing/function-graph-tracer: add a new .irqentry.text section
authorFrederic Weisbecker <fweisbec@gmail.com>
Tue, 9 Dec 2008 22:53:16 +0000 (23:53 +0100)
committerIngo Molnar <mingo@elte.hu>
Fri, 12 Dec 2008 10:14:07 +0000 (11:14 +0100)
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>
arch/x86/kernel/vmlinux_64.lds.S
include/asm-generic/vmlinux.lds.h
scripts/recordmcount.pl

index 46e05447405b43855f46602f493847b75efa252a..1a614c0e6befcb5893dcb50dbc9cefac16907645 100644 (file)
@@ -35,6 +35,7 @@ SECTIONS
        SCHED_TEXT
        LOCK_TEXT
        KPROBES_TEXT
+       IRQENTRY_TEXT
        *(.fixup)
        *(.gnu.warning)
        _etext = .;             /* End of text section */
index eba835a2c2cd5a39c295e700015a9497d69151f9..c61fab1dd2f82cbde0df850274a595d4c79aa450 100644 (file)
                *(.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)
 
index 0b1dc9f9bb0682a65d9158f8fb44012ea05464b1..fe831412bea9ce4890060f5bb59986ac2a10ad47 100755 (executable)
@@ -114,6 +114,7 @@ my %text_sections = (
      ".text" => 1,
      ".sched.text" => 1,
      ".spinlock.text" => 1,
+     ".irqentry.text" => 1,
 );
 
 $objdump = "objdump" if ((length $objdump) == 0);