mbox series

[v2,0/1] KVM: s390: pv: fix asynchronous teardown for small VMs

Message ID 20230421085036.52511-1-imbrenda@linux.ibm.com (mailing list archive)
Headers show
Series KVM: s390: pv: fix asynchronous teardown for small VMs | expand

Message

Claudio Imbrenda April 21, 2023, 8:50 a.m. UTC
On machines without the Destroy Secure Configuration Fast UVC, the
topmost level of page tables is set aside and freed asynchronously
as last step of the asynchronous teardown.

Each gmap has a host_to_guest radix tree mapping host (userspace)
addresses (with 1M granularity) to gmap segment table entries (pmds).

If a guest is smaller than 2GB, the topmost level of page tables is the
segment table (i.e. there are only 2 levels). Replacing it means that
the pointers in the host_to_guest mapping would become stale and cause
all kinds of nasty issues.

This patch fixes the issue by disallowing asynchronous teardown for
guests with only 2 levels of page tables. Userspace should (and already
does) try using the normal destroy if the asynchronous one fails.

Update s390_replace_asce so it refuses to replace segment type ASCEs.

v1->v2:
After talking with Marc, I decided to throw away most of the patch and
instead simply refuse to prepare for asynchronous teardown if the VM has a
segment type ASCE.


Claudio Imbrenda (1):
  KVM: s390: pv: fix asynchronous teardown for small VMs

 arch/s390/kvm/pv.c  | 5 +++++
 arch/s390/mm/gmap.c | 7 +++++++
 2 files changed, 12 insertions(+)