** Description changed: + SRU Justification: + ================== + + [Impact] + + * If running KVM with nesting support (e.g. 'kvm.nested=1' on the kernel + command line), the shadow page table code will produce too many entries + in the shadow code. + + * The below mentioned upstream fix will prevent the entries from being + piled up, by checking for existing entries at insert time. + + * This measurably reduces the list length and is faster than traversing + the list at shutdown time only. + + [Fix] + + * a06afe8383080c630a7a528b8382fc6bb4925b61 a06afe838308 + "KVM: s390: vsie/gmap: reduce gmap_rmap overhead" + + [Test Plan] + + * A IBM zSystems or LinuxONE LPAR on a z13 or newer is needed. + + * Ubuntu focal, impish or jammy needs to be installed + and the Ubuntu LPAR setup as (1st level) KVM host, + allowing nested virtualization. + + * Now setup one (or more) KVM virtual machines, + with similar Ubuntu releases, + and define one or more of them again as (2nd level) KVM host. + + * Define several KVM virtual machines on this (2nd level) KVM host + in a memory constraint fashion, + so that a lot of memory mapping is caused. + + * Let such a system run for a while under load. + + * Now shutdown one (or more) 2nd level VMs and notice the + time it takes. + + * With the patch in place this time should be considerably + quicker than without. + + * The result is reduced mapping (gmap_rmap) overhead, + less danger of leaking memory + and a better responding system. + + [Where problems could occur] + + * In case wrong entries are freed up this will harm the virtual + memory management and may even lead to crashes. + + * In case the pointer handling is not done properly, + again crashes may occur. + + * But with net just five new lines the patch is pretty short, readable + and the modifications traceable in arch/s390/mm/gmap.c only. + + * The changes are limited to s390/mm only, + hence don't affect other architectures. + + [Other Info] + + * The commit was upstream accepted in v5.18-rc6. + + * Since the planned target kernel for kinetic is 5.19, + the kinetic kernel does not need to be patched. + + * Hence the SRUs are for jammy, impish and focal. + + __________ + KVM nesting support consumes too much memory - - When running KVM with nesting support (kvm.nested=1 on the kernel command line) the shadow page table code will produce too many entries in the shadow code. + + When running KVM with nesting support (kvm.nested=1 on the kernel + command line) the shadow page table code will produce too many entries + in the shadow code. There is an upstream fix that will prevent the majority of the problem: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a06afe8383080c630a7a528b8382fc6bb4925b61 - The fix is needed for 20.04 and 22.04.
-- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1974017 Title: [UBUNTU 20.04] KVM nesting support leaks too much memory, might result in stalls during cleanup To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu-z-systems/+bug/1974017/+subscriptions -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
