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 1B90BC61D9A for ; Wed, 22 Nov 2023 01:08:31 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E82106B052A; Tue, 21 Nov 2023 20:08:26 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id E33336B052B; Tue, 21 Nov 2023 20:08:26 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C0E896B052C; Tue, 21 Nov 2023 20:08:26 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id AC7016B052A for ; Tue, 21 Nov 2023 20:08:26 -0500 (EST) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 8DBB4A02EA for ; Wed, 22 Nov 2023 01:08:26 +0000 (UTC) X-FDA: 81483804612.17.380D79B Received: from mail-il1-f181.google.com (mail-il1-f181.google.com [209.85.166.181]) by imf24.hostedemail.com (Postfix) with ESMTP id BA7B3180011 for ; Wed, 22 Nov 2023 01:08:24 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=sifive.com header.s=google header.b=NHXz72V4; dmarc=pass (policy=reject) header.from=sifive.com; spf=pass (imf24.hostedemail.com: domain of samuel.holland@sifive.com designates 209.85.166.181 as permitted sender) smtp.mailfrom=samuel.holland@sifive.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1700615304; 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=b39ZSDVnn3/TpDDYcLNRgBYhWVyekPNc8OuxKxdgheo=; b=B1yqDy2kjYbVPFPpmXPWUhbmYy0NOf07BqL88/5hxtkEQaA39Wjp6tkkC3GLgTjNft36l7 qI6b6kYGD6dX+aWsejaia5uDr8leEGwXRn63PGnDOwXP+F5ESb0zUGq2N8LBRGgBya6uYr 8U6VdBDsLyaYQOweK06dBDZ3S0+y6X8= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=sifive.com header.s=google header.b=NHXz72V4; dmarc=pass (policy=reject) header.from=sifive.com; spf=pass (imf24.hostedemail.com: domain of samuel.holland@sifive.com designates 209.85.166.181 as permitted sender) smtp.mailfrom=samuel.holland@sifive.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1700615304; a=rsa-sha256; cv=none; b=3hGskMHwcux6eDlet8CxCzDoB8ArLaHTUZhzfSSPRDDuRqmCN/DTG3C8+/TTeknpW/P4RP 18f5TI2fl8HbcxUcc5fVbKVfkkxtCTltjBiKKfLDxgPk7bpUIqa63uJZN+nR7zwCinCHZS nXJvpy86cKUVpMSDFZzFcVYp/jxZwcg= Received: by mail-il1-f181.google.com with SMTP id e9e14a558f8ab-359d27f6d46so19882915ab.3 for ; Tue, 21 Nov 2023 17:08:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; t=1700615304; x=1701220104; darn=kvack.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=b39ZSDVnn3/TpDDYcLNRgBYhWVyekPNc8OuxKxdgheo=; b=NHXz72V4AvAntZornk6h1HyMLuBrvCCFq2Up1liyt0cvGV7sF+yOAnJaLgUcR0HUD5 nXUfkiyrBa6S7jY7b3XYV2K1rbp9KmAg10R+Vqx+BDZlLLZuXk+LE5WNS6i77fgWLuhm QFuytjJyzrrYtFXfQM/Y9zGBXowezA7stNGJLknIvcSrF9n/XtYV8Ckx9UWW10fS1tfR Z9oXtZPYope/yltPM6TJo+Y+fDnI/MrQY/Esoad7BJ8/atnmZpI5ITskPPbvQffO+3V/ QujrGzrqYbBZWTe6X+HAekErrygMWKStHxdPtW4bC1IMgjEBVz0TPtEBzFNjYtqVLpXn QSsQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700615304; x=1701220104; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=b39ZSDVnn3/TpDDYcLNRgBYhWVyekPNc8OuxKxdgheo=; b=NduQ8aKwjchfg/p/SyjLxMDy5p2OqYV1qOtBKXXwiJxuipSdb+gO1XKgtr6bHmblBQ M35XasdaqE8wUy9ct7YCLkY/mV5MLiWiUdyRwqINU/0QxowV+4R1jS4Qvan+usS7842K nYblBOPJOXDMI+v8vRl737sgLbgEq/2ERaF5LClpUN+hV5wz+src9r4OiI1BqL14Qp5R bmfzoZYrOFC5MrMzVY33A9NIbccxT7ftFLk4ejA3sqWSVvu7RXDLCiw40BmlgoqUlZBt l+1kE72Br2nkc7HkAyrMkNppUAPGQXxCYcSFtrT1S7MiLhl7p9UFpXwtM9Afa5mCXzRS MegQ== X-Gm-Message-State: AOJu0YwiQHBKDXxP1SExK2tRraddIuqYfUZ1jW7EZ7tW0BpvgQFgRCZh gFobYxdaM29JtwyMsSGkkivQlg== X-Google-Smtp-Source: AGHT+IGi2JpVuCgk8T+HgcOfCC/VHmmgf8iSnDwMNXS0Bc2add3cL906GsPfWT4iX9QyNn2xttBJig== X-Received: by 2002:a05:6e02:b48:b0:35b:2b49:d816 with SMTP id f8-20020a056e020b4800b0035b2b49d816mr721861ilu.13.1700615303918; Tue, 21 Nov 2023 17:08:23 -0800 (PST) Received: from sw06.internal.sifive.com ([4.53.31.132]) by smtp.gmail.com with ESMTPSA id bn5-20020a056a00324500b006be047268d5sm8713961pfb.174.2023.11.21.17.08.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Nov 2023 17:08:23 -0800 (PST) From: Samuel Holland To: Palmer Dabbelt , linux-riscv@lists.infradead.org Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, Alexandre Ghiti , Samuel Holland Subject: [PATCH v3 5/8] riscv: mm: Use a fixed layout for the MM context ID Date: Tue, 21 Nov 2023 17:07:16 -0800 Message-ID: <20231122010815.3545294-6-samuel.holland@sifive.com> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20231122010815.3545294-1-samuel.holland@sifive.com> References: <20231122010815.3545294-1-samuel.holland@sifive.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: BA7B3180011 X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: myk7rxqmbo73qcnmfeejxu7hmtc98tm8 X-HE-Tag: 1700615304-751293 X-HE-Meta: U2FsdGVkX1+RbJYM2ApdiQBH6rHtmSuHnh8lkKn6lozfOcnGRXQJr7sAUtHokrHvcmcK0/CaOdgImOEHHiq3jIosssLXnolaar7PoJglL8/xTV/4tRROC4Avnb2FoNVkqgdq0j/RBmNDqkszy3NjlyR3EWfC9JHHzU+szCJ9pM+9HJly14jbpWCNNmDFqhh7+OlZEuRqcobQShBWxTlTYR8tCNf0NLqcEn8HYDS6xy9mgwiuaEEei/rOS2YcocXUmQskIPFgkKOk6Ju353Fe4K59Po+t4uVebXbRnj2aM/roocDZ6YJq8hVWjQtXvMM/LNcUdijSQsKBABJhX5p9HndLdANJ+ftprzL3mxPBPK71at2SjyzKau6xzCYZ75N9GDZyzlu3W83q8nwIjgBB6eevioelHRHv46twieo+2vmge8BcqAp+GyawFfg0abnJsqW+f5KYqcppbIl9szC/3bMzFohtgM1lNvWD3hLsgThS44I0/liMgHdUcxXt8YROZJUs9e4J3A8wgaehzQ/b2FkT/sq3JaztdFKhQCPWVZW5ghzigFDnnag8hX4gwSBVYJDXCCkXki16PaLvwykA5Sb25YqHzWj0bKE5zfbtnX7FbqzDMkDuxS7nFujpuL4X7Tnj9OI8r5kSmtTx9WbIM19pzIDC6i2sY4x6hh1AZMwB6VXW0amq5Fl6IH+cNiiO6SZ+dLMVWS16YeQBe8hrvS7csRxQSwgAde/UcyH5ABxbGWox77Ie+QKUS5w1HFV4ehKB0dBW/nGXHXCcpja6ZBgJcvXX40EgcB2vY+clJD5kc2UP8xB9OwNNTSSHsSoUFx6krJg0PXI+vd6ePx+ydLrurrF5Gg/NzGf8ckM3xnqGk5aiOzX/oumrSpAReea2u3fHgEdJFvDO/3ol5XOhiLbOwhkBFVP99R/imI+GWAbl1P6rtI9jD+W10bnqWiAauk65z7tVjhe1kDnMkAf c4PUs9xz sSssqxfAxm5YIg4XPOPTUOlj9Lj1Ar7gcOgr6h2C41v/lIuXYCyr6a3Zv1SurSQHCd59R6s+hcSzyxv+IhXAuUgr1c39uCW4qToZQmmKRLHEAEdKwXJlc8S0SQULesXfDmEM/V5J6Ph3YckK6h/moKYgOpb8pSCGmc1a1j02APGd1MTpINMa6ptP0BiBTLZ1ZPbn3teYFhzp6ZmOxgKOkvkOyBJUMUr9V2yctUUsGxiVpTacIGwfHW4O6WJbO5T+7FgU6gL3rGFPhuo5ED+yVcfUpfkoPF0mnpoE7vD+PJSjgb8jG7tuZOXCBqzCyqggRV3sc3XyXbz0AMxOnGKc/h2Ov1/Cb7stfkgiA4rXIQGKxq3Cobyp//K/0UYfclZt1H3kOBQdMSi9JnCI= 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: 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 --- (no changes since v1) 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 3b393f765805..4448d907f2c9 100644 --- a/arch/riscv/include/asm/tlbflush.h +++ b/arch/riscv/include/asm/tlbflush.h @@ -15,8 +15,6 @@ #define FLUSH_TLB_NO_ASID ((unsigned long)-1) #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.42.0