Messages in this thread Patch in this message | | | Date | Wed, 22 Oct 2008 14:43:20 -0400 | From | Steven Rostedt <> | 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 --
| |