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 39EFAC04FFE for ; Tue, 14 May 2024 15:57:58 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C34646B0347; Tue, 14 May 2024 11:57:57 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id BE4976B0348; Tue, 14 May 2024 11:57:57 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id AD3556B0349; Tue, 14 May 2024 11:57:57 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 8E4196B0347 for ; Tue, 14 May 2024 11:57:57 -0400 (EDT) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 4AAB3A12EC for ; Tue, 14 May 2024 15:57:57 +0000 (UTC) X-FDA: 82117457394.07.2DD81C3 Received: from mail-ed1-f50.google.com (mail-ed1-f50.google.com [209.85.208.50]) by imf02.hostedemail.com (Postfix) with ESMTP id 56C8480012 for ; Tue, 14 May 2024 15:57:55 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=rivosinc-com.20230601.gappssmtp.com header.s=20230601 header.b=oFISLqLM; spf=pass (imf02.hostedemail.com: domain of alexghiti@rivosinc.com designates 209.85.208.50 as permitted sender) smtp.mailfrom=alexghiti@rivosinc.com; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1715702275; 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:dkim-signature; bh=8YVPz8d9fNN7RmoGRWLz27p194UlG1xw9/YZRFhtwc4=; b=MFUSO8FzQ08R0V/p+QbnvqxJxuKYBQupzDOUNH6iAkI6t2o0wpldsnjjdXOTK/VAa2UPOk 7O2R62bVNo0fDF8/KUc7IgLaQ/cMJXgb5xdatNCaiXyLxEMTPz2/Jg7A9h3g/Fk58qPqlr VyC1SlRpSKmQSIcWEhJwnywf+2w+2A0= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=rivosinc-com.20230601.gappssmtp.com header.s=20230601 header.b=oFISLqLM; spf=pass (imf02.hostedemail.com: domain of alexghiti@rivosinc.com designates 209.85.208.50 as permitted sender) smtp.mailfrom=alexghiti@rivosinc.com; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1715702275; a=rsa-sha256; cv=none; b=R/9Q8DYzyEbTuS2/qdq6YjnYITLLHtzWeOeAMFerpcGCEmwH1b0izdZGukYioRL+4teyLe mwFN1CSugKmL/FRlK0zKCZapIwOVHq3hJ1BKdCWWgq0jvsBhWClXJiQSJ5c6lZMhfzQwiR 4aA7Z5zzJ4C9jehA+Tjc8NJTLLdo4P4= Received: by mail-ed1-f50.google.com with SMTP id 4fb4d7f45d1cf-56e56ee8d5cso449107a12.2 for ; Tue, 14 May 2024 08:57:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1715702274; x=1716307074; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=8YVPz8d9fNN7RmoGRWLz27p194UlG1xw9/YZRFhtwc4=; b=oFISLqLM1T30EJDNsVoKZELhgOmmtRz/NERe9EyPoxOmq/tKNM64tDApcpqcg9bTnE aqQaPV4+2sKrjZNCVN/DsnNFUC7wr/fhNAUpIIL3jaxvZs+XxNWurIMRPiK4Ky3j9U2d vWlkZpFWKDTlnM4BJwdb8K4UabxaVIji4EBIYzm6HhY5rRUmoPotEWQn5Pyr3gVW6rxD 7NvDmrAgJXTyoWq23AX98pUB+FO8iZ5dR/vabab/gNgH8Ie8HP7nwLELfbidMpurCiLG xI7FS0Azmvlr+opITSWMZ1Et+Uu9LUkE+x5Of1lN54VQ4KEc4cHWjaBQM0gpJPRg9rGW lt6g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1715702274; x=1716307074; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=8YVPz8d9fNN7RmoGRWLz27p194UlG1xw9/YZRFhtwc4=; b=kxU5M0hCSsHB3EQzGnd8XPMKuGgOBSAv2CXZK6cNXXzEpVg+lTCE5fIJS5PyjZO0Np 5XojtWPr+CUNeNg3rZWEHAxtLIcuz+6q9WoGLWnOOVOe1pho2F897jkAb78pZbbusX5s dP+S5eWWyHQV3pVy8SCXjIATxQIUUFd/pkXFmG0dsiw2Udt/vGuaGk721oHPWzB6Zt9r fEjOdpHcHb7oUTmpxbDBw71+h9FPwqKYvDwBNLsCOD7bnqZ0WLTCV74Fq7HbfBwIAypj ZKmvCN1H9aglGknd6//vDuohoZVjcz2N0/LXgZb9ik9U4ymLlDBrseep11zJRnxRGXuN iJww== X-Forwarded-Encrypted: i=1; AJvYcCXTLjT4alcvmf5KbX0YvCYwqJ8DHq58Ge6VMorX+8XcbonpYjtLOU5bKCJ8WYIb2ryXx39ThmjprAUxEfVLhiUfXoQ= X-Gm-Message-State: AOJu0YzPE6ryyDw1SiHyfK7K88xCT5FZ1yqwiQAtegmbtxNMpy4XWYQB fwAXk3zRY3aq2Lqpf2XlNfKOG0fyY9Ar8y9BVO2LXqZHAFJvh9I0RhEVonId1uMhHPwnP1DSBuB yIyuN55sw9gAHKuGZvjegwX6RSBP+SO3lvZegAw== X-Google-Smtp-Source: AGHT+IGpm9BtgF2gQRgKdtEpvWTCkNaf/J7ULsUq4SiDnv5BQvS5Vo6yygT4W4ORsVjJhPMMfM/u6EKEY/mm3nAcHd8= X-Received: by 2002:a17:907:9705:b0:a5a:7cd3:b2e7 with SMTP id a640c23a62f3a-a5a7cd3b463mr311306266b.11.1715702273691; Tue, 14 May 2024 08:57:53 -0700 (PDT) MIME-Version: 1.0 References: <20240514140446.538622-1-bjorn@kernel.org> <20240514140446.538622-2-bjorn@kernel.org> In-Reply-To: <20240514140446.538622-2-bjorn@kernel.org> From: Alexandre Ghiti Date: Tue, 14 May 2024 17:57:42 +0200 Message-ID: Subject: Re: [PATCH v2 1/8] riscv: mm: Pre-allocate vmemmap/direct map PGD entries To: =?UTF-8?B?QmrDtnJuIFTDtnBlbA==?= Cc: Albert Ou , David Hildenbrand , Palmer Dabbelt , Paul Walmsley , linux-riscv@lists.infradead.org, =?UTF-8?B?QmrDtnJuIFTDtnBlbA==?= , Andrew Bresticker , Chethan Seshadri , Lorenzo Stoakes , Oscar Salvador , Santosh Mamila , Sivakumar Munnangi , Sunil V L , linux-kernel@vger.kernel.org, linux-mm@kvack.org, virtualization@lists.linux-foundation.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: 56C8480012 X-Stat-Signature: iae1xdfncqmprq67hxge5qcwbpww9c3i X-HE-Tag: 1715702275-827450 X-HE-Meta: U2FsdGVkX19TJcjxpngk3ccOP8omY33XIVGKag7hWQUVlztW+vSu+ukOr8CJvR7cVrJBrqOefZx4lKMK2qBVIbgaKL61riNW5PPcgtwwyIHPexau2GNndSBEvk29xbQ1K6ow2MrM40b7Kn76UhEHgBraMLZ/Z5pYMWLWu1kklkKEJZkRYaNqvpD5Ef7Wogfy+WcScctLdtmcNQVSvF6VUE/EFpWQlN3Z9QlRJsIafRfTiDXwO48Ne7lxztpY6WW70DO7srevfwSAkxTTLkjl4vkSJFHVbRD2hrZHxYTvFGL90VHDHg08asHmp8AC1hB+aicDRsmdIPAUOo9PPEeSYvkNRHID4qrTzipxyl+WZJZh6w5yK7YSQ06/AhY7htVzTrghCy+io2SudGFdgq4HuSpcO/kBWDcNOiwmInZYsmpl9UWhMLCc+qfVCpHs/oDcfBx4FTRPDD71zLRJOSj7LOUInjZAWeWk0HYrKiwQAOwYCgaBYa2JzVRdeEgB6gwWftc/K/4mvR46ZWVx1ILkOGugdIOnpVER51P0MyikltIUPfEIW153xlXEKGny/ESyHFFUcBYxu2rJcOuPP/GpnAzjRibLygc/odYAnWmlLwYJFzAbDrVN5E7hOJi+cLz4yHWXo7mehbpk9yCmAtzIegT1Pw6kJTdVKUOk6y1p714sofV0vIQnz9kpJ9unuIgbA2wP2oP5kaENqKxhj6JLWlIltc4KLrvjWCyybYpU/uVw2CuTYnbU6Zu89UGTOflzltakB9kJ0e4myXaJUOS1lnu8ZEzodjFrHR8OlBx5EiDZEMz4we0hiQ7jjanrdU4oS8E7mHjLqvBcWoOFs4iBOUK6IDSOUaMiMLHti/TWcJnkKSV7E+jUYUaPuOHECGm3ga1FPzcA3e1MFzb4f0RFvhoQgtqdDnfSI2wgmpOuJ77BjwcpGXJKoGvGEOiKDPVKnnZqmoQ1Q37fw1ojeyT JZOdG1By PR6gJFtnQuYl8t7WQbpQu2Ti62IJHbqhf3n1fpuOHcALVHn1Zo8N/zqOBi5JNlLDEca4t6T6hASgEOOSptXSg2PxhPaLHY+PerxXrpdSrIPQpyTVONwkKsKgZLpBCNKAvSAiDPpjFkKJnJyEubgEnzX8I5U/vKhsY5YxSdt65bIfvlHxHSLElqWWvFOve2MpwIqMMgQjCfjZljgEAfh8JZ3HlEeUwqMos0cqhBWEcvFoPHjP+wtzkyrfTiveaRgSv1d8atEPlsSEuP8IZpUOtCsdgFzb93Jy1IG+5kwQ3lM3+HOTlvMi+ZPIK9KTdHucpkjrMJx/p8hUULCX7oxpyM+9XC77Qw+8z00cC5QmW8PIUAUVgyYWyyhIHTOZR+Vvjn8u69P+OxoIQdgY= 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: Hi Bj=C3=B6rn, On Tue, May 14, 2024 at 4:05=E2=80=AFPM Bj=C3=B6rn T=C3=B6pel wrote: > > From: Bj=C3=B6rn T=C3=B6pel > > The RISC-V port copies the PGD table from init_mm/swapper_pg_dir to > all userland page tables, which means that if the PGD level table is > changed, other page tables has to be updated as well. > > Instead of having the PGD changes ripple out to all tables, the > synchronization can be avoided by pre-allocating the PGD entries/pages > at boot, avoiding the synchronization all together. > > This is currently done for the bpf/modules, and vmalloc PGD regions. > Extend this scheme for the PGD regions touched by memory hotplugging. > > Prepare the RISC-V port for memory hotplug by pre-allocate > vmemmap/direct map entries at the PGD level. This will roughly waste > ~128 worth of 4K pages when memory hotplugging is enabled in the > kernel configuration. > > Signed-off-by: Bj=C3=B6rn T=C3=B6pel > --- > arch/riscv/include/asm/kasan.h | 4 ++-- > arch/riscv/mm/init.c | 7 +++++++ > 2 files changed, 9 insertions(+), 2 deletions(-) > > diff --git a/arch/riscv/include/asm/kasan.h b/arch/riscv/include/asm/kasa= n.h > index 0b85e363e778..e6a0071bdb56 100644 > --- a/arch/riscv/include/asm/kasan.h > +++ b/arch/riscv/include/asm/kasan.h > @@ -6,8 +6,6 @@ > > #ifndef __ASSEMBLY__ > > -#ifdef CONFIG_KASAN > - > /* > * The following comment was copied from arm64: > * KASAN_SHADOW_START: beginning of the kernel virtual addresses. > @@ -34,6 +32,8 @@ > */ > #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); > diff --git a/arch/riscv/mm/init.c b/arch/riscv/mm/init.c > index 2574f6a3b0e7..5b8cdfafb52a 100644 > --- a/arch/riscv/mm/init.c > +++ b/arch/riscv/mm/init.c > @@ -27,6 +27,7 @@ > > #include > #include > +#include > #include > #include > #include > @@ -1488,10 +1489,16 @@ static void __init preallocate_pgd_pages_range(un= signed long start, unsigned lon > panic("Failed to pre-allocate %s pages for %s area\n", lvl, area)= ; > } > > +#define PAGE_END KASAN_SHADOW_START > + > void __init pgtable_cache_init(void) > { > preallocate_pgd_pages_range(VMALLOC_START, VMALLOC_END, "vmalloc"= ); > if (IS_ENABLED(CONFIG_MODULES)) > preallocate_pgd_pages_range(MODULES_VADDR, MODULES_END, "= bpf/modules"); > + if (IS_ENABLED(CONFIG_MEMORY_HOTPLUG)) { > + preallocate_pgd_pages_range(VMEMMAP_START, VMEMMAP_END, "= vmemmap"); > + preallocate_pgd_pages_range(PAGE_OFFSET, PAGE_END, "direc= t map"); > + } > } > #endif > -- > 2.40.1 > As you asked, with https://lore.kernel.org/linux-riscv/20240514133614.87813-1-alexghiti@rivosi= nc.com/T/#u, you will be able to remove the usage of KASAN_SHADOW_START. But anyhow, you can add: Reviewed-by: Alexandre Ghiti Thanks, Alex