1
0
Fork 0
alistair23-linux/scripts
Steven Rostedt ffd618fa39 ftrace/recordmcount: Make ignored mcount calls into nops at compile time
There are sections that are ignored by ftrace for the function tracing because
the text is in a section that can be removed without notice. The mcount calls
in these sections are ignored and ftrace never sees them. The downside of this
is that the functions in these sections still call mcount. Although the mcount
function is defined in assembly simply as a return, this added overhead is
unnecessary.

The solution is to convert these callers into nops at compile time.
A better solution is to add 'notrace' to the section markers, but as new sections
come up all the time, it would be nice that they are delt with when they
are created.

Later patches will deal with finding these sections and doing the proper solution.

Thanks to H. Peter Anvin for giving me the right nops to use for x86.

Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: John Reiser <jreiser@bitwagon.com>
Link: http://lkml.kernel.org/r/20110421023738.237101176@goodmis.org
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
2011-05-16 14:43:32 -04:00
..
basic kbuild: Fix computing srcversion for modules 2011-03-13 15:59:58 -07:00
coccinelle scripts/coccinelle: update for compatability with Coccinelle 0.2.4 2010-12-03 12:27:01 +01:00
dtc Fix common misspellings 2011-03-31 11:26:23 -03:00
genksyms genksyms: Regenerate lexer and parser 2011-03-17 15:13:56 +01:00
kconfig kconfig: Avoid buffer underrun in choice input 2011-04-24 08:24:31 -07:00
ksymoops Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mod Merge branch 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6 2011-03-21 15:55:26 -07:00
package Fix common misspellings 2011-03-31 11:26:23 -03:00
rt-tester Fix common misspellings 2011-03-31 11:26:23 -03:00
selinux SELinux: Auto-generate security_is_socket_class 2011-03-03 15:19:43 -05:00
tracing tracing, perf: Convert the power tracer into an event tracer 2009-09-19 11:42:12 +02:00
.gitignore gitignore: add scripts/recordmcount 2010-11-25 15:49:50 +01:00
Kbuild.include kbuild: generate modules.builtin 2009-12-12 13:08:16 +01:00
Lindent scripts/Lindent: support gnu indent v2.2.10 2008-04-29 08:06:04 -07:00
Makefile KBuild: silence "'scripts/unifdef' is up to date." 2011-03-17 12:29:20 +01:00
Makefile.build kbuild: Add extra gcc checks 2011-03-09 15:35:35 +01:00
Makefile.clean kbuild: Really don't clean bounds.h and asm-offsets.h 2010-03-11 11:15:22 +01:00
Makefile.fwinst firmware: silence __fw_modbuild and __fw_modinst 'Nothing to be done' messages 2008-08-02 07:52:29 +01:00
Makefile.headersinst kbuild: drop unifdef-y support 2010-08-14 22:26:52 +02:00
Makefile.help Add a target to use the Coccinelle checker 2010-06-12 00:00:29 +02:00
Makefile.host kbuild: fix some minor typoes 2008-04-25 20:18:48 +02:00
Makefile.lib decompressors: add XZ decompressor module 2011-01-13 08:03:24 -08:00
Makefile.modbuiltin kbuild: Create output directory in Makefile.modbuiltin 2010-06-10 12:23:08 +02:00
Makefile.modinst Revert "kbuild: strip generated symbols from *.ko" 2009-01-14 21:38:20 +01:00
Makefile.modpost Fix common misspellings 2011-03-31 11:26:23 -03:00
bin2c.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
bloat-o-meter bloat-o-meter: include read-only data section in report 2011-03-22 17:44:17 -07:00
bootgraph.pl bootgraph: fix for use with dot symbols 2009-02-15 12:50:08 +01:00
checkincludes.pl checkincludes: fix perlcritic warnings 2010-03-07 21:19:57 +01:00
checkkconfigsymbols.sh checkkconfigsymbols.sh: Kconfig symbols sometimes have lowercase letters 2010-06-03 10:39:39 +02:00
checkpatch.pl Fix common misspellings 2011-03-31 11:26:23 -03:00
checkstack.pl scripts: improve checkstack 2010-03-07 21:19:09 +01:00
checksyscalls.sh checksyscalls: Fix stand-alone usage 2010-12-20 15:40:33 +01:00
checkversion.pl checkversion: perl cleanup 2010-03-07 21:22:56 +01:00
cleanfile scripts: Make cleanfile/cleanpatch warn about long lines 2007-07-16 21:15:50 +02:00
cleanpatch scripts: Make cleanfile/cleanpatch warn about long lines 2007-07-16 21:15:50 +02:00
coccicheck Coccinelle: Add contextual message 2010-10-28 00:32:23 +02:00
config kbuild: add numeric --set-val option to scripts/config 2010-12-15 15:44:31 +01:00
conmakehash.c Fix all -Wmissing-prototypes warnings in x86 defconfig 2009-09-23 07:39:28 -07:00
decodecode scripts: decodecode: remove bashisms 2010-06-04 10:26:35 +02:00
diffconfig kconfig: add diffconfig utility 2008-07-25 22:12:41 +02:00
export_report.pl export_report: fix perl warnings 2010-03-07 21:41:04 +01:00
extract-ikconfig scripts/extract-ikconfig: add xz compression support 2011-02-10 15:23:03 +01:00
gcc-goto.sh jump label: Fix GCC feature check when distcc is used 2010-09-24 09:12:25 +02:00
gcc-version.sh Remove bashisms from scripts 2009-06-09 22:37:54 +02:00
gcc-x86_32-has-stack-protector.sh stackprotector: fix multi-word cross-builds 2009-02-11 12:17:29 +01:00
gcc-x86_64-has-stack-protector.sh stackprotector: fix multi-word cross-builds 2009-02-11 12:17:29 +01:00
gen_initramfs_list.sh Fix common misspellings 2011-03-31 11:26:23 -03:00
get_maintainer.pl get_maintainer.pl: allow "K:" pattern tests to match non-patch text 2011-03-22 17:44:13 -07:00
gfp-translate scripts: fix gfp-translate for recent changes to gfp.h 2010-11-25 06:50:49 +09:00
headerdep.pl headerdep: perlcritic warning 2010-03-23 12:26:38 +01:00
headers.sh kbuild: introduce HDR_ARCH_LIST for headers_install_all 2010-12-14 22:16:19 +01:00
headers_check.pl headers_check: Fix warning text 2010-12-14 17:05:08 +01:00
headers_install.pl headers_install: check exit status of unifdef 2010-12-14 15:06:04 +01:00
kallsyms.c scripts/kallsyms: Enable error messages while hush up unnecessary warnings 2010-09-29 16:18:27 +02:00
kernel-doc Fix common misspellings 2011-03-31 11:26:23 -03:00
makelst kbuild: introduce ccflags-y, asflags-y and ldflags-y 2007-10-15 22:25:06 +02:00
markup_oops.pl Merge branch 'for-35' of git://repo.or.cz/linux-kbuild 2010-06-01 08:55:52 -07:00
mkcompile_h scripts/mkcompile_h: don't test for hardcoded paths 2010-02-02 14:33:56 +01:00
mkmakefile fixes for using make 3.82 2010-08-17 11:47:40 +02:00
mksysmap Revert "kbuild: strip generated symbols from *.ko" 2009-01-14 21:38:20 +01:00
mkuboot.sh mkuboot.sh: Fail if mkimage is missing 2011-01-07 14:31:01 +01:00
mkversion Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
module-common.lds linker script: throw away .discard section 2009-06-24 15:13:38 +09:00
namespace.pl Revert "namespace: add source file location exceptions" 2010-10-28 00:59:56 +02:00
patch-kernel bugfix for scripts/patch-kernel in 2.6 sublevel stepping 2008-08-06 22:11:33 +02:00
pnmtologo.c fbdev: work around old compiler bug 2009-06-30 18:55:59 -07:00
profile2linkerlist.pl profile2linkerlist: fix perl warnings 2010-03-07 21:39:33 +01:00
recordmcount.c ftrace/recordmcount: Make ignored mcount calls into nops at compile time 2011-05-16 14:43:32 -04:00
recordmcount.h ftrace/recordmcount: Make ignored mcount calls into nops at compile time 2011-05-16 14:43:32 -04:00
recordmcount.pl ftrace: Add .kprobe.text section to whitelist for recordmcount.c 2011-05-16 14:42:15 -04:00
setlocalversion setlocalversion: update mercurial tag parsing 2011-01-15 00:40:44 +01:00
show_delta scripts: change scripts to use system python instead of env 2010-02-02 14:33:56 +01:00
tags.sh Merge branch 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6 2011-03-20 18:13:09 -07:00
unifdef.c unifdef: update to upstream version 2.5 2011-01-22 15:50:59 +01:00
ver_linux Remove bashisms from scripts 2009-06-09 22:37:54 +02:00
xz_wrap.sh decompressors: add XZ decompressor module 2011-01-13 08:03:24 -08:00