From: christoffer.dall@arm.com (Christoffer Dall)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v4 06/20] arm64: Add a helper for PARange to physical shift conversion
Date: Mon, 3 Sep 2018 13:13:41 +0200 [thread overview]
Message-ID: <20180903111341.GI4029@e113682-lin.lund.arm.com> (raw)
In-Reply-To: <30b9aa82-7600-8094-dca3-44a5e79caf5a@arm.com>
On Mon, Sep 03, 2018 at 11:06:44AM +0100, Suzuki K Poulose wrote:
> On 30/08/18 10:42, Christoffer Dall wrote:
> >On Wed, Jul 18, 2018 at 10:18:49AM +0100, Suzuki K Poulose wrote:
> >>On arm64, ID_AA64MMFR0_EL1.PARange encodes the maximum Physical
> >>Address range supported by the CPU. Add a helper to decode this
> >>to actual physical shift. If we hit an unallocated value, return
> >>the maximum range supported by the kernel.
> >>This will be used by KVM to set the VTCR_EL2.T0SZ, as it
> >>is about to move its place. Having this helper keeps the code
> >>movement cleaner.
> >>
> >>Cc: Catalin Marinas <catalin.marinas@arm.com>
> >>Cc: Marc Zyngier <marc.zyngier@arm.com>
> >>Cc: James Morse <james.morse@arm.com>
> >>Cc: Christoffer Dall <cdall@kernel.org>
> >>Reviewed-by: Eric Auger <eric.auger@redhat.com>
> >>Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
> >>---
> >>Changes since V2:
> >> - Split the patch
> >> - Limit the physical shift only for values unrecognized.
> >>---
> >> arch/arm64/include/asm/cpufeature.h | 13 +++++++++++++
> >> 1 file changed, 13 insertions(+)
> >>
> >>diff --git a/arch/arm64/include/asm/cpufeature.h b/arch/arm64/include/asm/cpufeature.h
> >>index 1717ba1..855cf0e 100644
> >>--- a/arch/arm64/include/asm/cpufeature.h
> >>+++ b/arch/arm64/include/asm/cpufeature.h
> >>@@ -530,6 +530,19 @@ void arm64_set_ssbd_mitigation(bool state);
> >> static inline void arm64_set_ssbd_mitigation(bool state) {}
> >> #endif
> >>+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;
> >>+ case 5: return 48;
> >>+ case 6: return 52;
> >>+ default: return CONFIG_ARM64_PA_BITS;
> >
> >I don't understand this case? Shouldn't this include at least a WARN()
> >?
>
> If a new value gets assigned in the future, an older kernel might not
> be aware of it. As per the Arm ARM ID feature value rules, we are
> guaranteed that the next higher value must indicate higher value.
> So, WARN() may not be the right choice. Hence, we restrict it to
> the value supported by the kernel.
>
ok, fair enough.
Thanks,
Christoffer
next prev parent reply other threads:[~2018-09-03 11:13 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-07-18 9:18 [PATCH v4 00/20] kvm: arm64: Dynamic IPA and 52bit IPA Suzuki K Poulose
2018-07-18 9:18 ` [PATCH v4 01/20] virtio: mmio-v1: Validate queue PFN Suzuki K Poulose
2018-07-22 15:55 ` Michael S. Tsirkin
2018-07-18 9:18 ` [PATCH v4 02/20] virtio: pci-legacy: Validate queue pfn Suzuki K Poulose
2018-07-22 15:53 ` Michael S. Tsirkin
2018-07-23 9:44 ` Suzuki K Poulose
2018-07-23 12:54 ` Marc Zyngier
2018-07-23 14:20 ` Michael S. Tsirkin
2018-07-18 9:18 ` [PATCH v4 03/20] kvm: arm/arm64: Fix stage2_flush_memslot for 4 level page table Suzuki K Poulose
2018-07-18 9:18 ` [PATCH v4 04/20] kvm: arm/arm64: Remove spurious WARN_ON Suzuki K Poulose
2018-07-18 9:18 ` [PATCH v4 05/20] kvm: arm64: Add helper for loading the stage2 setting for a VM Suzuki K Poulose
2018-08-30 9:39 ` Christoffer Dall
2018-09-03 10:03 ` Suzuki K Poulose
2018-07-18 9:18 ` [PATCH v4 06/20] arm64: Add a helper for PARange to physical shift conversion Suzuki K Poulose
2018-08-30 9:42 ` Christoffer Dall
2018-09-03 10:06 ` Suzuki K Poulose
2018-09-03 11:13 ` Christoffer Dall [this message]
2018-07-18 9:18 ` [PATCH v4 07/20] kvm: arm64: Clean up VTCR_EL2 initialisation Suzuki K Poulose
2018-07-18 9:18 ` [PATCH v4 08/20] kvm: arm64: Configure VTCR_EL2 per VM Suzuki K Poulose
2018-08-30 10:02 ` Christoffer Dall
2018-07-18 9:18 ` [PATCH v4 09/20] kvm: arm/arm64: Prepare for VM specific stage2 translations Suzuki K Poulose
2018-07-18 9:18 ` [PATCH v4 10/20] kvm: arm64: Prepare for dynamic stage2 page table layout Suzuki K Poulose
2018-07-18 9:18 ` [PATCH v4 11/20] kvm: arm64: Make stage2 page table layout dynamic Suzuki K Poulose
2018-07-18 9:18 ` [PATCH v4 12/20] kvm: arm64: Dynamic configuration of VTTBR mask Suzuki K Poulose
2018-07-18 9:18 ` [PATCH v4 13/20] kvm: arm64: Configure VTCR_EL2.SL0 per VM Suzuki K Poulose
2018-07-18 9:18 ` [PATCH v4 14/20] kvm: arm64: Switch to per VM IPA limit Suzuki K Poulose
2018-07-18 9:18 ` [PATCH v4 15/20] vgic: Add support for 52bit guest physical address Suzuki K Poulose
2018-07-18 9:18 ` [PATCH v4 16/20] kvm: arm64: Add 52bit support for PAR to HPFAR conversoin Suzuki K Poulose
2018-07-18 9:19 ` [PATCH v4 17/20] kvm: arm64: Set a limit on the IPA size Suzuki K Poulose
2018-07-18 9:19 ` [PATCH v4 18/20] kvm: arm64: Limit the minimum number of page table levels Suzuki K Poulose
2018-07-18 9:19 ` [PATCH v4 19/20] kvm: arm/arm64: Expose supported physical address limit for VM Suzuki K Poulose
2018-07-18 9:19 ` [PATCH v4 20/20] kvm: arm64: Allow tuning the physical address size " Suzuki K Poulose
2018-08-30 12:40 ` Christoffer Dall
2018-09-03 10:14 ` Suzuki K Poulose
2018-07-18 9:19 ` [kvmtool PATCH v4 21/24] kvmtool: Allow backends to run checks on the KVM device fd Suzuki K Poulose
2018-07-18 9:19 ` [kvmtool PATCH v4 22/24] kvmtool: arm64: Add support for guest physical address size Suzuki K Poulose
2018-07-18 9:19 ` [kvmtool PATCH v4 23/24] kvmtool: arm64: Switch memory layout Suzuki K Poulose
2018-07-18 9:19 ` [kvmtool PATCH v4 24/24] kvmtool: arm: Add support for creating VM with PA size Suzuki K Poulose
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180903111341.GI4029@e113682-lin.lund.arm.com \
--to=christoffer.dall@arm.com \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).