Received: by 10.192.165.148 with SMTP id m20csp1932982imm; Thu, 3 May 2018 07:43:31 -0700 (PDT) X-Google-Smtp-Source: AB8JxZo3Wqu7JQFizjI+1ruLkngkiUhB6rne8b1J68nyDy1M1yO7rde94K+xKKLqVq/e3SV3w9lk X-Received: by 2002:a63:6dcb:: with SMTP id i194-v6mr18744661pgc.402.1525358611409; Thu, 03 May 2018 07:43:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1525358611; cv=none; d=google.com; s=arc-20160816; b=izo98GQIZrFVQc7u41QP8/1oflXeS+Pp32HMKE94Ns+h9alX0YCRBeNT4mAGwsoH18 PAlALhgUnHJ4Yue/AEoE6UsLstCgK1xOl3V+6f+F9n4LEdrliYsbOBaOvbQpss5Nw2K8 IYQ6EfSB+4VBJoEYW01jj3mtHuI3N6YWzQV3R78wAp76UK5Ty/a3w55Q5xS+Hxq7fDOQ 9uJMZim5Zm/kIThlcIxc+opyyXRLy0D8n1zTTFFr7SIJ9nUMcDolJX5xm1MYQwcmEDzT dqDHcMhuevkqRc/QSAaw+Wh+hG4QjJ6wjEfL0rXciDTEqNREgybTLj0AfKk7eS8YuUdH bhaQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:arc-authentication-results; bh=MGEdxPe12mZK5srmiVGL6V2UlzR+Oam4bWiWt/y/2uU=; b=CIS/TyJyp8LLv/cwxyJsYjqt2uq8pY0I9Y+JQSoH+P32X2FwEK+2Fx0Usy6yCzoX8Y raJ6rT77Y8FutzaUKnVIQDLdYBX2wkR2wBf/i9Et/q4s0VLQCSKErdUSTOMKXhXMUbuU s3qymDA9kgpAoQyfIosmwfL6vQMBO4h1zZncdEcrl5CoSKRu6h/JsY4hEjqzQRQZS1xi NkxWkhgRIhgHgteomNMjtsz4UsactM9f4+FMIWWFtJKmr9QtYcV3UoVI/qyFFecx1qVn RknYYF8yog+roIoRDfWCvo4rJDzaKCsi1yMoGYy1pXBB9c1X7u/9rcMUX7d8s0xZrgyq 0Szg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id y185-v6si11408917pgd.316.2018.05.03.07.43.16; Thu, 03 May 2018 07:43:31 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751417AbeECOm0 (ORCPT + 99 others); Thu, 3 May 2018 10:42:26 -0400 Received: from foss.arm.com ([217.140.101.70]:42930 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750944AbeECOmU (ORCPT ); Thu, 3 May 2018 10:42:20 -0400 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 5D9061435; Thu, 3 May 2018 07:42:20 -0700 (PDT) Received: from [10.1.207.55] (melchizedek.cambridge.arm.com [10.1.207.55]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 6038D3F59F; Thu, 3 May 2018 07:42:17 -0700 (PDT) Subject: Re: [PATCH v2 05/17] arm64: Helper for parange to PASize To: Suzuki K Poulose Cc: linux-arm-kernel@lists.infradead.org, ard.biesheuvel@linaro.org, kvm@vger.kernel.org, marc.zyngier@arm.com, catalin.marinas@arm.com, punit.agrawal@arm.com, will.deacon@arm.com, linux-kernel@vger.kernel.org, kristina.martsenko@arm.com, pbonzini@redhat.com, kvmarm@lists.cs.columbia.edu References: <1522156531-28348-1-git-send-email-suzuki.poulose@arm.com> <1522156531-28348-6-git-send-email-suzuki.poulose@arm.com> From: James Morse Message-ID: Date: Thu, 3 May 2018 15:39:20 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 MIME-Version: 1.0 In-Reply-To: <1522156531-28348-6-git-send-email-suzuki.poulose@arm.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Suzuki, Nit: KVM in the subject line? On 27/03/18 14:15, Suzuki K Poulose wrote: > Add a helper to convert ID_AA64MMFR0_EL1:PARange to they physical > size shift. Limit the size to the maximum supported by the kernel. > We are about to move the user of this code and this helps to > keep the changes cleaner. > diff --git a/arch/arm64/include/asm/cpufeature.h b/arch/arm64/include/asm/cpufeature.h > index fbf0aab..1f2a5dd 100644 > --- a/arch/arm64/include/asm/cpufeature.h > +++ b/arch/arm64/include/asm/cpufeature.h > @@ -311,6 +311,22 @@ static inline u64 read_zcr_features(void) > return zcr; > } > > +static inline u32 id_aa64mmfr0_parange_to_phys_shift(int parange) > +{ > + switch (parange) { > + case 0: return 32; > + case 1: return 36; > + case 2: return 40; > + case 3: return 42; > + case 4: return 44; > + /* Report 48 bit if the kernel doesn't support 52bit */ > + default: > + case 5: return 48; > +#ifdef CONFIG_ARM64_PA_BITS_52 > + case 6: return 52; > +#endif Eeew. I thought 'default' had to appear at the end of the list, but evidently not! If the last three bit value ever gets used this is going to look really weird. Can't we have a helper that just does the mapping, then apply the clamping with something like: | parange = min(CONFIG_ARM64_PA_BITS, parange); Its odd that the helper has the id-register in the name, but expects you do the shift and mask for it... (and for this patch, KVM has already done the 52bit clamping with: | if (parange > ID_AA64MMFR0_PARANGE_MAX) | parange = ID_AA64MMFR0_PARANGE_MAX; ) > diff --git a/arch/arm64/kvm/hyp/s2-setup.c b/arch/arm64/kvm/hyp/s2-setup.c > index 603e1ee..b1129c8 100644 > --- a/arch/arm64/kvm/hyp/s2-setup.c > +++ b/arch/arm64/kvm/hyp/s2-setup.c > @@ -19,11 +19,13 @@ > #include > #include > #include > +#include > > u32 __hyp_text __init_stage2_translation(void) > { Nit: Why change the variable you put this in, if its all removed again in patch 11? Thanks, James