From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45875) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1c1tC2-0003bp-UI for qemu-devel@nongnu.org; Wed, 02 Nov 2016 06:54:56 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1c1tBz-0004Ju-0h for qemu-devel@nongnu.org; Wed, 02 Nov 2016 06:54:55 -0400 Received: from mail-lf0-x22c.google.com ([2a00:1450:4010:c07::22c]:34476) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1c1tBy-0004Iq-Oq for qemu-devel@nongnu.org; Wed, 02 Nov 2016 06:54:50 -0400 Received: by mail-lf0-x22c.google.com with SMTP id b81so9130569lfe.1 for ; Wed, 02 Nov 2016 03:54:50 -0700 (PDT) Date: Wed, 2 Nov 2016 11:54:47 +0100 From: "Edgar E. Iglesias" Message-ID: <20161102105447.GM9606@toto> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Subject: Re: [Qemu-devel] when we add EL2 to QEMU TCG ARM emulation and the virt board, should it default on or off? List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Peter Maydell Cc: QEMU Developers , Andrew Jones On Tue, Nov 01, 2016 at 05:16:59PM +0000, Peter Maydell wrote: > I'm working on turning on EL2 support in our TCG ARM emulation, > and one area I'm not sure about is whether it should default to > on or off. > > We have a few precedents: > > For EL3 support: > * the CPU property is enabled by default but can be disabled by the board > * 'virt' defaults it to disabled, with a -machine secure=on property > which turns it on (barfing if KVM is enabled) and also does some other > stuff like wiring up secure-only memory and devices and making sure > the GIC has security enabled > * if the user does -cpu has_el3=yes things will probably not go > too well and that's unsupported > > For PMU support: > * the CPU property is enabled by default > * 'virt' defaults it to enabled (except for virt-2.6 and earlier) > * we do expect the user to be able to turn it on and off with > a -cpu pmu=yes/no option (and the board model changes behaviour > based on whether the CPU claims to have the feature) > > So what about EL2? Some background facts that are probably relevant: > * at the moment KVM can't support it, but eventually machines with > the nested virtualization hardware support will appear (this is > an ARMv8.3 feature), at which point it ought to work there too > * if you just enable EL2 then some currently working setups stop > working (basically any code that was written to assume it was > entered in EL1); notably this includes kvm-unit-tests (patches > pending from Drew that fix that). Linux is fine though as it > checks and handles both. > > Disabled-by-default has the advantage that (a) a command line > will work the same for TCG and KVM and (b) nothing that used to > work will break. The disadvantage is that anybody who wants to > be able to run nested KVM will now have to specify a command line > option of some kind. > > So: > (1) should we default on or off? (both at the board level, > and for the cpu object itself) > (2) directly user-set cpu property, or board property ? Hi Peter, Good questions... I wouldn't mind having a board level prop that defaults to off to keep things somewhat consistent with current KVM and also the secure/EL3 props. Best regards, Edgar