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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9032ED2B92B for ; Tue, 5 Nov 2024 13:47:58 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2424D6B0096; Tue, 5 Nov 2024 08:47:58 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 1F2116B0098; Tue, 5 Nov 2024 08:47:58 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0E10E6B009A; Tue, 5 Nov 2024 08:47:58 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id E41EE6B0096 for ; Tue, 5 Nov 2024 08:47:57 -0500 (EST) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 8395CC148D for ; Tue, 5 Nov 2024 13:47:57 +0000 (UTC) X-FDA: 82752168996.15.255856B Received: from relay3-d.mail.gandi.net (relay3-d.mail.gandi.net [217.70.183.195]) by imf23.hostedemail.com (Postfix) with ESMTP id EE4C7140017 for ; Tue, 5 Nov 2024 13:47:33 +0000 (UTC) Authentication-Results: imf23.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf23.hostedemail.com: domain of alex@ghiti.fr designates 217.70.183.195 as permitted sender) smtp.mailfrom=alex@ghiti.fr ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1730814417; a=rsa-sha256; cv=none; b=EiWDnnHAJBlwncsnBttKhBf2Nly/+R2oiWLF/mpHcoMWolb7uWury9MqY3/J7d/NbmtlhX Sv78Fd2YC1c7x/JA/9+YTSQS6y6GbidnLTJoZLxbvXoOURY3PhfB3EtE2H64DcCj0SeO8K FMf/XaGkDtXNkbfMP8GzSVnlSnH8OcA= ARC-Authentication-Results: i=1; imf23.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf23.hostedemail.com: domain of alex@ghiti.fr designates 217.70.183.195 as permitted sender) smtp.mailfrom=alex@ghiti.fr ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1730814417; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=eWBOU50NMVClOofrTjnG0sXctFUv89sR6AoIkhZtdhs=; b=OzhCKPhFo0pLGVdgRybCwoCeTpdEpObr5jGIPJxNWEzqJqX0ht/VwsjKtzpYQajuWSlm29 KZK6CpomQRx8rarmwhUvgbIaoMEr0M19CP+JBp2/LBEEX81edCmRhMcKLU0N9i1zMJVwrM proaBC2psCUis29tkMObfdK1vgW0OE8= Received: by mail.gandi.net (Postfix) with ESMTPSA id 39DD160003; Tue, 5 Nov 2024 13:47:51 +0000 (UTC) Message-ID: <717b3757-4f6f-49f3-9da1-82faaff57485@ghiti.fr> Date: Tue, 5 Nov 2024 14:47:50 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 6/9] riscv: Do not rely on KASAN to define the memory layout Content-Language: en-US To: Samuel Holland , Palmer Dabbelt , linux-riscv@lists.infradead.org, Andrey Ryabinin , Alexander Potapenko , Andrey Konovalov , Dmitry Vyukov , Vincenzo Frascino , kasan-dev@googlegroups.com Cc: llvm@lists.linux.dev, Catalin Marinas , linux-kernel@vger.kernel.org, linux-mm@kvack.org, Alexandre Ghiti , Will Deacon , Evgenii Stepanov , Andrew Morton , linux-arm-kernel@lists.infradead.org References: <20241022015913.3524425-1-samuel.holland@sifive.com> <20241022015913.3524425-7-samuel.holland@sifive.com> From: Alexandre Ghiti In-Reply-To: <20241022015913.3524425-7-samuel.holland@sifive.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-GND-Sasl: alex@ghiti.fr X-Rspam-User: X-Rspamd-Queue-Id: EE4C7140017 X-Rspamd-Server: rspam11 X-Stat-Signature: sc84xjchszuphendq6kryjdsqymtezny X-HE-Tag: 1730814453-187592 X-HE-Meta: U2FsdGVkX1+wNLBTqlm2AkO9E/Bm977r8DnAKdFetwzoxthG7Otg0Oskcg8GhNchpX0sXaKOExBTW4IBhqdsnMZ/y3BG6MEiUF9VDBWHy+yAaun7XAHIUgd00xvl1MX9lfRW2ZipiNakv464xtsOyUW3tLO/W5Wu4jez8qqRHAI7xPh93cjQhua4uUh6VynaWRPIufNJC2q5Ou1vTASmPA7CaCi/0fOJxYCoFYudyGXzJdpJIpFAhPpuTKqnBwpaIK085qvgJHHeWr2Jt7v3PowvCbloD8WpVMzAMkTA5hZKdGozPMNj3qIDbVbeLBu7iMl/HU11xBYFLnWwOlYRU5XynvsS59A4tO1PNoD0qmOuJ705PrRYpmk08BGlQjTfIhjc3JgaF99hj8MkvqoM8G5/sY/EFLLZGIMoe3Eyq6arOkLyT/WBlFedl7hsiLPf6O8HvL0QTx2AGQV3kCL5baJRHiETym71kEgV04hz60eXda+mhPvqQ9QR640gigCJUydB8fEHmWvZWh9xxaTBSOFZyc1Low9Cqsdb00jLgNJtE3z3IrsfZsWa7a+y4ckCpXJav+gcGibIYjN7xg1vFN8YTqEjn5OlBCWAoypejePHIy6XkcYKIQVruKXHIqk9UUlvwKpQ4VeC62fiUgL4KH/HTgqSzl2VGJWab8uCfy/uvaZ1HZZhror1aphXxtgvchjPZlEquKHXdnbt17Z/iP9DxavL4TO9E+oWtDg61WR0/MQ31oHgJSKul/NqE7lJDvB91vAcHMTTsBqMtjZjFnpTE9LYFTX52wb9OuVxsGtRy/xUeeOkOV055RANbV3OMFM4DkMCiU9yCW+b1pyNtkY1YjpkABoJV7m1LXbNH9yHrCT93erB4jGW9tNnPqvs/i1QO4iB154H42WLhtqxN0q9pZKEZ49n/VHNqhrf7xf05qBep0ej8bJmS3UHoIoy6vHoZm3Q40slQI9zke2 BpLbY0Ds lTKo/ndm4kOK7R/xaGqQRKeu3MN512EAfuWtG6qZc2mHja10gCf+hl0Iv6k1nC14kZOuWLXzb8zdNJbGTEsY2Eu8ypMylgoYBt4e1MjDUrP/yRoOALejp6w5ZpORyLW0ndsfypwfHzPzisubXnbyT82mB9oO9FIXoAvAv0EyAohqk0zq9koGln7DBtI8y4xL1hTnqxLgDp5NBkqwWM9y7I7YkdZ086fDnROmEbBJEInt1VDqasfYYHd9z8cy6iL4AaHxXLia17Ga2pUgbzz5Qs0wPJHOZCiNq0eJuE7zlHwqi1SkTY0vbqqiX1A== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On 22/10/2024 03:57, Samuel Holland wrote: > Commit 66673099f734 ("riscv: mm: Pre-allocate vmemmap/direct map/kasan > PGD entries") used the start of the KASAN shadow memory region to > represent the end of the linear map, since the two memory regions were > immediately adjacent. This is no longer the case for Sv39; commit > 5c8405d763dc ("riscv: Extend sv39 linear mapping max size to 128G") > introduced a 4 GiB hole between the regions. Introducing KASAN_SW_TAGS > will cut the size of the shadow memory region in half, creating an even > larger hole. > > Avoid wasting PGD entries on this hole by using the size of the linear > map (KERN_VIRT_SIZE) to compute PAGE_END. > > Since KASAN_SHADOW_START/KASAN_SHADOW_END are used inside an IS_ENABLED > block, it's not possible to completely hide the constants when KASAN is > disabled, so provide dummy definitions for that case. > > Signed-off-by: Samuel Holland > --- > > (no changes since v1) > > arch/riscv/include/asm/kasan.h | 11 +++++++++-- > arch/riscv/mm/init.c | 2 +- > 2 files changed, 10 insertions(+), 3 deletions(-) > > diff --git a/arch/riscv/include/asm/kasan.h b/arch/riscv/include/asm/kasan.h > index e6a0071bdb56..a4e92ce9fa31 100644 > --- a/arch/riscv/include/asm/kasan.h > +++ b/arch/riscv/include/asm/kasan.h > @@ -6,6 +6,8 @@ > > #ifndef __ASSEMBLY__ > > +#ifdef CONFIG_KASAN > + > /* > * The following comment was copied from arm64: > * KASAN_SHADOW_START: beginning of the kernel virtual addresses. > @@ -33,13 +35,18 @@ > #define KASAN_SHADOW_START ((KASAN_SHADOW_END - KASAN_SHADOW_SIZE) & PGDIR_MASK) > #define KASAN_SHADOW_END MODULES_LOWEST_VADDR > > -#ifdef CONFIG_KASAN > #define KASAN_SHADOW_OFFSET _AC(CONFIG_KASAN_SHADOW_OFFSET, UL) > > void kasan_init(void); > asmlinkage void kasan_early_init(void); > void kasan_swapper_init(void); > > -#endif > +#else /* CONFIG_KASAN */ > + > +#define KASAN_SHADOW_START MODULES_LOWEST_VADDR > +#define KASAN_SHADOW_END MODULES_LOWEST_VADDR > + > +#endif /* CONFIG_KASAN */ > + > #endif > #endif /* __ASM_KASAN_H */ > diff --git a/arch/riscv/mm/init.c b/arch/riscv/mm/init.c > index 0e8c20adcd98..1f9bb95c2169 100644 > --- a/arch/riscv/mm/init.c > +++ b/arch/riscv/mm/init.c > @@ -1494,7 +1494,7 @@ static void __init preallocate_pgd_pages_range(unsigned long start, unsigned lon > panic("Failed to pre-allocate %s pages for %s area\n", lvl, area); > } > > -#define PAGE_END KASAN_SHADOW_START > +#define PAGE_END (PAGE_OFFSET + KERN_VIRT_SIZE) > > void __init pgtable_cache_init(void) > { Looks good and cleaner, you can add: Reviewed-by: Alexandre Ghiti Thanks, Alex