]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
objtool: Optimize layout of struct symbol
authorThomas Weißschuh <linux@weissschuh.net>
Tue, 27 Dec 2022 16:01:02 +0000 (16:01 +0000)
committerJosh 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

index 1c90f0ac0d531568e03f59a9f10751cfaaf497fc..ad0024da262b067128abc3507f21e150dbd74310 100644 (file)
@@ -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;