From: Sean Christopherson <seanjc@google.com>
To: Ashish Kalra <ashish.kalra@amd.com>
Cc: Steve Rutherford <srutherford@google.com>,
Paolo Bonzini <pbonzini@redhat.com>,
Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>, "H. Peter Anvin" <hpa@zytor.com>,
Joerg Roedel <joro@8bytes.org>, Borislav Petkov <bp@suse.de>,
Tom Lendacky <thomas.lendacky@amd.com>, X86 ML <x86@kernel.org>,
KVM list <kvm@vger.kernel.org>,
LKML <linux-kernel@vger.kernel.org>,
Venu Busireddy <venu.busireddy@oracle.com>,
Brijesh Singh <brijesh.singh@amd.com>,
Will Deacon <will@kernel.org>,
maz@kernel.org, Quentin Perret <qperret@google.com>
Subject: Re: [PATCH v11 08/13] KVM: X86: Introduce KVM_HC_PAGE_ENC_STATUS hypercall
Date: Tue, 6 Apr 2021 15:20:21 +0000 [thread overview]
Message-ID: <YGx8NbG6TGm7LnQh@google.com> (raw)
In-Reply-To: <YGx6JqTVO97GUzn7@google.com>
On Tue, Apr 06, 2021, Sean Christopherson wrote:
> On Tue, Apr 06, 2021, Ashish Kalra wrote:
> > On Mon, Apr 05, 2021 at 01:42:42PM -0700, Steve Rutherford wrote:
> > > On Mon, Apr 5, 2021 at 7:28 AM Ashish Kalra <Ashish.Kalra@amd.com> wrote:
> > > > diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
> > > > index f7d12fca397b..ef5c77d59651 100644
> > > > --- a/arch/x86/kvm/x86.c
> > > > +++ b/arch/x86/kvm/x86.c
> > > > @@ -8273,6 +8273,18 @@ int kvm_emulate_hypercall(struct kvm_vcpu *vcpu)
> > > > kvm_sched_yield(vcpu->kvm, a0);
> > > > ret = 0;
> > > > break;
> > > > + case KVM_HC_PAGE_ENC_STATUS: {
> > > > + int r;
> > > > +
> > > > + ret = -KVM_ENOSYS;
> > > > + if (kvm_x86_ops.page_enc_status_hc) {
> > > > + r = kvm_x86_ops.page_enc_status_hc(vcpu, a0, a1, a2);
> > > > + if (r >= 0)
> > > > + return r;
> > > > + ret = r;
> > > Style nit: Why not just set ret, and return ret if ret >=0?
> > >
> >
> > But ret is "unsigned long", if i set ret and return, then i will return to guest
> > even in case of error above ?
>
> As proposed, svm_page_enc_status_hc() already hooks complete_userspace_io(), so
> this could be hoisted out of the switch statement.
>
> diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
> index 16fb39503296..794dde3adfab 100644
> --- a/arch/x86/kvm/x86.c
> +++ b/arch/x86/kvm/x86.c
> @@ -8261,6 +8261,10 @@ int kvm_emulate_hypercall(struct kvm_vcpu *vcpu)
> goto out;
> }
>
> + /* comment goes here */
> + if (nr == KVM_HC_PAGE_ENC_STATUS && kvm_x86_ops.page_enc_status_hc)
> + return static_call(kvm_x86_page_enc_status_hc(vcpu, a0, a1, a2));
Gah, the SEV implementation can also return -EINVAL, and that should fail the
hypercall, not kill the guest. Normally we try to avoid output params, but
in this case it might be less ugly to do:
case KVM_HC_PAGE_ENC_STATUS: {
if (!kvm_x86_ops.page_enc_status_hc)
break;
if (!static_call(kvm_x86_page_enc_status_hc(vcpu, a0, a1,
a2, &ret));
return 0;
break;
> +
> ret = -KVM_ENOSYS;
>
> switch (nr) {
>
next prev parent reply other threads:[~2021-04-06 15:20 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-04-05 14:20 [PATCH v11 00/13] Add AMD SEV guest live migration support Ashish Kalra
2021-04-05 14:21 ` [PATCH v11 01/13] KVM: SVM: Add KVM_SEV SEND_START command Ashish Kalra
2021-04-05 14:23 ` [PATCH v11 02/13] KVM: SVM: Add KVM_SEND_UPDATE_DATA command Ashish Kalra
2021-04-05 14:23 ` [PATCH v11 03/13] KVM: SVM: Add KVM_SEV_SEND_FINISH command Ashish Kalra
2021-04-05 14:24 ` [PATCH v11 04/13] KVM: SVM: Add support for KVM_SEV_RECEIVE_START command Ashish Kalra
2021-04-05 14:24 ` [PATCH v11 05/13] KVM: SVM: Add KVM_SEV_RECEIVE_UPDATE_DATA command Ashish Kalra
2021-04-05 14:25 ` [PATCH v11 06/13] KVM: SVM: Add KVM_SEV_RECEIVE_FINISH command Ashish Kalra
2021-04-05 14:26 ` [PATCH v11 07/13] KVM: x86: Add AMD SEV specific Hypercall3 Ashish Kalra
2021-04-05 14:28 ` [PATCH v11 08/13] KVM: X86: Introduce KVM_HC_PAGE_ENC_STATUS hypercall Ashish Kalra
2021-04-05 20:42 ` Steve Rutherford
2021-04-06 6:22 ` Ashish Kalra
2021-04-06 15:11 ` Sean Christopherson
2021-04-06 15:20 ` Sean Christopherson [this message]
2021-04-06 18:14 ` Ashish Kalra
2021-04-06 15:48 ` Sean Christopherson
2021-04-06 16:07 ` Ashish Kalra
2021-04-06 20:14 ` Steve Rutherford
2021-04-06 20:27 ` Sean Christopherson
2021-04-07 14:01 ` Ashish Kalra
2021-04-05 14:29 ` [PATCH v11 09/13] mm: x86: Invoke hypercall when page encryption status is changed Ashish Kalra
2021-04-05 14:30 ` [PATCH v11 10/13] KVM: x86: Introduce new KVM_FEATURE_SEV_LIVE_MIGRATION feature & Custom MSR Ashish Kalra
2021-04-06 1:39 ` Steve Rutherford
2021-04-06 13:26 ` Ashish Kalra
2021-04-06 13:47 ` Paolo Bonzini
2021-04-06 13:59 ` Ashish Kalra
2021-04-06 19:41 ` Steve Rutherford
2021-04-05 14:30 ` [PATCH v11 11/13] EFI: Introduce the new AMD Memory Encryption GUID Ashish Kalra
2021-04-05 14:31 ` [PATCH v11 12/13] x86/kvm: Add guest support for detecting and enabling SEV Live Migration feature Ashish Kalra
2021-04-05 14:35 ` [PATCH v11 13/13] x86/kvm: Add kexec support for SEV Live Migration Ashish Kalra
2021-04-05 14:35 ` Ashish Kalra
2021-04-05 15:17 ` [PATCH v11 00/13] Add AMD SEV guest live migration support Peter Gonda
2021-04-05 18:27 ` Steve Rutherford
2021-04-06 13:48 ` Paolo Bonzini
2021-04-06 1:43 ` Steve Rutherford
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=YGx8NbG6TGm7LnQh@google.com \
--to=seanjc@google.com \
--cc=ashish.kalra@amd.com \
--cc=bp@suse.de \
--cc=brijesh.singh@amd.com \
--cc=hpa@zytor.com \
--cc=joro@8bytes.org \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=maz@kernel.org \
--cc=mingo@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qperret@google.com \
--cc=srutherford@google.com \
--cc=tglx@linutronix.de \
--cc=thomas.lendacky@amd.com \
--cc=venu.busireddy@oracle.com \
--cc=will@kernel.org \
--cc=x86@kernel.org \
/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.