summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteven Rostedt2011-04-13 01:06:39 +0200
committerSteven Rostedt2011-05-17 16:41:52 +0200
commit5f9b93c39239507d2af03f79c8b0df9ebb9be768 (patch)
tree268541155d12f0a400f22c18ce93f2efd0335020
parentkbuild/recordmcount: Add RECORDMCOUNT_WARN to warn about mcount callers (diff)
downloadkernel-qcow2-linux-5f9b93c39239507d2af03f79c8b0df9ebb9be768.tar.gz
kernel-qcow2-linux-5f9b93c39239507d2af03f79c8b0df9ebb9be768.tar.xz
kernel-qcow2-linux-5f9b93c39239507d2af03f79c8b0df9ebb9be768.zip
ftrace: Avoid recording mcount on .init sections directly
The init and exit sections should not be traced and adding a call to mcount to them is a waste of text and instruction cache. Have the macro section attributes include notrace to ignore these functions for tracing from the build. Link: http://lkml.kernel.org/r/20110421023738.953028219@goodmis.org Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
-rw-r--r--include/linux/init.h14
1 files changed, 7 insertions, 7 deletions
diff --git a/include/linux/init.h b/include/linux/init.h
index 577671c55153..9146f39cdddf 100644
--- a/include/linux/init.h
+++ b/include/linux/init.h
@@ -79,29 +79,29 @@
#define __exitused __used
#endif
-#define __exit __section(.exit.text) __exitused __cold
+#define __exit __section(.exit.text) __exitused __cold notrace
/* 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
+#define __devexit __section(.devexit.text) __exitused __cold notrace
#define __devexitdata __section(.devexit.data)
#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
+#define __cpuexit __section(.cpuexit.text) __exitused __cold notrace
#define __cpuexitdata __section(.cpuexit.data)
#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
+#define __memexit __section(.memexit.text) __exitused __cold notrace
#define __memexitdata __section(.memexit.data)
#define __memexitconst __section(.memexit.rodata)