From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jan Kiszka Subject: Re: [PATCH kvm-kmod] adjust timekeeping compatibility code Date: Thu, 02 Oct 2014 14:17:35 +0200 Message-ID: <542D425F.1010707@siemens.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> <542D251D.9090702@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 7bit To: Paolo Bonzini , kvm@vger.kernel.org Return-path: Received: from david.siemens.de ([192.35.17.14]:54009 "EHLO david.siemens.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751344AbaJBMRl (ORCPT ); Thu, 2 Oct 2014 08:17:41 -0400 In-Reply-To: <542D251D.9090702@redhat.com> Sender: kvm-owner@vger.kernel.org List-ID: On 2014-10-02 12:12, Paolo Bonzini wrote: > 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 Yes, that run was with irqchip off (due to IR emulation enabled). Will give your fix a try once I can dare to crash my machine again. ;) Thanks, Jan > > 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 > -- Siemens AG, Corporate Technology, CT RTC ITP SES-DE Corporate Competence Center Embedded Linux