From: Claudio Imbrenda <imbrenda@linux.ibm.com>
To: "Marc Hartmayer" <mhartmay@linux.ibm.com>
Cc: kvm@vger.kernel.org, borntraeger@de.ibm.com, nrb@linux.ibm.com,
nsg@linux.ibm.com, frankja@linux.ibm.com,
kvm390-list@tuxmaker.boeblingen.de.ibm.com,
linux-s390@vger.kernel.org
Subject: Re: [PATCH v1 1/1] KVM: s390: pv: fix asynchronous teardown for small VMs
Date: Fri, 21 Apr 2023 09:35:55 +0200 [thread overview]
Message-ID: <20230421093555.2eba4dd1@p-imbrenda> (raw)
In-Reply-To: <87a5z2ttqv.fsf@li-1de7cd4c-3205-11b2-a85c-d27f97db1fe1.ibm.com>
On Thu, 20 Apr 2023 18:15:36 +0200
"Marc Hartmayer" <mhartmay@linux.ibm.com> wrote:
> Claudio Imbrenda <imbrenda@linux.ibm.com> writes:
>
> > 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 synchronously destroying all guests with
> > only 2 levels of page tables in kvm_s390_pv_set_aside. This will
> > speed up the process and avoid the issue altogether.
> >
> > Update s390_replace_asce so it refuses to replace segment type ASCEs.
> >
> > Signed-off-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
> > Fixes: fb491d5500a7 ("KVM: s390: pv: asynchronous destroy for reboot")
> > ---
> > arch/s390/kvm/pv.c | 35 ++++++++++++++++++++---------------
> > arch/s390/mm/gmap.c | 7 +++++++
> > 2 files changed, 27 insertions(+), 15 deletions(-)
> >
> > diff --git a/arch/s390/kvm/pv.c b/arch/s390/kvm/pv.c
> > index e032ebbf51b9..ceb8cb628d62 100644
> > --- a/arch/s390/kvm/pv.c
> > +++ b/arch/s390/kvm/pv.c
> > @@ -39,6 +39,7 @@ struct pv_vm_to_be_destroyed {
> > u64 handle;
> > void *stor_var;
> > unsigned long stor_base;
> > + bool small;
>
> I would rather use a more verbose variable name (maybe ‘lower_2g‘
lower_2g would mean that there is more above 2g, but in this case the VM
is smaller than 2g (which is the whole point)
> accordingly to the `kvm_s390_destroy_lower_2g` function name or even
> better something indicating the actual implications).
>
> At least, I would add a comment what ‘small‘ means and the implications
I'll add a comment
> of it.
>
> […snip]
>
next prev parent reply other threads:[~2023-04-21 7:40 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-20 16:01 [PATCH v1 1/1] KVM: s390: pv: fix asynchronous teardown for small VMs Claudio Imbrenda
2023-04-20 16:15 ` Marc Hartmayer
2023-04-21 7:35 ` Claudio Imbrenda [this message]
2023-04-21 8:04 ` Janosch Frank
2023-04-21 8:17 ` Claudio Imbrenda
2023-04-21 8:07 ` Christian Borntraeger
2023-04-21 8:17 ` Claudio Imbrenda
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230421093555.2eba4dd1@p-imbrenda \
--to=imbrenda@linux.ibm.com \
--cc=borntraeger@de.ibm.com \
--cc=frankja@linux.ibm.com \
--cc=kvm390-list@tuxmaker.boeblingen.de.ibm.com \
--cc=kvm@vger.kernel.org \
--cc=linux-s390@vger.kernel.org \
--cc=mhartmay@linux.ibm.com \
--cc=nrb@linux.ibm.com \
--cc=nsg@linux.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox