All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ingo Molnar <mingo@kernel.org>
To: "Christopherson, Sean J" <sean.j.christopherson@intel.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>,
	"torvalds@linux-foundation.org" <torvalds@linux-foundation.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"kvm@vger.kernel.org" <kvm@vger.kernel.org>,
	Will Deacon <will@kernel.org>
Subject: Re: [GIT PULL] First batch of KVM changes for Linux 5.9
Date: Wed, 9 Sep 2020 10:12:39 +0200	[thread overview]
Message-ID: <20200909081239.GA2446260@gmail.com> (raw)
In-Reply-To: <6a83e6f1e9c34e44ae818ef88ec185a7@intel.com>


* Christopherson, Sean J <sean.j.christopherson@intel.com> wrote:

> Ingo Molnar wrote:
> > * Paolo Bonzini <pbonzini@redhat.com> wrote:
> > 
> > > Paolo Bonzini (11):
> > >       Merge branch 'kvm-async-pf-int' into HEAD
> > 
> > kvmtool broke in this merge window, hanging during bootup right after CPU bringup:
> > 
> >  [    1.289404]  #63
> >  [    0.012468] kvm-clock: cpu 63, msr 6ff69fc1, secondary cpu clock
> >  [    0.012468] [Firmware Bug]: CPU63: APIC id mismatch. Firmware: 3f APIC: 14
> >  [    1.302320] kvm-guest: KVM setup async PF for cpu 63
> >  [    1.302320] kvm-guest: stealtime: cpu 63, msr 1379d7600
> > 
> > Eventually trigger an RCU stall warning:
> > 
> >  [   22.302392] rcu: INFO: rcu_sched detected stalls on CPUs/tasks:
> >  [   22.302392] rcu: 	1-...!: (68 GPs behind) idle=00c/0/0x0 softirq=0/0 fqs=0  (false positive?)
> > 
> > I've bisected this down to the above merge commit. The individual commit:
> > 
> >    b1d405751cd5: ("KVM: x86: Switch KVM guest to using interrupts for page ready APF delivery")
> > 
> > appears to be working fine standalone.
> > 
> > I'm using x86-64 defconfig+kvmconfig on SVM. Can send more info on request.
> > 
> > The kvmtool.git commit I've tested is 90b2d3adadf2.
> 
> Looks a lot like the lack of APIC EOI issue that Vitaly reported[*].
> 
> ---
>  arch/x86/kernel/kvm.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/arch/x86/kernel/kvm.c b/arch/x86/kernel/kvm.c
> index d45f34cbe1ef..9663ba31347c 100644
> --- a/arch/x86/kernel/kvm.c
> +++ b/arch/x86/kernel/kvm.c
> @@ -271,6 +271,8 @@ DEFINE_IDTENTRY_SYSVEC(sysvec_kvm_asyncpf_interrupt)
>  	struct pt_regs *old_regs = set_irq_regs(regs);
>  	u32 token;
>  
> +	ack_APIC_irq();
> +
>  	inc_irq_stat(irq_hv_callback_count);
>  
>  	if (__this_cpu_read(apf_reason.enabled)) {
> --
> 
> [*] https://lkml.kernel.org/r/20200908135350.355053-1-vkuznets@redhat.com

Yep, this does the trick, thanks!

Tested-by: Ingo Molnar <mingo@kernel.org>

	Ingo

      reply	other threads:[~2020-09-09  8:13 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-05 18:26 [GIT PULL] First batch of KVM changes for Linux 5.9 Paolo Bonzini
2020-08-06 20:18 ` pr-tracker-bot
2020-09-08 18:09 ` Ingo Molnar
2020-09-08 22:43   ` Christopherson, Sean J
2020-09-09  8:12     ` Ingo Molnar [this message]

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=20200909081239.GA2446260@gmail.com \
    --to=mingo@kernel.org \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pbonzini@redhat.com \
    --cc=sean.j.christopherson@intel.com \
    --cc=torvalds@linux-foundation.org \
    --cc=will@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.