lkml.org 
[lkml]   [2008]   [Oct]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
Subject[PATCH 07/11] ftrace: do not trace init sections
The recordmcount script is now robust enough not to process any sections
but the .text section. But the gcc compiler still adds a call to mcount.

Note: The function mcount looks like:

ENTRY(mcount)
ret
END(mcount)

Which means the overhead is just a return.

This patch adds notrace to the init sections to not even bother calling
mcount (which simply returns).


Signed-off-by: Steven Rostedt <srostedt@redhat.com>
---
include/linux/init.h | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)

Index: linux-compile.git/include/linux/init.h
===================================================================
--- linux-compile.git.orig/include/linux/init.h 2008-10-22 11:49:44.000000000 -0400
+++ linux-compile.git/include/linux/init.h 2008-10-22 12:27:19.000000000 -0400
@@ -75,15 +75,15 @@


#ifdef MODULE
-#define __exitused
+#define __exitused notrace
#else
-#define __exitused __used
+#define __exitused __used notrace
#endif

#define __exit __section(.exit.text) __exitused __cold

/* Used for HOTPLUG */
-#define __devinit __section(.devinit.text) __cold
+#define __devinit __section(.devinit.text) __cold notrace
#define __devinitdata __section(.devinit.data)
#define __devinitconst __section(.devinit.rodata)
#define __devexit __section(.devexit.text) __exitused __cold
@@ -91,7 +91,7 @@
#define __devexitconst __section(.devexit.rodata)

/* Used for HOTPLUG_CPU */
-#define __cpuinit __section(.cpuinit.text) __cold
+#define __cpuinit __section(.cpuinit.text) __cold notrace
#define __cpuinitdata __section(.cpuinit.data)
#define __cpuinitconst __section(.cpuinit.rodata)
#define __cpuexit __section(.cpuexit.text) __exitused __cold
@@ -99,7 +99,7 @@
#define __cpuexitconst __section(.cpuexit.rodata)

/* Used for MEMORY_HOTPLUG */
-#define __meminit __section(.meminit.text) __cold
+#define __meminit __section(.meminit.text) __cold notrace
#define __meminitdata __section(.meminit.data)
#define __meminitconst __section(.meminit.rodata)
#define __memexit __section(.memexit.text) __exitused __cold
--


\
 
 \ /
  Last update: 2008-10-22 20:57    [W:0.297 / U:0.104 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site