From mboxrd@z Thu Jan 1 00:00:00 1970 From: Marc Zyngier Subject: Re: [Android-virt] [PATCH v5 00/13] KVM/ARM Implementation Date: Wed, 01 Feb 2012 12:11:26 +0000 Message-ID: <4F292BEE.5030906@arm.com> References: <20111211102403.21693.6887.stgit@localhost> <3C7074CA-31A8-4395-933E-65587D2D2C55@virtualopensystems.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8BIT Cc: Christoffer Dall , "kvm@vger.kernel.org" , "avi@redhat.com" , "android-virt@lists.cs.columbia.edu" , "tech@virtualopensystems.com" To: Peter Maydell Return-path: Received: from service87.mimecast.com ([91.220.42.44]:51749 "EHLO service87.mimecast.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753256Ab2BAMM6 convert rfc822-to-8bit (ORCPT ); Wed, 1 Feb 2012 07:12:58 -0500 In-Reply-To: Sender: kvm-owner@vger.kernel.org List-ID: On 30/01/12 22:46, Peter Maydell wrote: > On 20 January 2012 02:59, Christoffer Dall > wrote: >> There's a new list of issues available at: >> >> https://github.com/virtualopensystems/linux-kvm-arm/issues > > Thanks for putting this up. Here's a couple more for you :-) > > * Support guest kernels configured for LPAE > > At the moment (well, if you have Marc's 3.3rc1 tree with the A15 L2 > cache control register bodge in it) you can boot an A15 kernel > configured without LPAE as a KVM guest, but an LPAE kernel with LPAE > enabled will not boot. This probably mostly requires supporting the > 64 bit wide cp15 registers that LPAE implies. So I had a look at that one. LPAE is not the problem (an LPAE kernel runs fine as a guest), but a KVM-enabled kernel dies trying to execute an SMC instruction. The obvious fix would be to test for the virt extensions in ID_PFR1 before enabling KVM, and mask out the virt extensions from the same register in the guest by trapping CP15-c0. But c0 is used by cache maintenance operations, and trapping would lead to unacceptable performance degradation. Ideas anyone? M. -- Jazz is not dead. It just smells funny...