projects
/
linux.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
8045b8f
)
objtool: Optimize layout of struct symbol
author
Thomas Weißschuh
<linux@weissschuh.net>
Tue, 27 Dec 2022 16:01:02 +0000
(16:01 +0000)
committer
Josh Poimboeuf
<jpoimboe@kernel.org>
Wed, 1 Feb 2023 17:15:24 +0000
(09:15 -0800)
Reduce the size of struct symbol on x86_64 from 208 to 200 bytes.
This structure is allocated a lot and never freed.
This reduces maximum memory usage while processing vmlinux.o from
2919716
KB to
2917988
KB (-0.5%) on my notebooks "localmodconfig".
Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
Link:
https://lore.kernel.org/r/20221216-objtool-memory-v2-6-17968f85a464@weissschuh.net
Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org>
tools/objtool/include/objtool/elf.h
patch
|
blob
|
history
diff --git
a/tools/objtool/include/objtool/elf.h
b/tools/objtool/include/objtool/elf.h
index 1c90f0ac0d531568e03f59a9f10751cfaaf497fc..ad0024da262b067128abc3507f21e150dbd74310 100644
(file)
--- a/
tools/objtool/include/objtool/elf.h
+++ b/
tools/objtool/include/objtool/elf.h
@@
-50,12
+50,11
@@
struct symbol {
GElf_Sym sym;
struct section *sec;
char *name;
- unsigned int idx;
- unsigned char bind, type;
+ unsigned int idx, len;
unsigned long offset;
- unsigned int len;
unsigned long __subtree_last;
struct symbol *pfunc, *cfunc, *alias;
+ unsigned char bind, type;
u8 uaccess_safe : 1;
u8 static_call_tramp : 1;
u8 retpoline_thunk : 1;