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 B40A4EE14AA for ; Sat, 9 Sep 2023 20:17:40 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 49ADE6B0122; Sat, 9 Sep 2023 16:17:40 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 422C76B0123; Sat, 9 Sep 2023 16:17:40 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1D9846B0124; Sat, 9 Sep 2023 16:17:40 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 056396B0122 for ; Sat, 9 Sep 2023 16:17:40 -0400 (EDT) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id D54041205B7 for ; Sat, 9 Sep 2023 20:17:39 +0000 (UTC) X-FDA: 81218169438.24.DD5DFF3 Received: from wout4-smtp.messagingengine.com (wout4-smtp.messagingengine.com [64.147.123.20]) by imf17.hostedemail.com (Postfix) with ESMTP id B85AB4000D for ; Sat, 9 Sep 2023 20:17:37 +0000 (UTC) Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=sholland.org header.s=fm2 header.b="r E1qegE"; dkim=pass header.d=messagingengine.com header.s=fm1 header.b="t 3ES3w7"; spf=pass (imf17.hostedemail.com: domain of samuel@sholland.org designates 64.147.123.20 as permitted sender) smtp.mailfrom=samuel@sholland.org; dmarc=pass (policy=none) header.from=sholland.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1694290658; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=u+R27fQSLabNs20twvWYROSpY1egJDSSJ6jgm8OSGJ4=; b=AQq4w2kvmGNRJz4QC4XKvfpos6ImUlrvdfj1ha5mpE2pooBRRdnWN+n17Utezn0BQVJLYl Uic+JG0g0dB8Y7wsau1Nh+34nZ9BiuLiP0Eqfxz6NU+6SvKyFsAcD7Px4f11gMDfErJwMT a4ynjXWNoFRxAa8E/4p+Dt0cykbddaY= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1694290658; a=rsa-sha256; cv=none; b=VZwW0ZDfWqPEUgMrhhJdjqMa/QH+hEkVgOoBdzReyY3/zPICjvQ7wDjiFaGm0Z6oBks1Li 2XKvMYaxtKZ8d1uQaocLvb7qiqmZkTPDOIVKcPBJ54RbGakRabwZiKkg+FhPHm6TGmOExb mzCEarqLMQ+vVq5n0yT9RASIQhSaWWA= ARC-Authentication-Results: i=1; imf17.hostedemail.com; dkim=pass header.d=sholland.org header.s=fm2 header.b="r E1qegE"; dkim=pass header.d=messagingengine.com header.s=fm1 header.b="t 3ES3w7"; spf=pass (imf17.hostedemail.com: domain of samuel@sholland.org designates 64.147.123.20 as permitted sender) smtp.mailfrom=samuel@sholland.org; dmarc=pass (policy=none) header.from=sholland.org Received: from compute6.internal (compute6.nyi.internal [10.202.2.47]) by mailout.west.internal (Postfix) with ESMTP id DBC32320090E; Sat, 9 Sep 2023 16:17:35 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute6.internal (MEProxy); Sat, 09 Sep 2023 16:17:36 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sholland.org; h= cc:cc:content-transfer-encoding:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to; s=fm2; t=1694290655; x= 1694377055; bh=u+R27fQSLabNs20twvWYROSpY1egJDSSJ6jgm8OSGJ4=; b=r E1qegEdZ8OH3AdJXRXbJ/3z8lj+sZPmBGODILRCdn0bGZqET9HOPF/BLhEBOPWJE UB3KaCLKmFAO7lp8BrUybwd5JEtyvovEXTUm/VmGk42tvImQ/h1auBQeBtI4ZrhT aDxPkcjwdxS/Vx/1vXS24IxBeW3VY7w+Pir/r9JlSvgmzjjel8UR77T7I/WxZ5Qy WrsZdAs+ZtD9Fx0mBj+WYsGrqz2QPzxb4fBSdpKTbxGaX3m+avHeZx/UaSJ8ifMk VNKZKqZ4blwejANEGo7AjjYSBsVnQrjxPdzkX67JnSHX3Bmx4vGTU9gt/tIia9MH rdbMvtWfLFRnhZcL2DsnQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:date:date:feedback-id:feedback-id:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1694290655; x= 1694377055; bh=u+R27fQSLabNs20twvWYROSpY1egJDSSJ6jgm8OSGJ4=; b=t 3ES3w7Sl5IIg4IQUHFQ3gL5Ri8nvST3n+1Ut3ygOL3N7iqih9+T6xLJwRv5Wjyjs wOqv7gl99t7WiQf7lzZ5RWiiA5iUoIK5P6RX2tIHpx/nyo4TMG+QSDWnJeJEABei JGombEGeOD8hwPZglBCGnCYNSGzA+F0isXNVK+jhUOz/VZLGQpBIpp7Dr5Dz6/A3 gz5mpQIc2RCL634Iz+BnysxVcZmKDJyr3B8pNnuP5JA65ewDofu+t8isLrYema1z HMbTfqUFykfl/O7GcJVhKD53ou+LN47Z5/r9H3gRi5/sutIF1k/lOm3kTXKS7tRB b0j2F6Y/wxhM0WBRYj0Kg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedviedrudehledgudegiecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enucfjughrpefhvfevufffkffojghfggfgsedtkeertdertddtnecuhfhrohhmpefurghm uhgvlhcujfholhhlrghnugcuoehsrghmuhgvlhesshhhohhllhgrnhgurdhorhhgqeenuc ggtffrrghtthgvrhhnpedukeetueduhedtleetvefguddvvdejhfefudelgfduveeggeeh gfdufeeitdevteenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfh hrohhmpehsrghmuhgvlhesshhhohhllhgrnhgurdhorhhg X-ME-Proxy: Feedback-ID: i0ad843c9:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sat, 9 Sep 2023 16:17:34 -0400 (EDT) From: Samuel Holland To: Palmer Dabbelt , Alexandre Ghiti , linux-riscv@lists.infradead.org Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Samuel Holland Subject: [PATCH 3/7] riscv: mm: Use a fixed layout for the MM context ID Date: Sat, 9 Sep 2023 15:16:31 -0500 Message-ID: <20230909201727.10909-4-samuel@sholland.org> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230909201727.10909-1-samuel@sholland.org> References: <20230909201727.10909-1-samuel@sholland.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Stat-Signature: 1tjq8toswt7pr8habsjcuijmcakypa6b X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: B85AB4000D X-Rspam-User: X-HE-Tag: 1694290657-534380 X-HE-Meta: U2FsdGVkX19cBEdT5eaZ5l6Rt37xSJn2cWHZmFVd9afJtHKAi9BkozqaKk2UziIcBLPABmHpkXZG5/AcMXQbB4a8uTy6vob5ZkIjv+r97rad9OE5f9Q9aXe4X2Kza1SI1XVJzHC+hDnJKKEQviL2Z68T01YDQnRv2BC+mwhnjvuPTZhTSpYw+ILbCk1ONGQPQrhApcHoUJD0X3dj1wgk0MTOGXINiarD5iuI+5M7KW56sTeVtUUkZUjOSDp02xOj78ZAtSZN2XyXx5dCTv1bXG3rykwT2d6fHajVgJddZkZas6boEC+cvd10Vxdi2a6Leih/tYy793by5vA7GQYzCQ7aD4M8U1ySJdpaskmihB8Nif1OJUCRZrDjiTmWVxVb3kfZOg9epQBCCU4vVBGgWkDKz4KlmtQUHa1EJvC52z2dmRVsVfIE3kJwEzK42Fczz1cw2cPUXCQgTTPqYB05mttxkgtLjAJV3OsbX3E/MynaO4Vpwl+CYE8TRC1XZolU0OALYAnN+L8UB0UTQBrYCWFK7+uwz9hef6l4BkAy/hn6xMgErjb5VM09V1cCUUSUk19YLp38H8iFRIMttdiLh5wYLZaWzQY/gipCyhy4V11BKJuAZpOnU9GG8pWKSDcIM8phlrs2EgqoqkY7yPwJNK/CtdS7WR7HQEHUolsDr/tLrKs4+Kn3rfr8QymJ/VeOzcQN2PrWAcjlVwp1duWluI1E3e3+Rj9/68tpaNVg8dRFb/2j62ZUsJ21ZULD0cfpRcQE4H4+1xckj13siO3roY8MUHUtSi0TkjR6Xo/nTtwEPObdumw70E63Ba50UOB9mm5qA6ZbbOPSZQ7CfB1M+pJxL9k1INmwnF0sGeKGWEBj+a7oTSZ5O7vEf/wYNkzrp6F0ikEBw9UCPkmVLLu7CYKee8lts+gyGVcyslm8fZOVK2LA+n10GL/ETXvmD27LPZVtcj4N9ypI07f5f/h thbTffHp fKotxTeJiFd+OYInSwVKI1V2/3YKhJW3jzk/yGXufxjth7QPAztbp+mpcpsZH/RZagu+EZotZIj/bj2TbqZgPQ02aa+HcT0wpi7u1zbXZAy7nBbxSuVUu/12AXyiXTrDIL9cim1sP7u5yvf9lSqmmDwob2nE/eZ2VuuhG5uyldw1mpLHVdmrkLT6YwNGfAi2aHMYduYOQtAotScdB7vIq+7NvINYJ8gWA5HWKd5rb1WRJRzlCfI8y3PFn2Aknd9+b5l/RCYKG8w0ufYxqq3rPLAcfFGxcCl5GWogjosVZ9j2OwT/ukC4WV+T54iZ+HnCyM1/8 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: Currently, the size of the ASID field in the MM context ID dynamically depends on the number of hardware-supported ASID bits. This requires reading a global variable to extract either field from the context ID. Instead, allocate the maximum possible number of bits to the ASID field, so the layout of the context ID is known at compile-time. Signed-off-by: Samuel Holland --- arch/riscv/include/asm/mmu.h | 4 ++-- arch/riscv/include/asm/tlbflush.h | 2 -- arch/riscv/mm/context.c | 6 ++---- 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/arch/riscv/include/asm/mmu.h b/arch/riscv/include/asm/mmu.h index a550fbf770be..dc0273f7905f 100644 --- a/arch/riscv/include/asm/mmu.h +++ b/arch/riscv/include/asm/mmu.h @@ -26,8 +26,8 @@ typedef struct { #endif } mm_context_t; -#define cntx2asid(cntx) ((cntx) & asid_mask) -#define cntx2version(cntx) ((cntx) & ~asid_mask) +#define cntx2asid(cntx) ((cntx) & SATP_ASID_MASK) +#define cntx2version(cntx) ((cntx) & ~SATP_ASID_MASK) void __init create_pgd_mapping(pgd_t *pgdp, uintptr_t va, phys_addr_t pa, phys_addr_t sz, pgprot_t prot); diff --git a/arch/riscv/include/asm/tlbflush.h b/arch/riscv/include/asm/tlbflush.h index e2960c9c16e8..e55831edfc19 100644 --- a/arch/riscv/include/asm/tlbflush.h +++ b/arch/riscv/include/asm/tlbflush.h @@ -12,8 +12,6 @@ #include #ifdef CONFIG_MMU -extern unsigned long asid_mask; - static inline void local_flush_tlb_all(void) { __asm__ __volatile__ ("sfence.vma" : : : "memory"); diff --git a/arch/riscv/mm/context.c b/arch/riscv/mm/context.c index 43d005f63253..b5170ac1b742 100644 --- a/arch/riscv/mm/context.c +++ b/arch/riscv/mm/context.c @@ -22,7 +22,6 @@ DEFINE_STATIC_KEY_FALSE(use_asid_allocator); static unsigned long asid_bits; static unsigned long num_asids; -unsigned long asid_mask; static atomic_long_t current_version; @@ -128,7 +127,7 @@ static unsigned long __new_context(struct mm_struct *mm) goto set_asid; /* We're out of ASIDs, so increment current_version */ - ver = atomic_long_add_return_relaxed(num_asids, ¤t_version); + ver = atomic_long_add_return_relaxed(BIT(SATP_ASID_BITS), ¤t_version); /* Flush everything */ __flush_context(); @@ -247,7 +246,6 @@ static int __init asids_init(void) /* Pre-compute ASID details */ if (asid_bits) { num_asids = 1 << asid_bits; - asid_mask = num_asids - 1; } /* @@ -255,7 +253,7 @@ static int __init asids_init(void) * at-least twice more than CPUs */ if (num_asids > (2 * num_possible_cpus())) { - atomic_long_set(¤t_version, num_asids); + atomic_long_set(¤t_version, BIT(SATP_ASID_BITS)); context_asid_map = bitmap_zalloc(num_asids, GFP_KERNEL); if (!context_asid_map) -- 2.41.0