Include the memory overhead cost of cryptsetup when estimating the memory requirement for LUKS-encrypted target
Currently, "kdumpctl estimate" neglects the memory overhead cost of
cryptsetup itself. Unfortunately, there is no golden formula to
calculate the overhead cost [1]. So estimate the overhead cost as 50M
for aarch64 and 20M for other architectures based on the following
empirical data,
| Overhead (M) | OS | arch |
| ------------ | ----------------------------------------- | ------- |
| 14.1 | RHEL-9.2.0-20220829.d.1 | ppc64le |
| 14 | Fedora-37-20220830.n.0 Everything ppc64le | ppc64le |
| 17 | Fedora 36 | ppc64le |
| 8.8 | Fedora 35 | s390x |
| 10.1 | Fedora-Rawhide-20220829.n.0, fc38 | s390x |
| 42 | Fedora-Rawhide-20220829.n.0, fc38 | arch64 |
| 40 | F35 | arch64 |
| 42 | F36 | arch64 |
| 42 | Fedora-Rawhide-20220901.n.0 | arch64 |
| 10 | F35 | x86_64 |
| 10 | Fedora-Rawhide-20220901.n.0 | x86_64 |
| 11 | Fedora-Rawhide-20220901.n.0 | x86_64 |
[1] https://lore.kernel.org/cryptsetup/20220616044339.376qlipk5h2omhx2@Rk/T/#u
Fixes: e9e6a2c
("kdumpctl: Add kdumpctl estimate")
Signed-off-by: Coiby Xu <coxu@redhat.com>
Reviewed-by: Philipp Rudo <prudo@redhat.com>
This commit is contained in:
parent
50a8461fc7
commit
6ce4b85bb3
14
kdumpctl
14
kdumpctl
@ -1193,7 +1193,7 @@ do_estimate()
|
|||||||
local kdump_mods
|
local kdump_mods
|
||||||
local -A large_mods
|
local -A large_mods
|
||||||
local baseline
|
local baseline
|
||||||
local kernel_size mod_size initrd_size baseline_size runtime_size reserved_size estimated_size recommended_size
|
local kernel_size mod_size initrd_size baseline_size runtime_size reserved_size estimated_size recommended_size _cryptsetup_overhead
|
||||||
local size_mb=$((1024 * 1024))
|
local size_mb=$((1024 * 1024))
|
||||||
|
|
||||||
setup_initrd
|
setup_initrd
|
||||||
@ -1247,7 +1247,17 @@ do_estimate()
|
|||||||
break
|
break
|
||||||
done
|
done
|
||||||
done
|
done
|
||||||
[[ $crypt_size -ne 0 ]] && echo -e "Encrypted kdump target requires extra memory, assuming using the keyslot with maximum memory requirement\n"
|
|
||||||
|
if [[ $crypt_size -ne 0 ]]; then
|
||||||
|
if [[ $(uname -m) == aarch64 ]]; then
|
||||||
|
_cryptsetup_overhead=50
|
||||||
|
else
|
||||||
|
_cryptsetup_overhead=20
|
||||||
|
fi
|
||||||
|
|
||||||
|
crypt_size=$((crypt_size + _cryptsetup_overhead * size_mb))
|
||||||
|
echo -e "Encrypted kdump target requires extra memory, assuming using the keyslot with maximum memory requirement\n"
|
||||||
|
fi
|
||||||
|
|
||||||
estimated_size=$((kernel_size + mod_size + initrd_size + runtime_size + crypt_size))
|
estimated_size=$((kernel_size + mod_size + initrd_size + runtime_size + crypt_size))
|
||||||
if [[ $baseline_size -gt $estimated_size ]]; then
|
if [[ $baseline_size -gt $estimated_size ]]; then
|
||||||
|
Loading…
Reference in New Issue
Block a user