fs/coredump: Enable dynamic configuration of max file note size
authorAllen Pais <apais@linux.microsoft.com>
Mon, 6 May 2024 19:37:00 +0000 (19:37 +0000)
committerKees Cook <keescook@chromium.org>
Wed, 8 May 2024 16:53:00 +0000 (09:53 -0700)
commit4bbf9c3b53e637eb3a14ee27b996300ce88e752a
tree4b70ae015e1c77f89cca8b8991f054dd02a6a29c
parent10e29251be0e9f774910c1baaa89355859491769
fs/coredump: Enable dynamic configuration of max file note size

Introduce the capability to dynamically configure the maximum file
note size for ELF core dumps via sysctl.

Why is this being done?
We have observed that during a crash when there are more than 65k mmaps
in memory, the existing fixed limit on the size of the ELF notes section
becomes a bottleneck. The notes section quickly reaches its capacity,
leading to incomplete memory segment information in the resulting coredump.
This truncation compromises the utility of the coredumps, as crucial
information about the memory state at the time of the crash might be
omitted.

This enhancement removes the previous static limit of 4MB, allowing
system administrators to adjust the size based on system-specific
requirements or constraints.

Eg:
$ sysctl -a | grep core_file_note_size_limit
kernel.core_file_note_size_limit = 4194304

$ sysctl -n kernel.core_file_note_size_limit
4194304

$echo 519304 > /proc/sys/kernel/core_file_note_size_limit

$sysctl -n kernel.core_file_note_size_limit
519304

Attempting to write beyond the ceiling value of 16MB
$echo 17194304 > /proc/sys/kernel/core_file_note_size_limit
bash: echo: write error: Invalid argument

Signed-off-by: Vijay Nag <nagvijay@microsoft.com>
Signed-off-by: Allen Pais <apais@linux.microsoft.com>
Link: https://lore.kernel.org/r/20240506193700.7884-1-apais@linux.microsoft.com
Signed-off-by: Kees Cook <keescook@chromium.org>
fs/binfmt_elf.c
fs/coredump.c
include/linux/coredump.h