From: Maxim Levitsky <mlevitsk@redhat.com>
To: Paolo Bonzini <pbonzini@redhat.com>, kvm@vger.kernel.org
Cc: Thomas Gleixner <tglx@linutronix.de>,
Sean Christopherson <seanjc@google.com>,
Wanpeng Li <wanpengli@tencent.com>,
Vitaly Kuznetsov <vkuznets@redhat.com>,
Joerg Roedel <joro@8bytes.org>, Borislav Petkov <bp@alien8.de>,
"H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
"open list:X86 ARCHITECTURE (32-BIT AND 64-BIT)"
<linux-kernel@vger.kernel.org>,
"maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT)"
<x86@kernel.org>, Jim Mattson <jmattson@google.com>
Subject: Re: [PATCH 04/10] KVM: SVM: add warning for mistmatch between AVIC state and AVIC access page state
Date: Thu, 24 Jun 2021 11:13:17 +0300 [thread overview]
Message-ID: <153cf16c78578079d168c754ef451b1f3ecd5220.camel@redhat.com> (raw)
In-Reply-To: <6617e1f2-23dd-9132-d866-7780663533c3@redhat.com>
On Wed, 2021-06-23 at 23:53 +0200, Paolo Bonzini wrote:
> On 23/06/21 13:29, Maxim Levitsky wrote:
> > It is never a good idea to enter a guest when the AVIC state doesn't match
> > the state of the AVIC MMIO memory slot.
> >
> > Signed-off-by: Maxim Levitsky <mlevitsk@redhat.com>
> > ---
> > arch/x86/kvm/svm/svm.c | 3 +++
> > 1 file changed, 3 insertions(+)
> >
> > diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c
> > index 12c06ea28f5c..50405c561394 100644
> > --- a/arch/x86/kvm/svm/svm.c
> > +++ b/arch/x86/kvm/svm/svm.c
> > @@ -3780,6 +3780,9 @@ static __no_kcsan fastpath_t svm_vcpu_run(struct kvm_vcpu *vcpu)
> >
> > pre_svm_run(vcpu);
> >
> > + WARN_ON_ONCE(vcpu->kvm->arch.apic_access_memslot_enabled !=
> > + kvm_vcpu_apicv_active(vcpu));
> > +
> > sync_lapic_to_cr8(vcpu);
> >
> > if (unlikely(svm->asid != svm->vmcb->control.asid)) {
> >
>
> For patches 4-6, can the warnings actually fire without the fix in patch 2?
>
> Paolo
>
Hi!
The warning in patch 4 does fire, not often but it does. Patch 2 fixes it.
The guest usually boots though few lost APIC writes don't always cause it to hang.
Plus the warning is also triggered when the AVIC state is mismatched the other way
around, that is when AVIC is enabled but memslot is disabled, which probably
doesn't cause issues.
Warning in patch 5 is mostly theoretical, until patch 8 is applied.
They can happen if AVIC is toggled on one vCPU for some reason, while another vCPU
asks for an interrupt window.
Patch 6 doesn't fix a warning, but rather a case which most likely can't happen
till patch 8 is applied, but still is correct.
Best regards,
Maxim Levitsky
next prev parent reply other threads:[~2021-06-24 8:13 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-06-23 11:29 [PATCH 00/10] My AVIC patch queue Maxim Levitsky
2021-06-23 11:29 ` [PATCH 01/10] KVM: x86: extract block/allow guest enteries Maxim Levitsky
2021-06-23 11:29 ` [PATCH 02/10] KVM: x86: APICv: fix race in kvm_request_apicv_update on SVM Maxim Levitsky
2021-06-23 21:50 ` Paolo Bonzini
2021-06-24 8:07 ` Maxim Levitsky
2021-07-07 12:57 ` Maxim Levitsky
2021-07-07 13:58 ` Paolo Bonzini
2021-06-23 11:29 ` [PATCH 03/10] KVM: x86: rename apic_access_page_done to apic_access_memslot_enabled Maxim Levitsky
2021-06-23 21:50 ` Paolo Bonzini
2021-06-23 11:29 ` [PATCH 04/10] KVM: SVM: add warning for mistmatch between AVIC state and AVIC access page state Maxim Levitsky
2021-06-23 21:53 ` Paolo Bonzini
2021-06-24 8:13 ` Maxim Levitsky [this message]
2021-06-23 11:29 ` [PATCH 05/10] KVM: SVM: svm_set_vintr don't warn if AVIC is active but is about to be deactivated Maxim Levitsky
2021-06-23 11:29 ` [PATCH 06/10] KVM: SVM: tweak warning about enabled AVIC on nested entry Maxim Levitsky
2021-06-23 21:52 ` Paolo Bonzini
2021-06-23 11:29 ` [PATCH 07/10] KVM: SVM: use vmcb01 in svm_refresh_apicv_exec_ctrl Maxim Levitsky
2021-06-23 21:54 ` Paolo Bonzini
2021-06-24 8:16 ` Maxim Levitsky
2021-06-23 11:30 ` [PATCH 08/10] KVM: x86: APICv: drop immediate APICv disablement on current vCPU Maxim Levitsky
2021-06-23 11:30 ` [PATCH 09/10] KVM: SVM: call avic_vcpu_load/avic_vcpu_put when enabling/disabling AVIC Maxim Levitsky
2021-06-23 11:30 ` [PATCH 10/10] KVM: x86: hyper-v: Deactivate APICv only when AutoEOI feature is in use Maxim Levitsky
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=153cf16c78578079d168c754ef451b1f3ecd5220.camel@redhat.com \
--to=mlevitsk@redhat.com \
--cc=bp@alien8.de \
--cc=hpa@zytor.com \
--cc=jmattson@google.com \
--cc=joro@8bytes.org \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=pbonzini@redhat.com \
--cc=seanjc@google.com \
--cc=tglx@linutronix.de \
--cc=vkuznets@redhat.com \
--cc=wanpengli@tencent.com \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®