From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:53673) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XyIwh-000068-V0 for qemu-devel@nongnu.org; Tue, 09 Dec 2014 06:27:16 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XyIwd-0003x2-8d for qemu-devel@nongnu.org; Tue, 09 Dec 2014 06:27:11 -0500 Received: from mx1.redhat.com ([209.132.183.28]:55688) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XyIwc-0003wx-Vt for qemu-devel@nongnu.org; Tue, 09 Dec 2014 06:27:07 -0500 Date: Tue, 9 Dec 2014 11:27:02 +0000 From: "Richard W.M. Jones" Message-ID: <20141209112702.GA15695@redhat.com> References: <20141209105031.GA13012@tesla.redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Subject: Re: [Qemu-devel] Cubietruck: cannot create KVM guests: "kvm_init_vcpu failed: Invalid argument" List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Peter Maydell Cc: QEMU Developers , Kashyap Chamarthy On Tue, Dec 09, 2014 at 10:53:41AM +0000, Peter Maydell wrote: > On 9 December 2014 at 10:50, Kashyap Chamarthy wrote: > > Booting a minimal KVM guest throws the below error on Cubietruck: > > > > "kvm_init_vcpu failed: Invalid argument" > > > > More context and an easy reproducer in this QEMU bug[1] for Fedora. > > > > Context quoting Rich Jones from comment #2: > > > > "For some reason I thought this had been fixed upstream, but > > now that I've finally got my CT working again, I see that I > > am still carrying that patch in my custom qemu. > > > > diff --git a/target-arm/cpu.c b/target-arm/cpu.c > > index 5ce7350..04d69d1 100644 > > --- a/target-arm/cpu.c > > +++ b/target-arm/cpu.c > > @@ -858,7 +858,7 @@ static void cortex_a15_initfn(Object *obj) > > set_feature(&cpu->env, ARM_FEATURE_DUMMY_C15_REGS); > > set_feature(&cpu->env, ARM_FEATURE_CBAR_RO); > > set_feature(&cpu->env, ARM_FEATURE_LPAE); > > - cpu->kvm_target = QEMU_KVM_ARM_TARGET_CORTEX_A15; > > + cpu->kvm_target = QEMU_KVM_ARM_TARGET_CORTEX_A7; > > cpu->midr = 0x412fc0f1; > > cpu->reset_fpsid = 0x410430f0; > > cpu->mvfr0 = 0x10110222; > > This is obviously a bogus patch -- this is the initfn > for Cortex-A15 so telling it to be a Cortex-A7 is wrong > (and would break working setups on A15 hosts). Yes, I definitely was not proposing this as a serious patch! In my copy of qemu it has "HACK" in all capital letters in the summary ... > > So that's the answer really, it's a qemu bug. Actually it looks as > > if qemu contains some code to try to get the host CPU type, but it > > doesn't work, or maybe we need to pass a -cpu option ..." > > Yes, you need to pass a -cpu option. For KVM on ARM, you > always need to either: > * pass a -cpu option matching the host CPU > * pass "-cpu host" > > The CubieTruck is a Cortex-A7, which we don't have specific > support for in QEMU, so you will need "-cpu host". Kashyap ^^ can you try this? Should be a trivial one-liner change in src/launch-direct.c. Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com virt-builder quickly builds VMs from scratch http://libguestfs.org/virt-builder.1.html