[SRU][J][I][F][PATCH 0/1] KVM nesting support leaks too much memory, might result in stalls during cleanup (LP: 1974017)
frank.heimes at canonical.com
frank.heimes at canonical.com
Thu May 19 06:39:22 UTC 2022
BugLink: https://bugs.launchpad.net/bugs/1974017
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.
Christian Borntraeger (1):
KVM: s390: vsie/gmap: reduce gmap_rmap overhead
arch/s390/mm/gmap.c | 7 +++++++
1 file changed, 7 insertions(+)
--
2.25.1
More information about the kernel-team
mailing list