all: Add/improve config options

As part of the upstreaming effort, we need to add some extra tunings
in the package. Especially related to GRUB autosetting and Pstore
memory settings:

(a) Currently the ramoops record size and memory amount are hardcoded
in the kdump-load script - we change it here, by having these settings
on the kdump config file;

(b) GRUB autosetting is pretty simple and everything is hardcoded.
We hereby add a bunch of configurable settings in the kdump conf file,
in order we can customize the GRUB handling, to make it work in both
Arch and SteamOS.

While at it, fixed some related comments and renamed some variables,
usually dropping KDUMP_ name when it applies to pstore as well.
Also, bumped the crashkernel memory from 192M to 256M - recent kernels
demand more memory, let's play safe.

Signed-off-by: Guilherme G. Piccoli <gpiccoli@igalia.com>
This commit is contained in:
Guilherme G. Piccoli
2022-11-25 14:10:04 -03:00
parent 7f212ffb73
commit ecbf6f298f
4 changed files with 100 additions and 72 deletions

View File

@ -9,33 +9,55 @@
# file, it's required to re-create the kdump minimal initramfs by running:
# /usr/lib/kdump/kdump-load.sh initrd
#
# Mount-related options - the DEVNODE points to the /home directory link;
# this is used to derive the numerical devnode for kdump, since the link
# is not present so early in the system boot. The KDUMP_FOLDER will be
# created if doesn't exist. The KDUMP_MNT is just a temporary file that
# carries the mounted folder path across boot-time scripts.
#
# Pstore-RAM settings
# If USE_PSTORE_RAM is set to 1, Kdump won't be loaded. Instead, the Pstore
# RAM backend will be configured. In order to have success, this operation
# relies in having an available RAM buffer on /proc/iomem with at least
# PSTORE_MEM_AMOUNT (decimal, in MB) in size. Also, kernel must be able to
# allocate a contiguous memory amount of PSTORE_RECORD_SZ (decimal, MB).
USE_PSTORE_RAM=1
PSTORE_MEM_AMOUNT=5242880
PSTORE_RECORD_SZ=2097152
#
#
# Mount-related options
# MOUNT_DEVNODE is the desired mount-point unique link in the /dev/disk
# directory link; this is used to derive the numerical devnode for kdump,
# since the link is not present so early in the system boot. MOUNT_FOLDER
# should live in the filesystem of the devnode (and will be created if
# doesn't exist); this is the place in which both pstore and kdump logs
# will be stored, as well as the kdump initrd and some ancillary data.
# Finally, MNT_TMP is just a temporary file that carries the full path
# of the mounted folder across boot-time scripts.
MOUNT_DEVNODE="/dev/disk/by-partsets/shared/home"
KDUMP_FOLDER="/.steamos/offload/var/kdump"
KDUMP_MNT="/tmp/kdump.mnt"
# Kdump controlling settings - for now we don't have network/iscsi dumps, only
# local storage dumps. If FULL_COREDUMP is !=0, we collect a full compressed
# vmcore, which might require a lot of disk space. The *_CMD settings refer
# to tunings on makedumpfile - we rely on zstd compression and maximum page
# exclusion for the full vmcore, mimic'ing Debian kdump. Finally, GRUB_AUTOSET
# determines if the kdump tooling should try to automatically set grub.cfg in
# order to reserve memory for kdump (if needed, i.e., when pstore is not in
# use) - keep it as '1' for enabling the mechanism (this is the default).
MOUNT_FOLDER="/.steamos/offload/var/kdump"
MNT_TMP="/tmp/.kdump_load.mnt"
#
#
# Kdump controlling settings
# Currently we only do local storage log collection (no network/iscsi dumps).
# If FULL_COREDUMP is !=0, we collect a full compressed vmcore, which might
# require a lot of disk space. The MAKEDUMPFILE_*_CMD settings refer to
# tunings on makedumpfile - we rely on zstd compression and maximum page
# exclusion for the full vmcore, mimic'ing Debian kdump
FULL_COREDUMP=0
MAKEDUMPFILE_COREDUMP_CMD="-z -d 31"
MAKEDUMPFILE_DMESG_CMD="--dump-dmesg"
#
#
# GRUB-related settings
# GRUB_AUTOSET determines if the pstore/kdump tooling should try to
# automatically set grub.cfg in order to reserve memory for kdump (if
# needed, i.e., when pstore is not in use) - keep it as '1' for enabling
# the mechanism (this is the default). GRUB_BOOT_FILE is the full path of
# grub.cfg file - this is used in the config update step plus for syncing
# purposes. GRUB_CFG_FILE is the config file we edit in order to add/remove
# the crashkernel parameter. Finally, GRUB_CMDLINE holds the change to be
# made in the grub config file, specially the crashkernel memory reservation
# (notice that a trailing space is required in this line, so we avoid
# messing with other kernel parameters).
GRUB_AUTOSET=1
# Pstore-RAM setting - if enabled, Kdump won't be loaded, instead the Pstore
# RAM backend will be configured. In order to have success, this operation
# relies in having an available RAM buffer on /proc/iomem with at least 5MiB
# in size.
USE_PSTORE_RAM=1
GRUB_BOOT_FILE="/efi/EFI/steamos/grub.cfg"
GRUB_CFG_FILE="/etc/default/grub"
GRUB_CMDLINE="crashkernel=256M crash_kexec_post_notifiers "