All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Radim Krčmář" <rkrcmar@redhat.com>
To: Wanpeng Li <kernellwp@gmail.com>
Cc: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
	Wanpeng Li <wanpeng.li@hotmail.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Yunhong Jiang <yunhong.jiang@intel.com>
Subject: Re: [PATCH 1/2] KVM: lapic: fix access preemption timer stuff even if kernel_irqchip=off
Date: Wed, 3 Aug 2016 11:55:25 +0200	[thread overview]
Message-ID: <20160803095525.GA22251@potion> (raw)
In-Reply-To: <1470197053-3581-1-git-send-email-wanpeng.li@hotmail.com>

2016-08-03 12:04+0800, Wanpeng Li:
> From: Wanpeng Li <wanpeng.li@hotmail.com>
> 
> BUG: unable to handle kernel NULL pointer dereference at 000000000000008c
> IP: [<ffffffffc04e0180>] kvm_lapic_hv_timer_in_use+0x10/0x20 [kvm]
> PGD 0 
> Oops: 0000 [#1] SMP
> Call Trace:
>  kvm_arch_vcpu_load+0x86/0x260 [kvm]
>  vcpu_load+0x46/0x60 [kvm]
>  kvm_vcpu_ioctl+0x79/0x7c0 [kvm]
>  ? __lock_is_held+0x54/0x70
>  do_vfs_ioctl+0x96/0x6a0
>  ? __fget_light+0x2a/0x90
>  SyS_ioctl+0x79/0x90
>  do_syscall_64+0x7c/0x1e0
>  entry_SYSCALL64_slow_path+0x25/0x25
> RIP  [<ffffffffc04e0180>] kvm_lapic_hv_timer_in_use+0x10/0x20 [kvm]
>  RSP <ffff8800db1f3d70>
> CR2: 000000000000008c
> ---[ end trace a55fb79d2b3b4ee8 ]---
> 
> This can be reproduced steadily by kernel_irqchip=off.
> 
> We should not access preemption timer stuff if lapic is emulated in userspace.
> This patch fix it by avoiding access preemption timer stuff when kernel_irqchip=off.
> 
> Cc: Paolo Bonzini <pbonzini@redhat.com>
> Cc: Radim Krčmář <rkrcmar@redhat.com>
> Cc: Yunhong Jiang <yunhong.jiang@intel.com>
> Signed-off-by: Wanpeng Li <wanpeng.li@hotmail.com>
> ---

Reviewed-by: Radim Krčmář <rkrcmar@redhat.com>

> diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c
> @@ -1348,6 +1348,9 @@ static void start_sw_tscdeadline(struct kvm_lapic *apic)
>  
>  bool kvm_lapic_hv_timer_in_use(struct kvm_vcpu *vcpu)

Btw, the "hv" in makes it look like it has something to do with Hyper-V.
What does "hv" stand for anyway?  Hardware Virtualized?

Thanks.

>  {
> +	if (!lapic_in_kernel(vcpu))
> +		return false;
> +
>  	return vcpu->arch.apic->lapic_timer.hv_timer_in_use;
>  }
>  EXPORT_SYMBOL_GPL(kvm_lapic_hv_timer_in_use);

  parent reply	other threads:[~2016-08-03  9:55 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-03  4:04 [PATCH 1/2] KVM: lapic: fix access preemption timer stuff even if kernel_irqchip=off Wanpeng Li
2016-08-03  4:04 ` [PATCH 2/2] KVM: lapic: don't recalculate apic map table twice when enabling LAPIC Wanpeng Li
2016-08-03  9:57   ` Radim Krčmář
2016-08-03  9:55 ` Radim Krčmář [this message]
2016-08-03 10:03   ` [PATCH 1/2] KVM: lapic: fix access preemption timer stuff even if kernel_irqchip=off Wanpeng Li
2016-08-04 12:20 ` Paolo Bonzini

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=20160803095525.GA22251@potion \
    --to=rkrcmar@redhat.com \
    --cc=kernellwp@gmail.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pbonzini@redhat.com \
    --cc=wanpeng.li@hotmail.com \
    --cc=yunhong.jiang@intel.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.