Public bug reported:
This is the Ubuntu version of the Proxmox bug shown here:
https://bugzilla.proxmox.com/show_bug.cgi?id=7813
I am presenting it here because it also affects Ubuntu Linux 26 LTS. The
Proxmox bug report is probably the best source of raw information about
this bug.
The kernel labels several GB of pageblocks `MIGRATE_CMA` at boot even
though no CMA region exists. Ram gets labeled into a non-existent CMA
until OOM. This results of OOM errors when there is plenty of RAM
available. This commonly manifests itself as OOM kills of containers on
high-RAM systems.
If your qemu containers getting OOM killed when the host needs a small
amount of ram for a common operation, run "cat /proc/meminfo | grep -i
cma"
You should get:
CmaTotal: 0 kB
CmaFree: 0 kB
If you get (example):
CmaTotal: 0 kB
CmaFree: 116466 kB
you are suffering from this bug. Free CMA should never be larger than
total CMA.
Mitigation:
run: grep KEXEC_HANDOVER_ENABLE_DEFAULT /boot/config-$(uname -r)`
If you see:
CONFIG_KEXEC_HANDOVER_ENABLE_DEFAULT=y
you can turn off kho to mitigate this bug.
Put the following in /etc/default/grub.d
# Fix for CMA bug that allocates RAM to CMA even though CMA is 0 k
GRUB_CMDLINE_LINUX_DEFAULT="$GRUB_CMDLINE_LINUX_DEFAULT kho=no"
run sudo update-grub and reboot
This might only affect systems with large amounts of RAM. I don't have
the resources to check.
Mandatory info:
lsb_release -rd
Description: Ubuntu 26.04 LTS
Release: 26.04
uname -r
7.0.0-29-generic
** Affects: ubuntu
Importance: Undecided
Status: New
** Tags: cma oom qemu
** Description changed:
This is the Ubuntu version of the Proxmox bug shown here:
https://bugzilla.proxmox.com/show_bug.cgi?id=7813
I am presenting it here because it also affects Ubuntu Linux 26 LTS. The
Proxmox bug report is probably the best source of raw information about
this bug.
The kernel labels several GB of pageblocks `MIGRATE_CMA` at boot even
though no CMA region exists. Ram gets labeled into a non-existent CMA
until OOM. This results of OOM errors when there is plenty of RAM
available. This commonly manifests itself as OOM kills of containers on
high-RAM systems.
If your qemu containers getting OOM killed when the host needs a small
amount of ram for a common operation, run "cat /proc/meminfo | grep -i
cma"
You should get:
CmaTotal: 0 kB
CmaFree: 0 kB
- If you get (example):
+ If you get (example):
+ CmaTotal: 0 kB
CmaFree: 116466 kB
you are suffering from this bug. Free CMA should never be larger than
total CMA.
-
- Mitigation:
+ Mitigation:
run: grep KEXEC_HANDOVER_ENABLE_DEFAULT /boot/config-$(uname -r)`
If you see:
CONFIG_KEXEC_HANDOVER_ENABLE_DEFAULT=y
you can turn off kho to mitigate this bug.
Put the following in /etc/default/grub.d
# Fix for CMA bug that allocates RAM to CMA even though CMA is 0 k
GRUB_CMDLINE_LINUX_DEFAULT="$GRUB_CMDLINE_LINUX_DEFAULT kho=no"
run sudo update-grub and reboot
This might only affect systems with large amounts of RAM. I don't have
the resources to check.
Mandatory info:
lsb_release -rd
Description: Ubuntu 26.04 LTS
Release: 26.04
uname -r
7.0.0-29-generic
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2163395
Title:
Phantom MIGRATE_CMA pageblocks on Ubuntu kernels cause spurious OOM
kills (host has no CMA region)
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+bug/2163395/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs