diff options
author | Masahiro Yamada <masahiroy@kernel.org> | 2022-09-26 18:02:29 +0900 |
---|---|---|
committer | Masahiro Yamada <masahiroy@kernel.org> | 2022-10-03 03:51:58 +0900 |
commit | d32b55f4bb43466bc6cdd98a00f8a600bbf7e8ec (patch) | |
tree | db13a5f1130b72765fce5625e6db491cab057808 | |
parent | aa221f2ea58655f5360e7b0c6fe5482f7c41855e (diff) | |
download | linux-d32b55f4bb43466bc6cdd98a00f8a600bbf7e8ec.tar.gz linux-d32b55f4bb43466bc6cdd98a00f8a600bbf7e8ec.tar.bz2 linux-d32b55f4bb43466bc6cdd98a00f8a600bbf7e8ec.zip |
kallsyms: ignore __kstrtab_* and __kstrtabns_* symbols
Every EXPORT_SYMBOL creates __kstrtab_* and __kstrtabns_*, which
consumes 15-20% of the kallsyms entries.
For example, on the system built from the x86_64 defconfig,
$ cat /proc/kallsyms | wc
129527 388581 5685465
$ cat /proc/kallsyms | grep __kstrtab | wc
23489 70467 1187932
We already ignore __crc_* symbols populated by EXPORT_SYMBOL, so it
should be fine to ignore __kstrtab_* and __kstrtabns_* as well.
This makes vmlinux a bit smaller.
$ size vmlinux.before vmlinux.after
text data bss dec hex filename
22785374 8559694 1413328 32758396 1f3da7c vmlinux.before
22785374 8137806 1413328 32336508 1ed6a7c vmlinux.after
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
-rwxr-xr-x | scripts/mksysmap | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/scripts/mksysmap b/scripts/mksysmap index 75f3dfd1c156..16a08b8ef2f8 100755 --- a/scripts/mksysmap +++ b/scripts/mksysmap @@ -43,6 +43,8 @@ # $ - local symbols for ARM, MIPS, etc. # .L - local labels, .LBB,.Ltmpxxx,.L__unnamed_xx,.LASANPC, etc. # __crc_ - modversions +# __kstrtab_ - EXPORT_SYMBOL (symbol name) +# __kstrtabns_ - EXPORT_SYMBOL (namespace) # # Ignored symbols: # L0 - for LoongArch? @@ -52,5 +54,7 @@ $NM -n $1 | grep -v \ -e ' \$' \ -e ' \.L' \ -e ' __crc_' \ + -e ' __kstrtab_' \ + -e ' __kstrtabns_' \ -e ' L0$' \ > $2 |