** Description changed: - Under memory pressure, my VM locks up. This has been reported upstream - though I don't know how far any solution has progressed. + == Justification == + When using z3fold and zswap on a VM under overcommitted memory stress, + z3fold will complains about an "unknown buddy id 0" and fail to get a + pointer to the mapped allocation in z3fold_map(). + + z3fold: unknown buddy id 0 + WARNING: CPU: 2 PID: 1584 at mm/z3fold.c:971 z3fold_zpool_map+0xce/0x100 [z3fold] + + And it will leads to a null pointer dereference in zswap + + BUG: unable to handle kernel NULL pointer dereference at 0000000000000000 + PGD 0 P4D 0 + Oops: 0000 [#1] SMP PTI + CPU: 2 PID: 1584 Comm: stress Tainted: G W 4.18.0-17-generic #18-Ubuntu + Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.11.1-1ubuntu1 04/01/2014 + RIP: 0010:zswap_writeback_entry+0x4d/0x360 + + == Fix == + ca0246bb (z3fold: fix possible reclaim races) + + This patch has already in Disco, and can be cherry-picked into B/C. + Not needed for Xenial and older kernels as z3fold is not supported. + + == Test == + Test kernels for Bionic / Cosmic could be found here: + http://people.canonical.com/~phlin/kernel/lp-1814874-z3fold-zswap/Bionic/ + http://people.canonical.com/~phlin/kernel/lp-1814874-z3fold-zswap/Cosmic/ + + This issue can be reproduced easily in a KVM with the following setup: + * 8G disk, 4G RAM, 4 CPUs + * 1G swap + * "zswap.enabled=1 zswap.zpool=z3fold zswap.max_pool_percent=7" added to grub + * "z3fold" module added into /etc/initramfs-tools/modules + + Stress it with two childs running: + * stress --vm-bytes 512M --vm 4 --vm-hang 3 + * stress --vm-bytes 512M --vm 4 --vm-hang 7 + + The VM is expected to crash within 5 minutes. + + With the patched kernel, the VM can withstand this stress for over an + hour with crashing with this issue + + == Regression potential == + Small. + + Fix limited to z3fold. User needs to enable it explicitly for this + feature. + + + == Original Bug Report == + Under memory pressure, my VM locks up. This has been reported upstream though I don't know how far any solution has progressed. https://bugzilla.kernel.org/show_bug.cgi?id=201603 Feb 6 07:15:42 vps632258 kernel: [151336.450064] z3fold: unknown buddy id 0 Feb 6 07:15:42 vps632258 kernel: [151336.454450] BUG: unable to handle kernel NULL pointer dereference at 0000000000000008 The little bit of log I managed to salvage is attached. This has happened to two identical VMs. Unusually it has not occurred on a third VM which is configured the same but has less RAM (fingers crossed it won't). Irrelevant information: I thought the lock-ups were due to me using a BTRFS filesystem, however I swapped over to NILFS2 and this still occurs. The only difference seems to be that I am now able to grab some of the kernel output. ProblemType: Bug DistroRelease: Ubuntu 18.04 Package: linux-image-4.18.0-14-generic 4.18.0-14.15~18.04.1 ProcVersionSignature: Ubuntu 4.18.0-14.15~18.04.1-generic 4.18.20 Uname: Linux 4.18.0-14-generic x86_64 ApportVersion: 2.20.9-0ubuntu7.5 Architecture: amd64 Date: Wed Feb 6 10:55:05 2019 ProcEnviron: - TERM=xterm - PATH=(custom, no user) - XDG_RUNTIME_DIR=<set> - LANG=en_GB.UTF-8 - SHELL=/bin/bash + TERM=xterm + PATH=(custom, no user) + XDG_RUNTIME_DIR=<set> + LANG=en_GB.UTF-8 + SHELL=/bin/bash SourcePackage: linux-signed-hwe UpgradeStatus: No upgrade log present (probably fresh install)
-- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1814874 Title: NULL pointer dereference when using z3fold and zswap To manage notifications about this bug go to: https://bugs.launchpad.net/linux/+bug/1814874/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs