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 CFF6AC54798 for ; Thu, 29 Feb 2024 23:22:39 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A85556B00A3; Thu, 29 Feb 2024 18:22:26 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id A33396B00A4; Thu, 29 Feb 2024 18:22:26 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8D3BD6B00A5; Thu, 29 Feb 2024 18:22:26 -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 76D546B00A3 for ; Thu, 29 Feb 2024 18:22:26 -0500 (EST) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 59173A1447 for ; Thu, 29 Feb 2024 23:22:26 +0000 (UTC) X-FDA: 81846417492.22.4BF324A Received: from mail-oi1-f169.google.com (mail-oi1-f169.google.com [209.85.167.169]) by imf02.hostedemail.com (Postfix) with ESMTP id 8335F80017 for ; Thu, 29 Feb 2024 23:22:24 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=sifive.com header.s=google header.b=UCQdLiX2; spf=pass (imf02.hostedemail.com: domain of samuel.holland@sifive.com designates 209.85.167.169 as permitted sender) smtp.mailfrom=samuel.holland@sifive.com; dmarc=pass (policy=reject) header.from=sifive.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1709248944; 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=A+Ju3+5NsQ7zqLi78mVdBh82QtKzTZZzrfFOA+rFDFs=; b=or06n06OuxSnliozM3mFlgK8NBFy+dJio6TRvkBEYOGk8gUdzvkYadquy/gN6jG8pA17OF NYD4MPmgv1hgV2Td7vby6gE+lNrz6qHxBhU/02x9G9Lj/BCT1d5pyf+fuBVflUF6ioGDVo WqOGTqh52VFsHIYga47pFdqamCQ4lXc= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=sifive.com header.s=google header.b=UCQdLiX2; spf=pass (imf02.hostedemail.com: domain of samuel.holland@sifive.com designates 209.85.167.169 as permitted sender) smtp.mailfrom=samuel.holland@sifive.com; dmarc=pass (policy=reject) header.from=sifive.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1709248944; a=rsa-sha256; cv=none; b=JE5w7ll67i/nJUiS6v7iYVJSugjLfBpRKPIUnCVaOfnJaJ5XjXlVdwpcn4hwKUHuQUfaK9 aw1aOkORYa102OxdytR1zWd1PLRqQ2/t4BwWFeT8BYvSThoPSJ5+88db5i7ruJKxlqg2AC vUnavGG6VQKv7EfU75LZyIGp7g2xTuU= Received: by mail-oi1-f169.google.com with SMTP id 5614622812f47-3c1c3ab19c3so734907b6e.1 for ; Thu, 29 Feb 2024 15:22:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; t=1709248943; x=1709853743; 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=A+Ju3+5NsQ7zqLi78mVdBh82QtKzTZZzrfFOA+rFDFs=; b=UCQdLiX2vZMXhsvYtH8+vXY+sM3gU+hDepp/nZT0xycKoGcv2yF6oMeZEnRFE0Gn4A oiESHu1oQJXJe9ha9bJ+9Fsoj/dbLPPu3DhGmsLzME85c22vwIlQe03vgtsAh/5UHfp8 aFunHWOlbfzzedOESNhr+MEMsWPBICBrbDbGes1vkIP1chhsrrGzT8Si9cagJVhgxrti cTl+Xn02qcY0E5LA5nCskO1AHHMDvtr9QSzI+vQmYIVhe1BA0FoICQC6tWuF+2w4x2YY 4Np866HKweWhylhMCGI44RmBYJd8Iuoggjo2crCXNbDyyzTxSGKsFR/7k9W2d1p+eaVE oKxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709248943; x=1709853743; 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=A+Ju3+5NsQ7zqLi78mVdBh82QtKzTZZzrfFOA+rFDFs=; b=j0gDL5+PtIVCt/96NcWoZlxtTaGKY2LojdvwJLxIJCr1sQa5ZVbzJdn3Kap/jQlvz6 SnQxIgUUz+rqvr7fO+Cyu65owC4kbtMEN5RdWuW4SwsrVr2GihVzznHlrAeSQRbvTZlM Xl83MSMCMGGz81tiYncFn/qJvYQOoz7ZNdngAQXUQJPod3BzPqpajVYZDygR5Dy7Cu9X luj8qODNACsyuZlNJlfHeNWR5OVUkqmotZAKTThYpYMMB7k+dp7pHkv0eIY2JI6ddQM8 A7k/Mhh6TM30HGxE+iCmTJeo6jcOB/PTekeY/xmaG+XRPN7R/38GyUPck+NfrEzPS/Rw KgIA== X-Forwarded-Encrypted: i=1; AJvYcCXV69hh+U7YSHhvGHvFfND8q01VhnRDAPK01vJTuZujbsjurd48P7M2476L8z9mhL4O9sZlUzL7W25qLjc5ouR4C2Y= X-Gm-Message-State: AOJu0YxJroozqPFQZt+Zp5Bs7jOXz/C1mgehA9Tbk4goga+NW4ASaOgX qIWAoYgmD4g9G+CCbH9JiPqqlUhMgSHa22BY73sYGtgiQ5aG1QdpChjYquAPWDE= X-Google-Smtp-Source: AGHT+IHzbXWkwDmlfZ/eL4jDsB3ccQ2hOxgMwKxCvl8MiEGc4S4tbeeGWY8zmXhmQ74ouvbz4gXZvw== X-Received: by 2002:a05:6808:1447:b0:3c1:b28b:76f0 with SMTP id x7-20020a056808144700b003c1b28b76f0mr91074oiv.9.1709248943714; Thu, 29 Feb 2024 15:22:23 -0800 (PST) Received: from sw06.internal.sifive.com ([4.53.31.132]) by smtp.gmail.com with ESMTPSA id c6-20020aa78806000000b006e55aa75d6csm1779719pfo.122.2024.02.29.15.22.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Feb 2024 15:22: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 , Jisheng Zhang , Yunhui Cui , Samuel Holland Subject: [PATCH v5 10/13] riscv: mm: Use a fixed layout for the MM context ID Date: Thu, 29 Feb 2024 15:21:51 -0800 Message-ID: <20240229232211.161961-11-samuel.holland@sifive.com> X-Mailer: git-send-email 2.43.1 In-Reply-To: <20240229232211.161961-1-samuel.holland@sifive.com> References: <20240229232211.161961-1-samuel.holland@sifive.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 8335F80017 X-Rspam-User: X-Stat-Signature: xdk5onamiund4y8kpuqcg7wqc79tzdao X-Rspamd-Server: rspam01 X-HE-Tag: 1709248944-488602 X-HE-Meta: U2FsdGVkX1+tzxXGPNe7e9krqUKlnfQS5naQY41RgpD9DWmRzwVwmDmh1kw0503TfXmV7j0uAYAfeu3PHjABwiTvHwEyiHGEktofGzYhC1E24g3eQbdWdE4glbZjflDJKW+F84fHEdnZpY/27xXaOe4023bLHs1/46WzFcdaYND1OMPIL5TWAYZjbaWd1N1r5QoblUroju/5Xufy3ZU45KUAjTKImhjZPaWsVxWtbVsirOYjqJAAbd6z/2y68B+uBzBJy6XjMikHp7McxLlzCjq/yc5UVBuV6yeMcxUMqZ5u0dr+MR1NFUtK7USe4r+K2NUlwh6lEGEdjmBwE9v+zhPcAzEYX40QvbrVkZ1tp37vYsqv8XcOW33/NY94AkPk+i4PdfAq7++WxYniSzTQgZQ5LfRJe6HdhInT3VZQTTE5kBkYmpkoEy3cHfkpc+k0bOBXblnARBCPcRWEGu/QEYjZMsAmy+DpiDx2mR3RA1+j8gh5uMNsj5PBCD2ch72wlK4thtLwpLGX5aAPCUxLmzicrLxtBZFsn4hjBCYSXKkkqs95yyuToFsWtSaJ3kbT5OVS3e0AUXqt2D4bPF5l5fYLvw86XwCcWJWA9InlCT6CPoPWA0I5fwhfzcBkh7DUhLyjHzrfPZxKAAY6PTM1YCc2EElrFYL73CkyXsFRJMe4XQ+sRM6CBuF94J4LysyZI10aGPfuT2h5YUkSj+mmUetRbQaEuKFa/2zVqj4PhDbUsc4mb3uD3cXzGYPtfXUw1Uih50BLHikDz/+4L9SR+bfTC8Tc/uEx5bnLaMxxmyH29kRMzQJ5DuB7fqqvSAVvXkfYHMAAai8NpSbhlykThS6jLBDRYkisvge/ZlMyHnrksrY3Tv9fZkLa+yzoP9B4p9uUfR1DvbzdwTkry6Gsw7K9PGse4lyzNX2CKWcxUtvcOX0lxClVXczzKmCdv+VmqWv26aOKjTombj7r4c1 cCOGhfA4 YIDhbUMoOXq1G+PqfdIczibF1qqmJkSQdLnYlCsagM43E5M3rRz50+qWHc8NAxqwRxwXYBANdRQK40fwx5tSVg3wNPZEfVABRQD9xbmMcJ3ngcZeEsYuu4vNMRYEHVgwXiIrtqPz0CXUwpnuazfijX9vRMSIYz8pFrPj1fTcuWDazJ8L7qQ8K84EK6Xqev0xUK2GuHVF2kFq9gVT9+rVg16LqRBMipCiLVedJ8HGdAAgwF6TcHZHfpSzTerX3OCBfdCYmBD/VEWmST/FtOKo2B/BKAei9VzeVQB1X1CVjt/lj0AAOxu2ul5hEwtWCFiGVKChfI/uaC/emuXXA0BVHszjHOg1Ery7uhBM4NnUdkcS8fta0RVQOsJHR5Iv5OxG+ljFVd2WlSU3nYW03FeRGmS2QhkqaqgACehGNWtAb/oOkYO9h9rRkIJJ3K9y4P5H8Gv149m1uIhOinpw= 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. Reviewed-by: Alexandre Ghiti 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 8e329721375b..72e559934952 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 b562b3c44487..5315af06cd4d 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.43.1