[PATCH v2 0/8] reduce maximum memory usage

From: Thomas Weißschuh
Date: Tue Dec 27 2022 - 11:03:29 EST


The processing of vmlinux.o with objtool is the most memory-intensive step
of a kernel build. By reducing the maximum memory usage here we can reduce
the maximum memory usage of the whole kernel build.
Therefore memory pressure on memory starved machines is relieved during
kernel builds and the build is faster as less swapping has to occur.

To: Josh Poimboeuf <jpoimboe@xxxxxxxxxx>
To: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Signed-off-by: Thomas Weißschuh <linux@xxxxxxxxxxxxxx>

---
Changes in v2:
- Warn on out of range values for reloc->type
- Also reduce size of struct special_alt
- Note: v1 did not make it to the lists, only to individual recipients

---
Thomas Weißschuh (8):
objtool: make struct entries[] static and const
objtool: make struct check_options static
objtool: allocate multiple structures with calloc()
objtool: introduce function elf_reloc_set_type
objtool: reduce memory usage of struct reloc
objtool: optimize layout of struct symbol
objtool: optimize layout of struct special_alt
objtool: explicitly cleanup resources on success

tools/objtool/builtin-check.c | 4 ++-
tools/objtool/check.c | 6 ++--
tools/objtool/elf.c | 56 +++++++++++++++++++--------------
tools/objtool/include/objtool/builtin.h | 2 --
tools/objtool/include/objtool/elf.h | 13 +++++---
tools/objtool/include/objtool/special.h | 2 +-
tools/objtool/special.c | 6 ++--
7 files changed, 51 insertions(+), 38 deletions(-)
---
base-commit: 1b929c02afd37871d5afb9d498426f83432e71c2
change-id: 20221216-objtool-memory-06db3b8bf111

Best regards,
--
Thomas Weißschuh <linux@xxxxxxxxxxxxxx>