All of lore.kernel.org
 help / color / mirror / Atom feed
From: Claudio Imbrenda <imbrenda@linux.ibm.com>
To: Janosch Frank <frankja@linux.ibm.com>
Cc: kvm@vger.kernel.org, cohuck@redhat.com, borntraeger@de.ibm.com,
	thuth@redhat.com, pasic@linux.ibm.com, david@redhat.com,
	linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 01/13] KVM: s390: pv: avoid stall notifications for some UVCs
Date: Thu, 29 Jul 2021 14:52:04 +0200	[thread overview]
Message-ID: <20210729145204.2d8c1430@p-imbrenda> (raw)
In-Reply-To: <6bbeded3-ef94-6c83-f093-796d76b70792@linux.ibm.com>

On Thu, 29 Jul 2021 11:58:39 +0200
Janosch Frank <frankja@linux.ibm.com> wrote:

> On 7/28/21 4:26 PM, Claudio Imbrenda wrote:
> > Improve make_secure_pte to avoid stalls when the system is heavily
> > overcommitted. This was especially problematic in
> > kvm_s390_pv_unpack, because of the loop over all pages that needed
> > unpacking.
> > 
> > Also fix kvm_s390_pv_init_vm to avoid stalls when the system is
> > heavily overcommitted.  
> 
> Fixes tag?

will be in the next version

> > 
> > Signed-off-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
> > ---
> >  arch/s390/kernel/uv.c | 11 ++++++++---
> >  arch/s390/kvm/pv.c    |  2 +-
> >  2 files changed, 9 insertions(+), 4 deletions(-)
> > 
> > diff --git a/arch/s390/kernel/uv.c b/arch/s390/kernel/uv.c
> > index aeb0a15bcbb7..fd0faa51c1bb 100644
> > --- a/arch/s390/kernel/uv.c
> > +++ b/arch/s390/kernel/uv.c
> > @@ -196,11 +196,16 @@ static int make_secure_pte(pte_t *ptep,
> > unsigned long addr, if (!page_ref_freeze(page, expected))
> >  		return -EBUSY;
> >  	set_bit(PG_arch_1, &page->flags);
> > -	rc = uv_call(0, (u64)uvcb);
> > +	rc = __uv_call(0, (u64)uvcb);  
> 
> We should exchange rc with cc since that's what we get back from
> __uv_call(). Technically we always get a cc but for the other
> functions it's only ever 0/1 which translates to success/error so rc
> is ok.

will be in the next version

> >  	page_ref_unfreeze(page, expected);
> > -	/* Return -ENXIO if the page was not mapped, -EINVAL
> > otherwise */
> > -	if (rc)
> > +	/*
> > +	 * Return -ENXIO if the page was not mapped, -EINVAL for
> > other errors.
> > +	 * If busy or partially completed, return -EAGAIN.
> > +	 */
> > +	if (rc == 1)
> >  		rc = uvcb->rc == 0x10a ? -ENXIO : -EINVAL;
> > +	else if (rc > 1)
> > +		rc = -EAGAIN;
> >  	return rc;  
> 
> Could you define the CCs in uv.h and check against the constants here
> so it's easier to understand that the rc > 1 checks against a "UV was
> busy please re-issue the call again" cc?
>
> Maybe also make it explicit for cc 2 and 3 instead of cc > 1

will be in the next version

> >  }
> >  
> > diff --git a/arch/s390/kvm/pv.c b/arch/s390/kvm/pv.c
> > index c8841f476e91..e007df11a2fe 100644
> > --- a/arch/s390/kvm/pv.c
> > +++ b/arch/s390/kvm/pv.c
> > @@ -196,7 +196,7 @@ int kvm_s390_pv_init_vm(struct kvm *kvm, u16
> > *rc, u16 *rrc) uvcb.conf_base_stor_origin =
> > (u64)kvm->arch.pv.stor_base; uvcb.conf_virt_stor_origin =
> > (u64)kvm->arch.pv.stor_var; 
> > -	cc = uv_call(0, (u64)&uvcb);
> > +	cc = uv_call_sched(0, (u64)&uvcb);
> >  	*rc = uvcb.header.rc;
> >  	*rrc = uvcb.header.rrc;
> >  	KVM_UV_EVENT(kvm, 3, "PROTVIRT CREATE VM: handle %llx len
> > %llx rc %x rrc %x", 
> 


  reply	other threads:[~2021-07-29 13:30 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-28 14:26 [PATCH v2 00/13] KVM: s390: pv: implement lazy destroy Claudio Imbrenda
2021-07-28 14:26 ` [PATCH v2 01/13] KVM: s390: pv: avoid stall notifications for some UVCs Claudio Imbrenda
2021-07-29  9:58   ` Janosch Frank
2021-07-29 12:52     ` Claudio Imbrenda [this message]
2021-07-29 10:49   ` Cornelia Huck
2021-07-29 13:22     ` Claudio Imbrenda
2021-07-28 14:26 ` [PATCH v2 02/13] KVM: s390: pv: leak the ASCE page when destroy fails Claudio Imbrenda
2021-07-29 10:41   ` Janosch Frank
2021-07-29 12:54     ` Claudio Imbrenda
2021-07-29 13:45       ` Janosch Frank
2021-07-28 14:26 ` [PATCH v2 03/13] KVM: s390: pv: properly handle page flags for protected guests Claudio Imbrenda
2021-07-29 11:43   ` Janosch Frank
2021-07-28 14:26 ` [PATCH v2 04/13] KVM: s390: pv: handle secure storage violations " Claudio Imbrenda
2021-07-28 14:26 ` [PATCH v2 05/13] KVM: s390: pv: handle secure storage exceptions for normal guests Claudio Imbrenda
2021-07-29 12:17   ` Janosch Frank
2021-07-29 13:28     ` Claudio Imbrenda
2021-07-28 14:26 ` [PATCH v2 06/13] KVM: s390: pv: refactor s390_reset_acc Claudio Imbrenda
2021-07-28 14:26 ` [PATCH v2 07/13] KVM: s390: pv: usage counter instead of flag Claudio Imbrenda
2021-07-28 14:26 ` [PATCH v2 08/13] KVM: s390: pv: add export before import Claudio Imbrenda
2021-07-28 14:26 ` [PATCH v2 09/13] KVM: s390: pv: lazy destroy for reboot Claudio Imbrenda
2021-07-28 14:26 ` [PATCH v2 10/13] KVM: s390: pv: extend lazy destroy to handle shutdown Claudio Imbrenda
2021-07-28 14:26 ` [PATCH v2 11/13] KVM: s390: pv: module parameter to fence lazy destroy Claudio Imbrenda
2021-07-28 14:26 ` [PATCH v2 12/13] KVM: s390: pv: add OOM notifier for " Claudio Imbrenda
2021-07-28 14:26 ` [PATCH v2 13/13] KVM: s390: pv: add support for UV feature bits Claudio Imbrenda
2021-07-29  9:52   ` Janosch Frank
2021-07-29 13:28     ` 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=20210729145204.2d8c1430@p-imbrenda \
    --to=imbrenda@linux.ibm.com \
    --cc=borntraeger@de.ibm.com \
    --cc=cohuck@redhat.com \
    --cc=david@redhat.com \
    --cc=frankja@linux.ibm.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=pasic@linux.ibm.com \
    --cc=thuth@redhat.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.