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 CD4DBC25B7B for ; Tue, 14 May 2024 14:05:17 +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:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=53jtXtFZbRXcyyBHMt9A8bJsbtstVpu5aDIhwFO6RrA=; b=w3Z+N83y4W54sU 2tMO69JyNfc2tH114LgSJe2+P8ttOYp9YhthJxbd0RJhNb5ogmjgPmvpViFInnHZFl77Xl3wlU/uz aU876S+I1KVGti9/x/jLmUfpvKFS7ztEeeOO8LqHNpkbSzungKbEcWtR3OvKMLObcpfLaEYQxXpA1 QxkOvSETnNzhZHgu/2JGAilzJOzaJKsTSalvr6TL4GykfC7E8fbJGrFTrZNRoU5MpVggl+TelJ3Tv zR/iuWEJXtd/NVBtW9ygGkDZ07VpCp8pefvMgK7EKTAYR3HBr/LvyKECLfGlP3YMzcrN+9RTF1ysk FuR7g2D6olncPM8QI2gA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1s6smI-0000000G7Rj-0v1o; Tue, 14 May 2024 14:05:14 +0000 Received: from dfw.source.kernel.org ([139.178.84.217]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1s6smD-0000000G7PE-3c1s for linux-riscv@lists.infradead.org; Tue, 14 May 2024 14:05:11 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 618796126D; Tue, 14 May 2024 14:05:09 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id BECB4C32781; Tue, 14 May 2024 14:05:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1715695509; bh=oxMeKBSMHMQ7nR2cm5Yl3ZY7RY3tugjaWnxRJMQRo0c=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=rYtSJeVMCifMMvCoAZTlKZARdYfjyGb+3HXKoeh+9gLb/UkaJfTd3fdRakqc0wiiH xli61NfPUMpvvGx5MC2NpP4aFHaN7qIflyQLsdsGYfftEKuMMD4ZDdwSMxKUopldg2 epoHMB0A0f3xCqgRT8XnILBwq4c/Qcf+I9hdtDNmbMUoN6M+E4TfZeNPnRXQe7VCEi mVVd21lXjUiNzuH2g3rQ4vZwbs8BiVsB38K+pOqnMbn3sV+WHj2eBwtH9deDcFJFka VMVpGHW1o/zEaD/fzjuO4Rbeu3m9Kilyv7C53dWfpR7M8Aa7K8gCfy9ZFkXpBtkQwB u0bIh5mMUxCRg== From: =?UTF-8?q?Bj=C3=B6rn=20T=C3=B6pel?= To: Alexandre Ghiti , Albert Ou , David Hildenbrand , Palmer Dabbelt , Paul Walmsley , linux-riscv@lists.infradead.org Subject: [PATCH v2 1/8] riscv: mm: Pre-allocate vmemmap/direct map PGD entries Date: Tue, 14 May 2024 16:04:39 +0200 Message-Id: <20240514140446.538622-2-bjorn@kernel.org> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20240514140446.538622-1-bjorn@kernel.org> References: <20240514140446.538622-1-bjorn@kernel.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240514_070510_039089_0E549E27 X-CRM114-Status: GOOD ( 13.95 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Lorenzo Stoakes , Chethan Seshadri , linux-kernel@vger.kernel.org, Andrew Bresticker , =?UTF-8?q?Bj=C3=B6rn=20T=C3=B6pel?= , Santosh Mamila , linux-mm@kvack.org, Sivakumar Munnangi , virtualization@lists.linux-foundation.org, Oscar Salvador Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org RnJvbTogQmrDtnJuIFTDtnBlbCA8Ympvcm5Acml2b3NpbmMuY29tPgoKVGhlIFJJU0MtViBwb3J0 IGNvcGllcyB0aGUgUEdEIHRhYmxlIGZyb20gaW5pdF9tbS9zd2FwcGVyX3BnX2RpciB0bwphbGwg dXNlcmxhbmQgcGFnZSB0YWJsZXMsIHdoaWNoIG1lYW5zIHRoYXQgaWYgdGhlIFBHRCBsZXZlbCB0 YWJsZSBpcwpjaGFuZ2VkLCBvdGhlciBwYWdlIHRhYmxlcyBoYXMgdG8gYmUgdXBkYXRlZCBhcyB3 ZWxsLgoKSW5zdGVhZCBvZiBoYXZpbmcgdGhlIFBHRCBjaGFuZ2VzIHJpcHBsZSBvdXQgdG8gYWxs IHRhYmxlcywgdGhlCnN5bmNocm9uaXphdGlvbiBjYW4gYmUgYXZvaWRlZCBieSBwcmUtYWxsb2Nh dGluZyB0aGUgUEdEIGVudHJpZXMvcGFnZXMKYXQgYm9vdCwgYXZvaWRpbmcgdGhlIHN5bmNocm9u aXphdGlvbiBhbGwgdG9nZXRoZXIuCgpUaGlzIGlzIGN1cnJlbnRseSBkb25lIGZvciB0aGUgYnBm L21vZHVsZXMsIGFuZCB2bWFsbG9jIFBHRCByZWdpb25zLgpFeHRlbmQgdGhpcyBzY2hlbWUgZm9y IHRoZSBQR0QgcmVnaW9ucyB0b3VjaGVkIGJ5IG1lbW9yeSBob3RwbHVnZ2luZy4KClByZXBhcmUg dGhlIFJJU0MtViBwb3J0IGZvciBtZW1vcnkgaG90cGx1ZyBieSBwcmUtYWxsb2NhdGUKdm1lbW1h cC9kaXJlY3QgbWFwIGVudHJpZXMgYXQgdGhlIFBHRCBsZXZlbC4gVGhpcyB3aWxsIHJvdWdobHkg d2FzdGUKfjEyOCB3b3J0aCBvZiA0SyBwYWdlcyB3aGVuIG1lbW9yeSBob3RwbHVnZ2luZyBpcyBl bmFibGVkIGluIHRoZQprZXJuZWwgY29uZmlndXJhdGlvbi4KClNpZ25lZC1vZmYtYnk6IEJqw7Zy biBUw7ZwZWwgPGJqb3JuQHJpdm9zaW5jLmNvbT4KLS0tCiBhcmNoL3Jpc2N2L2luY2x1ZGUvYXNt L2thc2FuLmggfCA0ICsrLS0KIGFyY2gvcmlzY3YvbW0vaW5pdC5jICAgICAgICAgICB8IDcgKysr KysrKwogMiBmaWxlcyBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9rYXNhbi5oIGIvYXJjaC9yaXNjdi9p bmNsdWRlL2FzbS9rYXNhbi5oCmluZGV4IDBiODVlMzYzZTc3OC4uZTZhMDA3MWJkYjU2IDEwMDY0 NAotLS0gYS9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2thc2FuLmgKKysrIGIvYXJjaC9yaXNjdi9p bmNsdWRlL2FzbS9rYXNhbi5oCkBAIC02LDggKzYsNiBAQAogCiAjaWZuZGVmIF9fQVNTRU1CTFlf XwogCi0jaWZkZWYgQ09ORklHX0tBU0FOCi0KIC8qCiAgKiBUaGUgZm9sbG93aW5nIGNvbW1lbnQg d2FzIGNvcGllZCBmcm9tIGFybTY0OgogICogS0FTQU5fU0hBRE9XX1NUQVJUOiBiZWdpbm5pbmcg b2YgdGhlIGtlcm5lbCB2aXJ0dWFsIGFkZHJlc3Nlcy4KQEAgLTM0LDYgKzMyLDggQEAKICAqLwog I2RlZmluZSBLQVNBTl9TSEFET1dfU1RBUlQJKChLQVNBTl9TSEFET1dfRU5EIC0gS0FTQU5fU0hB RE9XX1NJWkUpICYgUEdESVJfTUFTSykKICNkZWZpbmUgS0FTQU5fU0hBRE9XX0VORAlNT0RVTEVT X0xPV0VTVF9WQUREUgorCisjaWZkZWYgQ09ORklHX0tBU0FOCiAjZGVmaW5lIEtBU0FOX1NIQURP V19PRkZTRVQJX0FDKENPTkZJR19LQVNBTl9TSEFET1dfT0ZGU0VULCBVTCkKIAogdm9pZCBrYXNh bl9pbml0KHZvaWQpOwpkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9tbS9pbml0LmMgYi9hcmNoL3Jp c2N2L21tL2luaXQuYwppbmRleCAyNTc0ZjZhM2IwZTcuLjViOGNkZmFmYjUyYSAxMDA2NDQKLS0t IGEvYXJjaC9yaXNjdi9tbS9pbml0LmMKKysrIGIvYXJjaC9yaXNjdi9tbS9pbml0LmMKQEAgLTI3 LDYgKzI3LDcgQEAKIAogI2luY2x1ZGUgPGFzbS9maXhtYXAuaD4KICNpbmNsdWRlIDxhc20vaW8u aD4KKyNpbmNsdWRlIDxhc20va2FzYW4uaD4KICNpbmNsdWRlIDxhc20vbnVtYS5oPgogI2luY2x1 ZGUgPGFzbS9wZ3RhYmxlLmg+CiAjaW5jbHVkZSA8YXNtL3NlY3Rpb25zLmg+CkBAIC0xNDg4LDEw ICsxNDg5LDE2IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBwcmVhbGxvY2F0ZV9wZ2RfcGFnZXNfcmFu Z2UodW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uCiAJcGFuaWMoIkZhaWxlZCB0byBw cmUtYWxsb2NhdGUgJXMgcGFnZXMgZm9yICVzIGFyZWFcbiIsIGx2bCwgYXJlYSk7CiB9CiAKKyNk ZWZpbmUgUEFHRV9FTkQgS0FTQU5fU0hBRE9XX1NUQVJUCisKIHZvaWQgX19pbml0IHBndGFibGVf Y2FjaGVfaW5pdCh2b2lkKQogewogCXByZWFsbG9jYXRlX3BnZF9wYWdlc19yYW5nZShWTUFMTE9D X1NUQVJULCBWTUFMTE9DX0VORCwgInZtYWxsb2MiKTsKIAlpZiAoSVNfRU5BQkxFRChDT05GSUdf TU9EVUxFUykpCiAJCXByZWFsbG9jYXRlX3BnZF9wYWdlc19yYW5nZShNT0RVTEVTX1ZBRERSLCBN T0RVTEVTX0VORCwgImJwZi9tb2R1bGVzIik7CisJaWYgKElTX0VOQUJMRUQoQ09ORklHX01FTU9S WV9IT1RQTFVHKSkgeworCQlwcmVhbGxvY2F0ZV9wZ2RfcGFnZXNfcmFuZ2UoVk1FTU1BUF9TVEFS VCwgVk1FTU1BUF9FTkQsICJ2bWVtbWFwIik7CisJCXByZWFsbG9jYXRlX3BnZF9wYWdlc19yYW5n ZShQQUdFX09GRlNFVCwgUEFHRV9FTkQsICJkaXJlY3QgbWFwIik7CisJfQogfQogI2VuZGlmCi0t IAoyLjQwLjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpsaW51eC1yaXNjdiBtYWlsaW5nIGxpc3QKbGludXgtcmlzY3ZAbGlzdHMuaW5mcmFkZWFkLm9y ZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXJpc2N2 Cg== From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp2.osuosl.org (smtp2.osuosl.org [140.211.166.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BEB65145344 for ; Tue, 14 May 2024 14:05:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=140.211.166.133 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1715695512; cv=none; b=KeurRa1mg9itHtat8IZQzn5Oor5PqR03kaJNafwugmJ6aGuSuiAG0DZgfngwzhLOSaEUd8Aj1D8uy392sJyPUSFTTzr7WyTnHZv9Z9Z0B6iULX3QLP4/Y46mMGO6/ENOkGsurBVj2UEB/9Aq6IHnPz+EK5e7tHKiMS1fREGLYVA= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1715695512; c=relaxed/simple; bh=oxMeKBSMHMQ7nR2cm5Yl3ZY7RY3tugjaWnxRJMQRo0c=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=uAQZ3b1tTqf7ZP1OCKuy/N6Zp3jdiTH67b1GiOUawGB3ueXUnM7wiXHIeyiM4sn0CIGlPeR7pvepFr6EkzUeITganZWa3Xchp/t16TwzVKsh4jbfVGL2t1y3rlgJ4JLMHqm106JxkbwnDKBewaiHFHlX00pCTcCbppUye6U/isE= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=rYtSJeVM; arc=none smtp.client-ip=140.211.166.133 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="rYtSJeVM" Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id 555CC403C7 for ; Tue, 14 May 2024 14:05:11 +0000 (UTC) X-Virus-Scanned: amavis at osuosl.org X-Spam-Flag: NO X-Spam-Score: -4.401 X-Spam-Level: Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP id o5s3ND8wxKdU for ; Tue, 14 May 2024 14:05:10 +0000 (UTC) Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=2604:1380:4641:c500::1; helo=dfw.source.kernel.org; envelope-from=bjorn@kernel.org; receiver= DMARC-Filter: OpenDMARC Filter v1.4.2 smtp2.osuosl.org 6E416402E8 Authentication-Results: smtp2.osuosl.org; dmarc=pass (p=none dis=none) header.from=kernel.org DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org 6E416402E8 Authentication-Results: smtp2.osuosl.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256 header.s=k20201202 header.b=rYtSJeVM Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by smtp2.osuosl.org (Postfix) with ESMTPS id 6E416402E8 for ; Tue, 14 May 2024 14:05:10 +0000 (UTC) Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 618796126D; Tue, 14 May 2024 14:05:09 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id BECB4C32781; Tue, 14 May 2024 14:05:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1715695509; bh=oxMeKBSMHMQ7nR2cm5Yl3ZY7RY3tugjaWnxRJMQRo0c=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=rYtSJeVMCifMMvCoAZTlKZARdYfjyGb+3HXKoeh+9gLb/UkaJfTd3fdRakqc0wiiH xli61NfPUMpvvGx5MC2NpP4aFHaN7qIflyQLsdsGYfftEKuMMD4ZDdwSMxKUopldg2 epoHMB0A0f3xCqgRT8XnILBwq4c/Qcf+I9hdtDNmbMUoN6M+E4TfZeNPnRXQe7VCEi mVVd21lXjUiNzuH2g3rQ4vZwbs8BiVsB38K+pOqnMbn3sV+WHj2eBwtH9deDcFJFka VMVpGHW1o/zEaD/fzjuO4Rbeu3m9Kilyv7C53dWfpR7M8Aa7K8gCfy9ZFkXpBtkQwB u0bIh5mMUxCRg== From: =?UTF-8?q?Bj=C3=B6rn=20T=C3=B6pel?= To: Alexandre Ghiti , Albert Ou , David Hildenbrand , Palmer Dabbelt , Paul Walmsley , linux-riscv@lists.infradead.org Cc: =?UTF-8?q?Bj=C3=B6rn=20T=C3=B6pel?= , 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 Subject: [PATCH v2 1/8] riscv: mm: Pre-allocate vmemmap/direct map PGD entries Date: Tue, 14 May 2024 16:04:39 +0200 Message-Id: <20240514140446.538622-2-bjorn@kernel.org> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20240514140446.538622-1-bjorn@kernel.org> References: <20240514140446.538622-1-bjorn@kernel.org> Precedence: bulk X-Mailing-List: virtualization@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From: Björn Töpel 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örn Töpel --- 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/kasan.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(unsigned 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, "direct map"); + } } #endif -- 2.40.1