qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: Chris Webb <chris@arachsys.com>,
	kvm@vger.kernel.org, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [BUG] Guest kernel divide error in kvm_unlock_kick
Date: Thu, 11 Sep 2014 11:45:36 +0200	[thread overview]
Message-ID: <54116F40.8090704@redhat.com> (raw)
In-Reply-To: <FD55CC34-00C9-429E-9A39-B0313232FB31@arachsys.com>

Il 08/09/2014 15:28, Chris Webb ha scritto:
> divide error: 0000 [#1] PREEMPT SMP 
> Modules linked in:
> CPU: 0 PID: 743 Comm: syslogd Not tainted 3.16.2-guest #2
> Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.7.5-0-ge51488c-20140602_164612-nilsson.home.kraxel.org 04/01/2014
> task: ffff88007c972580 ti: ffff88007cb7c000 task.ti: ffff88007cb7c000
> RIP: 0010:[<ffffffff81037fe2>]  [<ffffffff81037fe2>] kvm_unlock_kick+0x72/0x80
> RSP: 0000:ffff88007fc03ec8  EFLAGS: 00010046
> RAX: 0000000000000005 RBX: 0000000000000000 RCX: 0000000000000003
> RDX: 0000000000000003 RSI: ffffffff81a466a0 RDI: 0000000000000000
> RBP: ffffffff81a466a0 R08: ffffffff81b98940 R09: 0000000000000246
> R10: 0000000000000400 R11: 0000000000000000 R12: 00000000000000ea
> R13: 0000000000000009 R14: 0000000000000002 R15: ffff88007fc0d300
> FS:  00007f2a6473e700(0000) GS:ffff88007fc00000(0000) knlGS:0000000000000000
> CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
> CR2: 00000000004a8240 CR3: 000000007ac75000 CR4: 00000000000406f0
> Stack:
>  ffffffff81a46400 0000000000000246 0000000000000001 ffffffff8168979d
>  0000000000000282 ffffffff81110d97 0000000000000007 ffff88007cb7ffd8
>  ffff88007c972580 000000004b0782e8 0000000000000002 ffffffff81a0b0c8
> Call Trace:
>  <IRQ> 
>  [<ffffffff8168979d>] ? _raw_spin_unlock_irqrestore+0x5d/0x80
>  [<ffffffff81110d97>] ? rcu_process_callbacks+0x337/0x4f0
>  [<ffffffff810cde2d>] ? __do_softirq+0xfd/0x210
>  [<ffffffff810ce06e>] ? irq_exit+0x7e/0xa0
>  [<ffffffff8103063b>] ? smp_apic_timer_interrupt+0x3b/0x50
>  [<ffffffff8168b04d>] ? apic_timer_interrupt+0x6d/0x80
>  <EOI> 
>  [<ffffffff8114180b>] ? filemap_map_pages+0x17b/0x240
>  [<ffffffff811418c0>] ? filemap_map_pages+0x230/0x240
>  [<ffffffff811679e2>] ? do_read_fault.isra.70+0x2a2/0x320
>  [<ffffffff811696cc>] ? handle_mm_fault+0x37c/0xd00
>  [<ffffffff8103bb45>] ? __do_page_fault+0x185/0x4c0
>  [<ffffffff8168b958>] ? async_page_fault+0x28/0x30
>  [<ffffffff813b9610>] ? __put_user_4+0x20/0x30
>  [<ffffffff8168b958>] ? async_page_fault+0x28/0x30
> Code: c0 ca a7 81 48 8d 04 0b 48 8b 30 48 39 ee 75 c9 0f b6 40 08 44 38 e0 75 c0 48 c7 c0 22 b0 00 00 31 db 0f b7 0c 08 b8 05 00 00 00 <0f> 01 c1 0f 1f 00 5b 5d 41 5c c3 0f 1f 00 48 c7 c0 10 cf 00 00 

Hi Chris,

sorry for not following up on your previous patch.

This is a hypercall that should have kicked VCPU 3 (see rcx).

Can you please apply this patch and gather a trace of the host
(using "trace-cmd -e kvm qemu-kvm <arguments>")?

Thanks,

diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c
index fb919c574e23..25ed29f68419 100644
--- a/arch/x86/kvm/lapic.c
+++ b/arch/x86/kvm/lapic.c
@@ -709,6 +709,8 @@ static int __apic_accept_irq(struct kvm_lapic *apic, int delivery_mode,
 	int result = 0;
 	struct kvm_vcpu *vcpu = apic->vcpu;
 
+	trace_kvm_apic_accept_irq(vcpu->vcpu_id, delivery_mode,
+				  trig_mode, vector, false);
 	switch (delivery_mode) {
 	case APIC_DM_LOWEST:
 		vcpu->arch.apic_arb_prio++;
@@ -730,8 +732,6 @@ static int __apic_accept_irq(struct kvm_lapic *apic, int delivery_mode,
 			kvm_make_request(KVM_REQ_EVENT, vcpu);
 			kvm_vcpu_kick(vcpu);
 		}
-		trace_kvm_apic_accept_irq(vcpu->vcpu_id, delivery_mode,
-					  trig_mode, vector, false);
 		break;
 
 	case APIC_DM_REMRD:



Paolo

  reply	other threads:[~2014-09-11  9:45 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-08 13:28 [Qemu-devel] [BUG] Guest kernel divide error in kvm_unlock_kick Chris Webb
2014-09-11  9:45 ` Paolo Bonzini [this message]
2014-09-11 17:03   ` Chris Webb
2014-09-22 10:58     ` Paolo Bonzini
2014-09-22 19:08       ` Chris Webb
2014-09-22 19:14         ` 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=54116F40.8090704@redhat.com \
    --to=pbonzini@redhat.com \
    --cc=chris@arachsys.com \
    --cc=kvm@vger.kernel.org \
    --cc=qemu-devel@nongnu.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;
as well as URLs for NNTP newsgroup(s).