From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 1D450C433F5 for ; Wed, 15 Dec 2021 14:54:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=lgXM8NoKvLz12DPryfcLXyvn8aUFP5pkVfETAvaNFYQ=; b=M+P8IbPMfS8zwX TAOhsZcpta5fwfF4HO28ZszKtdaFOVVGQMTRxA2m8lgvnSUSAlPmfz9+VBv2eqwV8Y56SXzoIv1tA sJ8QtlryZfqEiS9qlmEX+9vp1n4k6l5YtxpbWfJGffow6KqxmELSn8p7yxkD8o4+UwEy7BX5KQXd4 JUj61B/SBwjaC6GbfZMgIHa0wMVoqbwqtKnbV1OPF04wAmmHakKk+RDynFY03XKda5+6vlTIR6zsm 9uHXIv8Eifq6bESP2RO7868e4uzzHQSIKmlO73rJCgE+zWhuM7tL7tJ8lxx9ncxIiCixzn3N+rgxu QCXsNtjocolNkmhUfO9Q==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mxVeK-001Cra-72; Wed, 15 Dec 2021 14:52:56 +0000 Received: from dfw.source.kernel.org ([139.178.84.217]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1mxVe8-001CnP-Hm for linux-arm-kernel@lists.infradead.org; Wed, 15 Dec 2021 14:52:45 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 5214861910; Wed, 15 Dec 2021 14:52:41 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 664A1C34608; Wed, 15 Dec 2021 14:52:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1639579960; bh=NE2C/UNGhpy1xT7c60Q1WDiF8DxDGBmX6eEnmDHOleM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Nzb4y1U1xu8KE0EXluCwcA1hJLveJpbBRny0QevLKGITqi4z6iaOvHZjxtmrPNpeK PcjNwwLNWwmPdXZscNVHuaT63WimVjb0IroqZwXshgZv9da9CrEq1gfdhHylP8Pyo8 fSt0rbmAUxBvqQijpohOPn8KEupFTIoYGe0Eit3KUmHIVtqJgyZ1YzR3jj6OBYZcAG WyeECuyB1CtrAT2FxVbrbX8mUOlnbslNq/sN30cqh2xHBRo8BS5RoDgH/5qsSlgoOF b1SNrJ53F4li8hTaKpfE0IF1o1U26S6nZlRwFBLQrc2Cvr5MHLC0GD4YOUadqCJ/Um 2Klz7mXhxgfbg== From: Ard Biesheuvel To: linux-arm-kernel@lists.infradead.org Cc: catalin.marinas@arm.com, will@kernel.org, mark.rutland@arm.com, Ard Biesheuvel , Kefeng Wang Subject: [PATCH 1/2] arm64: simplify rules for defining ARM64_MEMSTART_ALIGN Date: Wed, 15 Dec 2021 15:52:27 +0100 Message-Id: <20211215145228.953702-2-ardb@kernel.org> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20211215145228.953702-1-ardb@kernel.org> References: <20211215145228.953702-1-ardb@kernel.org> MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=2380; h=from:subject; bh=NE2C/UNGhpy1xT7c60Q1WDiF8DxDGBmX6eEnmDHOleM=; b=owEB7QES/pANAwAKAcNPIjmS2Y8kAcsmYgBhugEpWvyWNYGZAdEcxWaK/C/KS0ft3Y3nkzVaAxIa h0YsJXqJAbMEAAEKAB0WIQT72WJ8QGnJQhU3VynDTyI5ktmPJAUCYboBKQAKCRDDTyI5ktmPJCQWC/ wMQbkiJeoZbSMxgr5wxALjMXBNkyb/p9/z1Nkb02Pc6LXM6fs2FGmECH3PYn+uRDGl/AIDnPM1RUBn i5iKNHZPmszQuYqobv8RWOQEJ1z+IMsprjnkVWYT//cDfznhhCmgKDOqT3lILFMRR0T/srv2j5Pu8b wYoSPd8Sqd5uFkdbiNrbdVEoGiXkSEHy462YUJc2IVwPnoQZNVX5E3sx/1T2198A8n9RqC+o3bADxK LgCbWejOnlMYIIa1PhIh+6arH7I5TqFZvWO6sM8tzq1trQppS+haYuGuVzaAPpjCXJjBi846Ed6ndP AGEahqr6YFukwxA2wEHheGddDZKr3IP7Src7TeH/HawiLTghWBvEsrFXdJY2nGOEKaOkr2jH2AJHmx cvwVdAeBkupLHFASVklsOPkKMJuVrxuG0gQHODLdiCNxmRXaklhuKUdCxzVr7dkqwmc6FEPNUa762h +vl1165z33A2nMSdIq/q3dFBHEeHFatEztTgXpaq6F9MM= X-Developer-Key: i=ardb@kernel.org; a=openpgp; fpr=F43D03328115A198C90016883D200E9CA6329909 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20211215_065244_687506_DE545DEB X-CRM114-Status: GOOD ( 15.01 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org ARM64_MEMSTART_ALIGN defines the minimum alignment of the translation between virtual and physical addresses, so that data structures dealing with physical addresses (such as the vmmemmap struct page array) appear sufficiently aligned in memory. We currently increase this value artificially to a 'better' value based on the assumption that being able to use larger block mappings is preferable, even though we rarely do so now that rodata=full is the default. So let's simplify this, and always define ARM64_MEMSTART_ALIGN in terms of the vmemmap section size. Signed-off-by: Ard Biesheuvel --- arch/arm64/include/asm/kernel-pgtable.h | 27 +++----------------- 1 file changed, 4 insertions(+), 23 deletions(-) diff --git a/arch/arm64/include/asm/kernel-pgtable.h b/arch/arm64/include/asm/kernel-pgtable.h index 96dc0f7da258..505ae0d560e6 100644 --- a/arch/arm64/include/asm/kernel-pgtable.h +++ b/arch/arm64/include/asm/kernel-pgtable.h @@ -113,30 +113,11 @@ #endif /* - * To make optimal use of block mappings when laying out the linear - * mapping, round down the base of physical memory to a size that can - * be mapped efficiently, i.e., either PUD_SIZE (4k granule) or PMD_SIZE - * (64k granule), or a multiple that can be mapped using contiguous bits - * in the page tables: 32 * PMD_SIZE (16k granule) + * The MM code assumes that struct page arrays belonging to a vmmemmap section + * appear naturally aligned in memory. This implies that the minimum relative + * alignment between virtual and physical addresses in the linear region must + * equal the section size. */ -#if defined(CONFIG_ARM64_4K_PAGES) -#define ARM64_MEMSTART_SHIFT PUD_SHIFT -#elif defined(CONFIG_ARM64_16K_PAGES) -#define ARM64_MEMSTART_SHIFT CONT_PMD_SHIFT -#else -#define ARM64_MEMSTART_SHIFT PMD_SHIFT -#endif - -/* - * sparsemem vmemmap imposes an additional requirement on the alignment of - * memstart_addr, due to the fact that the base of the vmemmap region - * has a direct correspondence, and needs to appear sufficiently aligned - * in the virtual address space. - */ -#if ARM64_MEMSTART_SHIFT < SECTION_SIZE_BITS #define ARM64_MEMSTART_ALIGN (1UL << SECTION_SIZE_BITS) -#else -#define ARM64_MEMSTART_ALIGN (1UL << ARM64_MEMSTART_SHIFT) -#endif #endif /* __ASM_KERNEL_PGTABLE_H */ -- 2.30.2 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel