From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paolo Bonzini Subject: Re: [PATCH kvm-kmod] adjust timekeeping compatibility code Date: Thu, 02 Oct 2014 12:12:45 +0200 Message-ID: <542D251D.9090702@redhat.com> References: <1411460559-8160-1-git-send-email-pbonzini@redhat.com> <542A61AA.4030908@siemens.com> <542A6D2E.5090900@redhat.com> <542A6E67.3070107@siemens.com> <542A884C.4000905@redhat.com> <542BAFD6.3010601@siemens.com> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7BIT To: Jan Kiszka , kvm@vger.kernel.org Return-path: Received: from mail-wg0-f47.google.com ([74.125.82.47]:54375 "EHLO mail-wg0-f47.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751266AbaJBKMt (ORCPT ); Thu, 2 Oct 2014 06:12:49 -0400 Received: by mail-wg0-f47.google.com with SMTP id x13so2704454wgg.30 for ; Thu, 02 Oct 2014 03:12:48 -0700 (PDT) In-Reply-To: <542BAFD6.3010601@siemens.com> Sender: kvm-owner@vger.kernel.org List-ID: Il 01/10/2014 09:40, Jan Kiszka ha scritto: > [50764.182615] Call Trace: > [50764.182633] [] vmx_vcpu_reset+0x20c/0x3b0 [kvm_intel] > [50764.182697] [] kvm_arch_vcpu_setup+0x2c/0x50 [kvm] > [50764.182734] [] kvm_vm_ioctl_create_vcpu+0x84/0x1e0 [kvm] > [50764.182753] [] kvm_vm_ioctl+0x37b/0x520 [kvm] > [50764.182770] [] do_vfs_ioctl+0x75/0x2c0 > [50764.182777] [] SyS_ioctl+0xa1/0xb0 > [50764.182785] [] system_call_fastpath+0x16/0x1b > [50764.182797] [<00007f917b868d87>] 0x7f917b868d86 > [50764.182800] Code: 00 e8 9c fe ff ff 48 63 45 fc 65 48 01 04 25 70 fd 00 00 c9 c3 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 55 48 89 e5 66 66 66 66 90 <48> f7 07 00 c0 00 00 75 14 f0 ff 4f 1c 74 08 c9 c3 66 0f 1f 44 > [50764.182828] RIP [] put_page+0x9/0x30 > [50764.182834] RSP > [50764.182836] CR2: fffffffffffffffe The call stack must be vmx_vcpu_reset -> kvm_vcpu_reload_apic_access_page -> put_page (tail call). Is this with irqchip disabled? If so, it's a KVM bug, it should be fixed like void kvm_vcpu_reload_apic_access_page(struct kvm_vcpu *vcpu) { struct page *page = NULL; + if (!irqchip_in_kernel(vcpu->kvm)) + return; + if (!kvm_x86_ops->set_apic_access_page_addr) return; in x86.c, matching vm_need_virtualize_apic_accesses() in vmx.c. Paolo