From nobody Tue Apr 7 04:36:15 2026 Received: from CH1PR05CU001.outbound.protection.outlook.com (mail-northcentralusazon11010054.outbound.protection.outlook.com [52.101.193.54]) (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 75A0F33CEAA; Mon, 16 Mar 2026 05:24:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.193.54 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773638699; cv=fail; b=WaEiIbAUXvjA4UpoYmWzZ+l9f8GQ4KnS4C/7Ol1a7gjuk6OLVBdbzd4xCbX3e1/NulfZ1MCMeYTRFHghfID/d9AQSyQUjiXFIOkSi22Rn77FFi6jL+zcFRxJ+20ba2NCGVXxC8xLrKzi+TNBxcxlNpil0vg9R5T/y6esM1ZXxAY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773638699; c=relaxed/simple; bh=MFdKz7rqvr2ZeM+TKrsdBXY9DGc7ie1p+cEv1srLLDo=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=ADA4OFclf9zAzuSMfC96+OwjSbN80qsj+ohozXNJ7onLBT151TzOQN4DyILo/Yz0hgB4zMwXJ3U2Pz89SCMwBHM/fvkqsZ4za0RMH2Xr0AMzQj6uXNVzOfFfe0oGFKNBdsvP1Mz63wQTdpSHAy5Yn6PuZZEhXff4RKWlM7YDqZU= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=ZCLgAw9L; arc=fail smtp.client-ip=52.101.193.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="ZCLgAw9L" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=cn6pE7OYeFLrS/czE0EzpSTJtsVFFOuTEJCusvlJT0mqXcwPjNM5pNhP1gOm8w6+EN6eVAkOxyQtIjInRbU37s4kN6qOUrmSzes3Ctjjb8z4Oa+7ooi9XRaaft30G2XH8OGe/a98d2veFdgW5bhiRXBL93104VsVg/OVVKrk53VghcO03wKrygt2/tuz9Nf70sd/Xf/ihUvWF8DzuaWMPEiyJnxwPxOL5J4O3cUHCxMfITWV9waspxIAmR73BDX6KjdwmvJWNqI9KVY+TSpAPI1qLhxH4OIbiOMQpSSq+GTg2EpRbgytTSOS4QOqddnNn/ij7xPcyVrGPxtLNyIV3w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=BZxCkuRDPJ3Fw5YSsmFNTHQPUSGNHDCsHmzrXkPCG/w=; b=ShJFC+E/G+faw3RdiempK5xgXpr4Qe1HxIM983ApyJTWrfuf8UWcojmUvsSEmdfefxGcTtlbOZKAeO2xxE1c0vJ7TJrDE0M3k81713SLuUywl0IzXozwejqLodcH3IqG20g8Zqojm9Mv0Nqfx6MALP0AqiCwyLZZOesS8SSnJXqvUiiKE+fIXSrR4erO/fwz6Q2eng19UrAb9xCtIO7JYWSDFQeYg6NmqSdoaShL25lSaoZsh9JdJnbEhSUacYco6LiXWklUUl+MRrek7V82C//I+e2qI5dOzeexnqIE7N5iAf2LvmL++BB4Z9fJ3B/LNRKmt8lOhsDxn8n5n9LhUA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=BZxCkuRDPJ3Fw5YSsmFNTHQPUSGNHDCsHmzrXkPCG/w=; b=ZCLgAw9LGFgoMWGG8lolxuED7C+EPsm68cvtI0O/wAKFJqUkb8N/YMDKEdSnnYqf3sb1ZCaJAdTYRJtUTKCHJfeclWfWiCUBO019MjF2lOK8bwQUCTK8+ZMoBPDeO5DhisszikkGbQAD7Z0B5jc69U9ReG/OW1wtCD3q4ytuDXc= Received: from DS7P220CA0004.NAMP220.PROD.OUTLOOK.COM (2603:10b6:8:1ca::11) by SJ5PPF5D591B24D.namprd12.prod.outlook.com (2603:10b6:a0f:fc02::994) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.18; Mon, 16 Mar 2026 05:24:46 +0000 Received: from DS1PEPF00017099.namprd05.prod.outlook.com (2603:10b6:8:1ca:cafe::56) by DS7P220CA0004.outlook.office365.com (2603:10b6:8:1ca::11) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9700.24 via Frontend Transport; Mon, 16 Mar 2026 05:24:50 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by DS1PEPF00017099.mail.protection.outlook.com (10.167.18.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.17 via Frontend Transport; Mon, 16 Mar 2026 05:24:45 +0000 Received: from BLRKPRNAYAK.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 16 Mar 2026 00:24:39 -0500 From: K Prateek Nayak To: Thomas Gleixner , Ingo Molnar , "Peter Zijlstra" , Sebastian Andrzej Siewior , Borislav Petkov , Dave Hansen , CC: Darren Hart , Davidlohr Bueso , =?UTF-8?q?Andr=C3=A9=20Almeida?= , , , , , , K Prateek Nayak , "H. Peter Anvin" , Kiryl Shutsemau , "Sean Christopherson" , Thomas Huth Subject: [RFC PATCH v2 1/7] x86/runtime-const: Introduce runtime_const_mask_32() Date: Mon, 16 Mar 2026 05:23:55 +0000 Message-ID: <20260316052401.18910-2-kprateek.nayak@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260316052401.18910-1-kprateek.nayak@amd.com> References: <20260316052401.18910-1-kprateek.nayak@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS1PEPF00017099:EE_|SJ5PPF5D591B24D:EE_ X-MS-Office365-Filtering-Correlation-Id: 41d319a3-5435-47d6-928b-08de831c561d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|82310400026|376014|36860700016|7416014|18002099003|22082099003|13003099007|56012099003; X-Microsoft-Antispam-Message-Info: AqzSbMMKaSGU6vqFO6vPHsIaMFn+BzHOaXnYTHlsJiE5O7YyhF+Jbce4RmO3pa5XWVCEMAackRtV5DujtcLhzZv/In7zJ8kwID62jwQeh/ue3JOt91s1fGmN7m/0VJ0sOHQJCrEq9fSfVssS47O0eyPLOyWyqssqLeNZFeWZEUhkmZKcVQ1LUWEwFmTlbhQI+0p2pLzTFM5KJwOnXAu7dHI8TgwDhPyYjQUXCGONg2ZYY2L+vuRrTnh6dUsycLrfjV61CKv1mZXfEcpxsmzfjaCR/sAMQFlhujjIPC/E86iHvI6fTiw8vtHo7iLjYWesbl8V546hK2syD7v7+xxsljmJTaPJ79G9GZkdbEXk2RvycizV6f0Ky8f+CZQwPkI+nFye9rf3IPcRVc4c4Qr5FXNf27dxOhxUlICIoNg3bn9UltvQPOtyqRFaV+94lUG68+38c7VxQA+8FMLgUb8AiQ/t23VQxmp2GII1AJ8JCOvnTq3dVDSz956iOO3KtCCNJOqcJJrTy9cdVsqo0Mk9uY6ko/NNLTdgmtDJxxVX8COfwDN6+7FlU+Ro620FQcdvJLTuCOalpdchMbvWY2NS85XVW9IQ2mIGz6nV/JB/QdgPdji874LougE4h9Ts4AWhT0Y/BRoYKmD0dDOa7RZMYleNisp/qFacxKURkOJVxWYYxvMO7/N513cSkR/DdsOfCPlO3JbmvMOpeU8Qig5tNzkpjvZXt2Q+TBMbNcFt4Ro= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(376014)(36860700016)(7416014)(18002099003)(22082099003)(13003099007)(56012099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: x1SYrVgjq5H7VXgy+jXyUZe47YIA2hTAosGXhHynvrFlt/ZOE84YmaJWQGuRzZcGlLPqyCHKNx0/WyktUAm4O5a0L1HFZIxQ7st7zxNkT1wlcEo0L48TmjkmZSVkDC4zy/V3urzTqKkES6OHyHflYooZW+6BseZ1FXoBnaXCTYJLGlnSoMxe1eJ4vstrJfSA5804ybyBwycmO54RcYWpnJ+6MJrBoFdaKNXu/jiwqJgLQdDW37o2qlmwJpWu+oU6IHR1GffDXCeXaoG5I09/QSjER7RsdIcLYRQUwMhQJLJGpx94+VU0MfOs6qQFMnEEIr0JLGRt2q15q8ux51lXkAHnDpJAO5zC/4XLU8rTRGjf2G3FpO+xLsMUokU+q6eFGt9j3aaP2vap+MTTETmLVugqX4ckGihbCr0yz76IzxWSRkBY3ScUBnARddt3HXkw X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Mar 2026 05:24:45.9817 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 41d319a3-5435-47d6-928b-08de831c561d X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: DS1PEPF00017099.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ5PPF5D591B24D Content-Type: text/plain; charset="utf-8" From: Peter Zijlstra Futex hash computation requires a mask operation with read-only after init data that will be converted to a runtime constant in the subsequent commit. Introduce runtime_const_mask_32 to further optimize the mask operation in the futex hash computation hot path. [ prateek: Broke off the x86 chunk, commit message. ] Link: https://patch.msgid.link/20260227161841.GH606826@noisy.programming.ki= cks-ass.net Not-yet-signed-off-by: Peter Zijlstra Signed-off-by: K Prateek Nayak --- arch/x86/include/asm/runtime-const.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/arch/x86/include/asm/runtime-const.h b/arch/x86/include/asm/ru= ntime-const.h index 4cd94fdcb45e..b13f7036c1c9 100644 --- a/arch/x86/include/asm/runtime-const.h +++ b/arch/x86/include/asm/runtime-const.h @@ -41,6 +41,15 @@ :"+r" (__ret)); \ __ret; }) =20 +#define runtime_const_mask_32(val, sym) ({ \ + typeof(0u+(val)) __ret =3D (val); \ + asm_inline("and $0x12345678, %k0\n1:\n" \ + ".pushsection runtime_mask_" #sym ",\"a\"\n\t"\ + ".long 1b - 4 - .\n" \ + ".popsection" \ + : "+r" (__ret)); \ + __ret; }) + #define runtime_const_init(type, sym) do { \ extern s32 __start_runtime_##type##_##sym[]; \ extern s32 __stop_runtime_##type##_##sym[]; \ @@ -65,6 +74,11 @@ static inline void __runtime_fixup_shift(void *where, un= signed long val) *(unsigned char *)where =3D val; } =20 +static inline void __runtime_fixup_mask(void *where, unsigned long val) +{ + *(unsigned int *)where =3D val; +} + static inline void runtime_const_fixup(void (*fn)(void *, unsigned long), unsigned long val, s32 *start, s32 *end) { --=20 2.43.0 From nobody Tue Apr 7 04:36:15 2026 Received: from CH4PR04CU002.outbound.protection.outlook.com (mail-northcentralusazon11013021.outbound.protection.outlook.com [40.107.201.21]) (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 58C0233FE05; Mon, 16 Mar 2026 05:25:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.201.21 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773638708; cv=fail; b=VEovtblpcOsH9kKYG9l3tHspW8cTLzhINh5kfviosAsDaIkXrSkQ2fDibq45I30fA/B8lWyrwNuLmuZYuMndoYh9xSI1/YtXjzVIxH7LU50Jz0RUuLcbf5kDjXF5YS5kheqEo+Edgp32LssS8FIEtw4LCnwEwY/m8PB0sHX8SVs= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773638708; c=relaxed/simple; bh=YeggqgDqBJpM0+BfXOf8iVHNhjo1eBTLnPMtviXfmMA=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=PzriKJENQquIZSVPFqK0alRrMSHtUNqGz+0r77JBUYJTsBQmIqm2Oz6umGJwjQULRNiSWLm4XKP8vrO0HQFEpQ8A4BGiaJsSb99d5AIvpPYHFN+9hVvgKxaav82cFVSSsU90ZNHQmLgbOD7S852wyBC7ZX7DACuO+OtvMOOtw2g= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=JarAkNok; arc=fail smtp.client-ip=40.107.201.21 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="JarAkNok" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=fcf/4uiBliMGFnBNWxLO52voUNHDGmRPTyJtpKjesHzF2V440VICD2wWyi8uK7fEV0ihjxixIfbKQtyZoHbjfMVP2vaoylrrYRcEix2kyRV2zHMt+t+uXUXSqe2vhXr4vtBSCDxYLX67ILo6Hb4YVTqCleJxUfqlE3xnkUgWMnPyDAq72EPZQIPvP6k9l5PS5TnsH32pSXh5rslVO5oyFdBKeza99CO1JPq3nMWIVkW2E0LhE7mf1JoEf6t8E6RhKwn7H64Op9S8a2p8kTUJDdwgvIQcdeVd5DU7mC6VTl8bfJ2JzJmcT7TJDFmM+KsMbblr8UHCFvcWz435BGyT7Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=t36xLPqDKW0J6OU/5qNiAqz6zE7HlXGRhGSuFGOuZ1c=; b=HqAjz+iSFme+2IiMfv7UtCrt99HhOb5toMSs+/CBVHTEA+FLnmrBLsqKhG86M5eYbSc/+ZfKNhP30Ep/7FSowkQAXGEyGYa4jvPBXrvN3YiiYoeFVonDue1PwslGvdEtbrNejklD+C8DRGAOihvLtePx7RQxecbQxTLXxzcMNjmMHIiFKNPaENTMTZ8zOpXvUuJYLP3ME4OAuzUcZZlAbjbjORXLKhuiAtM44sxx2mrExebqYtKreR4GV/5QKLylusWd9wNWMno9DFpfsoblLq85QVtPbtub8b+ybERZTG/lZ5N51AkO8Xkes1qh7LUNZZA6UwmrIUSD/8ZvnYz+Aw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=t36xLPqDKW0J6OU/5qNiAqz6zE7HlXGRhGSuFGOuZ1c=; b=JarAkNokvSEJPlDuHRS2ROsdi17mzUVRQsq9as8bfTr7O2jT00rnQoJmxJt1vEsBcib73zp/8ZEhgeW+irP8ga8CUDsnKCpHxETIKkPSHArVB4cGP0Bh6yGGgBNtiSPOobNZ6yYX5tDv4B+lqf6uN7Rsf4NSdBZnmYyDl1VYYe8= Received: from DS7P220CA0009.NAMP220.PROD.OUTLOOK.COM (2603:10b6:8:1ca::13) by CY5PR12MB6405.namprd12.prod.outlook.com (2603:10b6:930:3e::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.13; Mon, 16 Mar 2026 05:25:03 +0000 Received: from DS1PEPF00017099.namprd05.prod.outlook.com (2603:10b6:8:1ca:cafe::88) by DS7P220CA0009.outlook.office365.com (2603:10b6:8:1ca::13) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9700.25 via Frontend Transport; Mon, 16 Mar 2026 05:25:04 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by DS1PEPF00017099.mail.protection.outlook.com (10.167.18.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.17 via Frontend Transport; Mon, 16 Mar 2026 05:25:03 +0000 Received: from BLRKPRNAYAK.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 16 Mar 2026 00:24:58 -0500 From: K Prateek Nayak To: Thomas Gleixner , Ingo Molnar , "Peter Zijlstra" , Sebastian Andrzej Siewior , Catalin Marinas , "Will Deacon" CC: Darren Hart , Davidlohr Bueso , =?UTF-8?q?Andr=C3=A9=20Almeida?= , , , , , , K Prateek Nayak , Jisheng Zhang Subject: [RFC PATCH v2 2/7] arm64/runtime-const: Introduce runtime_const_mask_32() Date: Mon, 16 Mar 2026 05:23:56 +0000 Message-ID: <20260316052401.18910-3-kprateek.nayak@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260316052401.18910-1-kprateek.nayak@amd.com> References: <20260316052401.18910-1-kprateek.nayak@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS1PEPF00017099:EE_|CY5PR12MB6405:EE_ X-MS-Office365-Filtering-Correlation-Id: 4c859d49-42a1-4103-13c8-08de831c604b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|82310400026|36860700016|7416014|376014|56012099003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: HgvvBYOF6AYHsrrQG7J4sa5YnUFLgrSnrNTT/Dk0cRHKdixbRwAiHhBZ8bw63HIGS37scXqRmmRxE1gnIPyhxObwB+5ngFCmOSwS1ax5EUSa3utTNvym0bbds4a7au6gKR48/NyYnNIBIOYHIupeBE84sAmdQCw2DA3b+EJAeOLCPy3RCVwzEcE6qGT/EFYVpGgi/hEKHa7VfYjdueNHcLXK2QioFIjGwYObd2Pn3R0XqPxAZeghyvBPPmnZttQOBK9WDR2xkMebql1fuxuyeo4nwENCL5bTMAUPLJflTfHVMRmla9PSPAer0HI6bTWcxcCpZ598ixybyDS1YbHQ1Ssx5yCoxUD1vgxgNMFpiIFJAqCpk1sxUKNCtZQVZVX5hY43Gm9C7CovoAPI4sLNq7IxVxjgWb7I4qayGfE7O/9oFfVyIMcYI0KBZJv2n4grSIUB1FkDNSF+XaNa/d3jBW1tniga/eP3++aZBQgJFQ0WSVscljb+tHoqH4Qj4F23V7LmYsJvW9qcvgLzMGNiYpUbiLC8QXYASTWdW9aNQ8EE1ViRIvkRtxjATyk3RcHZaiuSGGxI37vNGJBIBIyzrMJu40rJWHd1s5zzxdSuk5qvqQ6mFgjOibIVqxp3P90iH2+lpX09MB3JE9nhSB+DhuMibSfcwLfbgExI7Mv5pij9SQpRWbiVhmWvjMpcb8JpD42I6e0mRLrRZ9I9Bmmn1yQWzPBH4Z7HYjAjJalNMfPgAQ3ZG4opP0CjUUN/CDvnXi3QGgqXtP4hQsIF4Ekhrg== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700016)(7416014)(376014)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: lPL5nrIbpvKM/xsEkUz7xe7iYh80Fz715UxJawmwmyH524TLTv4neFgWpSRevstlXsVSz2+XB1R9DHJ1xGSxdmfF7IvgV/L44HysBb/6XhITl+uk4WarD/i/eEKC7nWiFfwTgL61ICLRLy3ADPNBSb/ybNurvCVSTwbm29eYH0ssQGKal03KkC+EzH4hkVERUx4tpm8mg5kKE3zovGZo41C2DJ3YvlJlxOnLHaCRulOMdh2vTO13iTJ7XDmCd1Vh4v+e0II9KcIb/C2uEvitToQbBdiMzu/F3/B9kybhd2sKPt4pppxHCLys2I1cIN7ciEYBYTkExXa/sRJca9h6zpuN7SACdxDTefZroPwJtGWR05IKLyvTfvZ+E6VMSdxgVyoEAsxJvrCH8vk0MF5g+Q5dRitAVBLECPPa9D6ahmxv+O0CWTj94ESQAEw8TZwZ X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Mar 2026 05:25:03.0549 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 4c859d49-42a1-4103-13c8-08de831c604b X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: DS1PEPF00017099.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB6405 Content-Type: text/plain; charset="utf-8" Futex hash computation requires a mask operation with read-only after init data that will be converted to a runtime constant in the subsequent commit. Introduce runtime_const_mask_32 to further optimize the mask operation in the futex hash computation hot path. GCC generates a: movz w1, #lo16, lsl #0 // w1 =3D bits [15:0] movk w1, #hi16, lsl #16 // w1 =3D full 32-bit value and w0, w0, w1 // w0 =3D w0 & w1 pattern to tackle arbitrary 32-bit masks and the same was also suggested by Claude which is implemented here. __runtime_fixup_ptr() already patches a "movz, + movk lsl #16" sequence which has been reused to patch the same sequence for __runtime_fixup_mask(). Assisted-by: Claude:claude-sonnet-4-5 Signed-off-by: K Prateek Nayak --- arch/arm64/include/asm/runtime-const.h | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/arch/arm64/include/asm/runtime-const.h b/arch/arm64/include/as= m/runtime-const.h index c3dbd3ae68f6..4c3f0b9aad98 100644 --- a/arch/arm64/include/asm/runtime-const.h +++ b/arch/arm64/include/asm/runtime-const.h @@ -35,6 +35,19 @@ :"r" (0u+(val))); \ __ret; }) =20 +#define runtime_const_mask_32(val, sym) ({ \ + unsigned long __ret; \ + asm_inline("1:\t" \ + "movz %w0, #0xcdef\n\t" \ + "movk %w0, #0x89ab, lsl #16\n\t" \ + "and %w0,%w0,%w1\n\t" \ + ".pushsection runtime_mask_" #sym ",\"a\"\n\t" \ + ".long 1b - .\n\t" \ + ".popsection" \ + :"=3Dr" (__ret) \ + :"r" (0u+(val))); \ + __ret; }) + #define runtime_const_init(type, sym) do { \ extern s32 __start_runtime_##type##_##sym[]; \ extern s32 __stop_runtime_##type##_##sym[]; \ @@ -80,6 +93,15 @@ static inline void __runtime_fixup_shift(void *where, un= signed long val) __runtime_fixup_caches(where, 1); } =20 +/* Immediate value is 6 bits starting at bit #16 */ +static inline void __runtime_fixup_mask(void *where, unsigned long val) +{ + __le32 *p =3D lm_alias(where); + __runtime_fixup_16(p, val); + __runtime_fixup_16(p+1, val >> 16); + __runtime_fixup_caches(where, 2); +} + static inline void runtime_const_fixup(void (*fn)(void *, unsigned long), unsigned long val, s32 *start, s32 *end) { --=20 2.43.0 From nobody Tue Apr 7 04:36:15 2026 Received: from BN1PR04CU002.outbound.protection.outlook.com (mail-eastus2azon11010011.outbound.protection.outlook.com [52.101.56.11]) (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 59D8217D2; Mon, 16 Mar 2026 05:25:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.56.11 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773638726; cv=fail; b=EH6Ka5FfUqYHvP6Pzox+vzvaSq6YV/CrvAagRZ65l0fNqNvRO9h673ZMSRpqqYCCAT+WAAIN3OntyfZSDvZjlu3StLJGc5u/Wa0e4FElboqhCS3jyAQFzcn73hPq/32zj++erRj1ujFlTSwT0Ypy5b0WrjZgXlq+Fq3P9c3/T2Y= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773638726; c=relaxed/simple; bh=Rf0+N+z7tF5FPr6XB5i35XZ1z68cRGnHVZM/XX3YZLc=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=WcUNhv9aXK+I8pUeXC1jD0oW3dcLlUNFpKp2lG67SF0r/5NkkxZItwpL+PK/jM/VdATpuoLNddDGhjfy5Qm22DOc6BWkHHM5YkBByp1k2Kr1Rs7z6pdmrwP1MeKqUyt+ZiwH9ZyziGVjNlg8aoNMHSWlv0LKLitZL3S8447+3YE= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=hsDRmS7S; arc=fail smtp.client-ip=52.101.56.11 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="hsDRmS7S" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=bIHdw/kX0R3OsWPMMEd9WOW7zw0uosafZYHZTPpjnTVflTx57gLmxbgTp0kkRMshPQCuWP0EH0Nc41Ji2ArpsyloYE7HfJmsH12LW5R9QXD10HHj+Kb3tTS6iD7QUsgMSkfNnxMph7y/jNHGRZzT8rbxu2ItGzqAm/OhNBM0bOS/htj8EqOsytF0Se8AthoejWkAdBLB+ulKDv/CI2qBSvTaRxBp4jmiTfFDQnEFDikehtvHFnAV+j9NYBPKjlRW7VtVaFw0ebx9GtsjdN3sLt5I50Yb5w83C9d0EhqPeSASL0sE3/u1tgYvMnKy/OC4hUd3B+Wy5wFcsBNqVznTeQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=EP6aMGooyZGRGPbIYyHVYh22zyRfH5K+ceRIPLTuxkI=; b=UY37pxWzf7yeJxHmjOddYng7SlW0yle94VwmYv77KGAwDH/nK8S9A0AarI0efXr8gxwoPO4XGB65UxBU6hpROCC49qfPTEAllGyVg3S0EZ9dSiPsKX3h7hiH0kM6uRbatgeNGewtboFgS0Y0ubklOWhcsZaaXVr4TOuaGbpk3xXUUG0KhD9F0dfjpboweVXC1SJtIxEJO8bFqWD/tgxc4TzIC0EvYabsV0xF+8HZAenwaNMUXzu2h8WF4v/uxqCMaIv3YIIO5asq63Rcc/Oa/friPLH2Twj4mlkOLXCH6ALBJomHlD7ftZr+J5K702AGrDOgUCtJtzqgqDEEOD629Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=EP6aMGooyZGRGPbIYyHVYh22zyRfH5K+ceRIPLTuxkI=; b=hsDRmS7SHJtoUvSHXRvlx6EN+k9xn99FDpmLdQ/V8DiMJfAzvg2Jpesj05UD6he+tC6GRmtmnMZ3mfRKpgTwrmhnepf8yWgSJP59YMEsvV1ar0tb883xf0R8Ur/FHXFmc+RwnIU6M9MmWOHUXMIc6Dr8DevZeZTqS7sS+aQk2YE= Received: from DS7PR03CA0104.namprd03.prod.outlook.com (2603:10b6:5:3b7::19) by MN2PR12MB4342.namprd12.prod.outlook.com (2603:10b6:208:264::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.14; Mon, 16 Mar 2026 05:25:21 +0000 Received: from DS1PEPF00017098.namprd05.prod.outlook.com (2603:10b6:5:3b7:cafe::d1) by DS7PR03CA0104.outlook.office365.com (2603:10b6:5:3b7::19) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9700.24 via Frontend Transport; Mon, 16 Mar 2026 05:25:14 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by DS1PEPF00017098.mail.protection.outlook.com (10.167.18.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.17 via Frontend Transport; Mon, 16 Mar 2026 05:25:20 +0000 Received: from BLRKPRNAYAK.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 16 Mar 2026 00:25:15 -0500 From: K Prateek Nayak To: Thomas Gleixner , Ingo Molnar , "Peter Zijlstra" , Sebastian Andrzej Siewior , Catalin Marinas , "Will Deacon" CC: Darren Hart , Davidlohr Bueso , =?UTF-8?q?Andr=C3=A9=20Almeida?= , , , , , , K Prateek Nayak , Jisheng Zhang Subject: [RFC PATCH v2 3/7] arm64/runtime-const: Use aarch64_insn_patch_text_nosync() for patching Date: Mon, 16 Mar 2026 05:23:57 +0000 Message-ID: <20260316052401.18910-4-kprateek.nayak@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260316052401.18910-1-kprateek.nayak@amd.com> References: <20260316052401.18910-1-kprateek.nayak@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS1PEPF00017098:EE_|MN2PR12MB4342:EE_ X-MS-Office365-Filtering-Correlation-Id: 12d9083a-590a-430f-4deb-08de831c6ad0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|376014|7416014|1800799024|36860700016|22082099003|56012099003|18002099003; X-Microsoft-Antispam-Message-Info: Aol3/fmRAkZLK06J2s/CoCBc3AAfOCelnnFCpCx1AqLRbNoH6Q9NXmarSVlHYG0MRI8d6cYc1ZSes7rIwfaNVaDWU93RWtEIqLPExqzdHJJpu4tXqCZDUOKQLzqt4zVUDuoS2OZSmoBPoFO8n3/urNoqNrgw0TJLMN8mLkQXPY6aP4CktyOP6lBxjxQQUoBPpbkJnAW8yeeIagfktpVed5+zcCQPZNp69/apPDqubPrvnFJSBmGyMNQKevEe/+WBXHHZtPPzkxFna6tqOKtjuOGM4ixJRH7WCkjKb/3Zfw9Kj2fYPTpfgjwwDQBBvmHksEJ6VjEuqIEvEkwNfq//W2GZfMjSADa4jAqvrIm5BgHTqBp03putY/orOBMLRIMaNLJxXPOYU3D26X2gyMVrVUf9AG2u3PrMVBvLGaSBmnaM1/Az0lO6mTrb/3l7W1FIKVK0aYrTH7jd8AiOHQbAyyQoEXp4HLCbLw0R1yyIvSiMMmKEQ/IUx9GX9oyG5rf3+A91PBu3OlAaabVsSU91owu1JuBOLeC1b3cqJ6pkpydamB7odPvr+YaqS+nOn98jR4mXgNL+jCvifDUQjz+HqhZxKvWfFWdwO2Eu1pXadjODoxBCnX5iDIPk04U1zqR/OQfenS2df0pnlo35RYvNOIjh1lx6o3Z+YmyxlBRMcT+yyA2Nk5HprcNXDDpHdT7IDgMalKGobVKXfG+3SfLx0WWmlav88cIlxQTo+KSHYv/o0/XxcwoAnIRZ/tI/oghOyRCRpUt2vC9fO8MSZxOnXw== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(7416014)(1800799024)(36860700016)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 7hlMiy0K55Y6tjx7TjdzVoH3K2DF5Yv68yMESddyRv48vyITnniJgMzWQQAee72LkWZDubzXF18gZQv7cWvQ6oYeKm8sFbbvb0QUXXQBq9qnf7wxypebJcMUfB3iVJoRdH3HCYZi8GfPzaww3kB/Eyu11jcGOyJiybZoD9ebhQEBsOco0xC3HIvyGMxx3hL44lExvbeuVzuMcFd/sSQUYCeYNA0AxPqdLCM6oE7OUtHbjsUQ33qRO4wl48ydtpFL22a09P4Y+ygQyf4ugaRTtY78s0nMYdRMEVa/yCdDbJjTuWgmuZBVQk5gToA00MpRckPXmC8R/o9MYTpNygqBSJkuTb4XkM8ziaUb+AhfaQCr7wRs8Zpr1vQd/EdwcrbyKCSYnC+5qf3EqVzveSql4ojnGC+0araCf/UhQL5WHz0JNjiHkzO+kSJErjNO7oL8 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Mar 2026 05:25:20.6780 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 12d9083a-590a-430f-4deb-08de831c6ad0 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: DS1PEPF00017098.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4342 Content-Type: text/plain; charset="utf-8" The current scheme to directly patch the kernel text for runtime constants runs into the following issue with futex adapted to using runtime constants on arm64: Unable to handle kernel write to read-only memory at virtual address fff0= 000000378fc8 Mem abort info: ESR =3D 0x000000009600004e EC =3D 0x25: DABT (current EL), IL =3D 32 bits SET =3D 0, FnV =3D 0 EA =3D 0, S1PTW =3D 0 FSC =3D 0x0e: level 2 permission fault Data abort info: ISV =3D 0, ISS =3D 0x0000004e, ISS2 =3D 0x00000000 CM =3D 0, WnR =3D 1, TnD =3D 0, TagAccess =3D 0 GCS =3D 0, Overlay =3D 0, DirtyBit =3D 0, Xs =3D 0 swapper pgtable: 4k pages, 52-bit VAs, pgdp=3D00000000420a7000 [fff0000000378fc8] pgd=3D18000000bffff403, p4d=3D18000000bfffe403, pud=3D= 18000000bfffd403, pmd=3D0060000040200481 Internal error: Oops: 000000009600004e [#1] SMP Modules linked in: CPU: 1 UID: 0 PID: 1 Comm: swapper/0 Not tainted 6.19.0-rc6-00004-g7e6457= d29e6a-dirty #291 PREEMPT Hardware name: linux,dummy-virt (DT) pstate: 81400009 (Nzcv daif +PAN -UAO -TCO +DIT -SSBS BTYPE=3D--) pc : futex_init+0x13c/0x348 lr : futex_init+0xc8/0x348 sp : ffff80008002bd40 x29: ffff80008002bd40 x28: ffffa4b73ba0a160 x27: ffffa4b73bd10d74 x26: ffffa4b73cb68b28 x25: ffffa4b73ba0b000 x24: ffffa4b73c66b000 x23: 0000000000003fe0 x22: 0000000000000000 x21: ffffa4b73bd10d74 x20: 0000000000008000 x19: 0000000000000000 x18: 00000000ffffffff x17: 000000007014db06 x16: ffffa4b73ca3ec08 x15: ffff80010002b937 x14: 0000000000000006 x13: fff0000077200000 x12: 00000000000002b2 x11: 00000000000000e6 x10: fff0000079e00000 x9 : fff0000077200000 x8 : fff00000034df9e0 x7 : 0000000000000200 x6 : ffffa4b73ba0b000 x5 : fff0000003510000 x4 : 0000000052803fe0 x3 : 0000000072a00000 x2 : fff0000000378fc8 x1 : ffffa4b739d78fd0 x0 : ffffa4b739d78fc8 Call trace: futex_init+0x13c/0x348 (P) do_one_initcall+0x6c/0x1b0 kernel_init_freeable+0x204/0x2e0 kernel_init+0x20/0x1d8 ret_from_fork+0x10/0x20 Code: 120b3c84 120b3c63 2a170084 2a130063 (29000c44) ---[ end trace 0000000000000000 ]--- The pc at "futex_init+0x13c/0x348" points to: futex_init() runtime_const_init(shift, __futex_shift) __runtime_fixup_shift() *p =3D cpu_to_le32(insn); /* <--- Here --- */ ... which points to core_initcall() being too late to patch the kernel text directly unlike the "d_hash_shift", "__names_cache" which are initialized during start_kernel() before the protections are in place. Use aarch64_insn_patch_text_nosync() to patch the runtime constants instead of doing it directly to allow for running runtime_const_init() slightly later into the boot. Since aarch64_insn_patch_text_nosync() calls caches_clean_inval_pou() internally, __runtime_fixup_caches() ends up being redundant. runtime_const_init() are rare and the overheads of multiple calls to caches_clean_inval_pou() instead of batching them together should be negligible in practice. At least one usage in kprobes.c suggests cpu_to_le32() conversion is not necessary for aarch64_insn_patch_text_nosync() unlike in the current scheme of patching *p directly. Signed-off-by: K Prateek Nayak --- arch/arm64/include/asm/runtime-const.h | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/arch/arm64/include/asm/runtime-const.h b/arch/arm64/include/as= m/runtime-const.h index 4c3f0b9aad98..764e244f06a4 100644 --- a/arch/arm64/include/asm/runtime-const.h +++ b/arch/arm64/include/asm/runtime-const.h @@ -7,6 +7,7 @@ #endif =20 #include +#include =20 /* Sigh. You can still run arm64 in BE mode */ #include @@ -63,13 +64,7 @@ static inline void __runtime_fixup_16(__le32 *p, unsigne= d int val) u32 insn =3D le32_to_cpu(*p); insn &=3D 0xffe0001f; insn |=3D (val & 0xffff) << 5; - *p =3D cpu_to_le32(insn); -} - -static inline void __runtime_fixup_caches(void *where, unsigned int insns) -{ - unsigned long va =3D (unsigned long)where; - caches_clean_inval_pou(va, va + 4*insns); + aarch64_insn_patch_text_nosync(p, insn); } =20 static inline void __runtime_fixup_ptr(void *where, unsigned long val) @@ -79,7 +74,6 @@ static inline void __runtime_fixup_ptr(void *where, unsig= ned long val) __runtime_fixup_16(p+1, val >> 16); __runtime_fixup_16(p+2, val >> 32); __runtime_fixup_16(p+3, val >> 48); - __runtime_fixup_caches(where, 4); } =20 /* Immediate value is 6 bits starting at bit #16 */ @@ -89,8 +83,7 @@ static inline void __runtime_fixup_shift(void *where, uns= igned long val) u32 insn =3D le32_to_cpu(*p); insn &=3D 0xffc0ffff; insn |=3D (val & 63) << 16; - *p =3D cpu_to_le32(insn); - __runtime_fixup_caches(where, 1); + aarch64_insn_patch_text_nosync(p, insn); } =20 /* Immediate value is 6 bits starting at bit #16 */ @@ -99,7 +92,6 @@ static inline void __runtime_fixup_mask(void *where, unsi= gned long val) __le32 *p =3D lm_alias(where); __runtime_fixup_16(p, val); __runtime_fixup_16(p+1, val >> 16); - __runtime_fixup_caches(where, 2); } =20 static inline void runtime_const_fixup(void (*fn)(void *, unsigned long), --=20 2.43.0 From nobody Tue Apr 7 04:36:15 2026 Received: from PH7PR06CU001.outbound.protection.outlook.com (mail-westus3azon11010005.outbound.protection.outlook.com [52.101.201.5]) (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 C2A7A33FE05; Mon, 16 Mar 2026 05:25:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.201.5 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773638747; cv=fail; b=gz+dVK0Se83WRmZSce6ekcZYm5aCPmWGP5ibNbPBYHmoDoF1lw7/cglBCGRe6+1dMiF0xGBbt1bGjzNxuVb7QirGcrJ7FRCLqUnWPmOfBK2rHkUFC8VO0qWUvy8QmEOl5yWnaLNoiB9UupeVcxT03zzPXVhNtbW9hPQHkQJXi8Y= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773638747; c=relaxed/simple; bh=/IbkdJi9QawlvCBt92m9qyaUdU9rvkyrZ+98H6MCR1w=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=e9pSsXQ2DJZMoQj3Six0i6p0eub+kKtzuAFmK7uD1QRn5NvSLEHq1A5jhgiAIDWmSdOwGJGS0PVkrlRLeRFzq3fkU5Xropqld1YRwYJ6yjTdIBa58DHiDBCy4HUFSZt3Z3xg8GQxVktXvB2wZg81old6HecBXHn/Th9uljU8pdw= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=DinIt20O; arc=fail smtp.client-ip=52.101.201.5 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="DinIt20O" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=jQS4JnSA6qQMDyVA4o3tr7NI9dr8b3i/lmZQ+JAUDc3X+IGLKALVlQnFE3BrKPeS2POXaSTNDwy2B5TD0ksu7ZMnQfPoUFWwDiOzOo1oDSwNfbs5K5cl4dswk5Q26LCcGtmZ9FuhsyYbtn2oQ3om58yF78+TzMV8A7/v1sLEgpA67/ZsaatMNGl8MHtU1sBESZD8Dmo2MxQ3+cZD59dbiMPanRGsjZgjYo1Pe+vkcAMmJiX5a4OaOkmkohs/SXLnYpLo16WmYmrXNBZXOHBrJxTqqpXSg8DCZOZFNxtscTJdOTys62J2Bx2wb7aJkslK+15eMDdCucWpW2GffJY9ag== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=8IInZyX9l7F/pmWJSWhAWj1hnmM3CjZxxb7Wx5P05fs=; b=EBvmT5qL1iG3yCWWPbc+5gzg9lPocAnBQHEugUo5exHzg2AZed2hCFTa2YXi6AAP5pv1R6tdob60pWK9lZphOSBocBEfnO7Vz1b7NyrAuQEp0+9aNDpNCMq4cV4XEilAoFTBp5QQlPlI4DgBZrIKLbd1nfdfRYiLIpYOLH0CckDPits957ZOW6pD95O/trnflenRrSBk83I61tszAFdm6SEtYFn9wpA3E/ZSpcsP81xF7YF9IiZFf4kIuo7P2EoLqqUAKlUC0cPMQW9ccX51sBKRLKVoA52PjwEAFugDF6JuDeT+5rd+ufZTyt8RFmNPFxfvYRY7FSU3mvb8J0mRTA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8IInZyX9l7F/pmWJSWhAWj1hnmM3CjZxxb7Wx5P05fs=; b=DinIt20O31LNxhf64qKQtNQbFF0L6BhGeR9zeBNgnw8RKb0racQGe2RVp2hlhYcYihzrMnstlUK8d4yTJUG+asPPebsyQ2wImNCyj+kVA8j8prbj2zlL/TXAJg4k9AwzonzMPDWEAMA5ny347yygOWiCbPewKRkFFlAoQNVHpLA= Received: from DS7PR03CA0125.namprd03.prod.outlook.com (2603:10b6:5:3b4::10) by SA5PPFCAFD069B8.namprd12.prod.outlook.com (2603:10b6:80f:fc04::8e1) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.16; Mon, 16 Mar 2026 05:25:38 +0000 Received: from DS1PEPF00017096.namprd05.prod.outlook.com (2603:10b6:5:3b4:cafe::5c) by DS7PR03CA0125.outlook.office365.com (2603:10b6:5:3b4::10) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9700.25 via Frontend Transport; Mon, 16 Mar 2026 05:25:36 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by DS1PEPF00017096.mail.protection.outlook.com (10.167.18.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.17 via Frontend Transport; Mon, 16 Mar 2026 05:25:38 +0000 Received: from BLRKPRNAYAK.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 16 Mar 2026 00:25:33 -0500 From: K Prateek Nayak To: Thomas Gleixner , Ingo Molnar , "Peter Zijlstra" , Sebastian Andrzej Siewior , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti CC: Darren Hart , Davidlohr Bueso , =?UTF-8?q?Andr=C3=A9=20Almeida?= , , , , , , K Prateek Nayak , Charlie Jenkins , Charles Mirabile Subject: [RFC PATCH v2 4/7] riscv/runtime-const: Introduce runtime_const_mask_32() Date: Mon, 16 Mar 2026 05:23:58 +0000 Message-ID: <20260316052401.18910-5-kprateek.nayak@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260316052401.18910-1-kprateek.nayak@amd.com> References: <20260316052401.18910-1-kprateek.nayak@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS1PEPF00017096:EE_|SA5PPFCAFD069B8:EE_ X-MS-Office365-Filtering-Correlation-Id: 1d7e1b82-faae-4dcc-05a7-08de831c758f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|36860700016|7416014|82310400026|1800799024|22082099003|56012099003|18002099003; X-Microsoft-Antispam-Message-Info: BAxZvjw8l2fJ21iv7yMncIorOatamhATxzEmWnB13vj8/KwlsFXIbUiMcL9GrhM56VE/udgqsfMA9sw48k4XvVgOpS5uVeMYxc2eye6pvCI9yyvdL4P0qAzy0/fCkq/BCWAUBHDB5mfumrXWqpg0A5fHigAefG+exPhkAwMkAQ77+od6sVRK9TYIJtJzgObcJc2RLUewoMbT0lXVkEpPrlmhbWJd68VTKFyH+/THzwU5yqoh0lB2N1jHveNg5JfhY/IDezlrIZHHIZvZjAxiVwkwsKSOkjOD7bvVo5ckUyZ0T9S4OlW6MYJu+ngRQDJDOa4JN2nuIk8Iw0z4gdwZfIOGIottRIH97pXi255UQvQraKqHmsBqE6fR226E9AKNzZPWzkn09dU/wL1aKJAldwDHdiErxoVRhu8r7aTz5FsQ+7pAlS5pFPY+fg6f1l49OKEBidEF3k5npo9iINsv4TPRtXqJYfc1VEVutwYnds3Ugnx8hInQjyZaL0PB6MINKSQArB8vkYqw9St783d2Ke5gnbAlCwQ6qR4FVVAWI/XGOfdbTrkvwi+PSsurjvBvsoMcew8yZPXxaUxcexihhvA62jBYHM0RCCiwb+iDFGYMk3JKvf4HujqhfWT6dCHWhBpXtQtSMAZil7uOFJkyCOBj9PhN5IYpcW4sAptHgVOShCK2A+5701nLDJSymZ1VP5OXVhZDH+SEQNQbBj05lXK1ZV3aj17tzDyYQ5zVpLmXNf6jtfod+QJhpnQyIgC2SQ45GBndNV848iSHc4Hxag== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700016)(7416014)(82310400026)(1800799024)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 1DYWVfhOo+e288MSLDszrtZ2THH2KdmD+OdoxJ5H8QP+uftVa1q2jSZV5dxIS3LSPVVMk+DFCK4rU4ETReiXcSkBQVsFcow15QxOfK8k1LjgYwhACuNQtVMs91OzF2tKyQ4lNjVgc6/9ExQqhA+FND7fPq4gkBoDUmHCjeA0VMEZyhxZ+Co/9w4mFEGJbRaEsGVFCWuOob19VngGcpCZvsNnePEX9FVIAOVwJQUuYB2u1wOhkag0iezEtsujPfL5dUbJWqet0qzZFXpMS7teyiFe0tfBe5V5DVcG203tebfO8JZ8QlZuxAPXmt7XmmwnqHBAucB51cxoa5VeqkQHITOZn+4A4uvubq6A76veArefT2W1yf0l0bkW9Ptk3ri14PUdnTiRwTnTR9kWustc8hvYvxircEwdONJpcQzRtZbAg7m5Oi0sO89bezMWQzgb X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Mar 2026 05:25:38.7028 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 1d7e1b82-faae-4dcc-05a7-08de831c758f X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: DS1PEPF00017096.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA5PPFCAFD069B8 Content-Type: text/plain; charset="utf-8" Futex hash computation requires a mask operation with read-only after init data that will be converted to a runtime constant in the subsequent commit. Introduce runtime_const_mask_32 to further optimize the mask operation in the futex hash computation hot path. GCC generates a: lui a0, 0x12346 # upper; +0x800 then >>12 for correct rounding addi a0, a0, 0x678 # lower 12 bits and a1, a1, a0 # a1 =3D a1 & a0 pattern to tackle arbitrary 32-bit masks and the same was also suggested by Claude which is implemented here. __runtime_fixup_ptr() already patches a "lui + addi" sequence which has been reused to patch the same sequence for __runtime_fixup_mask(). Assisted-by: Claude:claude-sonnet-4-5 Signed-off-by: K Prateek Nayak --- arch/riscv/include/asm/runtime-const.h | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/arch/riscv/include/asm/runtime-const.h b/arch/riscv/include/as= m/runtime-const.h index d766e2b9e6df..f54289a7ddeb 100644 --- a/arch/riscv/include/asm/runtime-const.h +++ b/arch/riscv/include/asm/runtime-const.h @@ -153,6 +153,24 @@ __ret; \ }) =20 +#define runtime_const_mask_32(val, sym) \ +({ \ + u32 __ret; \ + asm_inline(".option push\n\t" \ + ".option norvc\n\t" \ + "1:\t" \ + "lui %[__ret],0x89abd\n\t" \ + "addi %[__ret],%[__ret],-0x211\n\t" \ + "and %[__ret],%[__ret],%[__val]\n\t" \ + ".option pop\n\t" \ + ".pushsection runtime_mask_" #sym ",\"a\"\n\t" \ + ".long 1b - .\n\t" \ + ".popsection" \ + : [__ret] "=3D&r" (__ret) \ + : [__val] "r" (val)); \ + __ret; \ +}) + #define runtime_const_init(type, sym) do { \ extern s32 __start_runtime_##type##_##sym[]; \ extern s32 __stop_runtime_##type##_##sym[]; \ @@ -256,6 +274,12 @@ static inline void __runtime_fixup_shift(void *where, = unsigned long val) mutex_unlock(&text_mutex); } =20 +static inline void __runtime_fixup_mask(void *where, unsigned long val) +{ + __runtime_fixup_32(where, where + 4, val); + __runtime_fixup_caches(where, 2); +} + static inline void runtime_const_fixup(void (*fn)(void *, unsigned long), unsigned long val, s32 *start, s32 *end) { --=20 2.43.0 From nobody Tue Apr 7 04:36:15 2026 Received: from SJ2PR03CU001.outbound.protection.outlook.com (mail-westusazon11012053.outbound.protection.outlook.com [52.101.43.53]) (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 1D93B33FE1F; Mon, 16 Mar 2026 05:25:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.43.53 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773638761; cv=fail; b=g5qWwmEpiJbsWlwJvg1ExczT/MiMWHX9dLMmV4aiwRmrGE3o6EtCKmBQ+NzxrLEAKeaByteGkNKnjtgLRcKqHA51rkB+ZHkb71GGLp82wYMiGAdFzaYnZialudBnm9K2hn8ACGJxmhTJmgpgVDEiKzux02IPUkyhVZbZghGzLuM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773638761; c=relaxed/simple; bh=tjFedfPW1NhNsno7/pjoaA4ziD82FtOKvzLsqXbhGx4=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=oO29pFb1NWN3e50ZJoScp82b/Ka708cwCZqp6AvPZkKwV5H3qTE+DKuhS784lnyr1jENBJjwPy0k4dtQwpWjPTedY7V7POPGwoftARcDWnd918DEwYnX564Bxo8wUapTKyWWnImtuKrmayG5Ji91w2eYRj8XGt72aGipIsZdQSA= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=EQyFNkxA; arc=fail smtp.client-ip=52.101.43.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="EQyFNkxA" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=NeJw8fcJYwgOUebNb17QNTS10D7f8UZeT8UyIGE9ZGjYZFLS3j36NNwSDnse8vY5DqbySdk5Qxngba5FSReUgEjN5lRrWzS6l7sYEik8HaQ3QqPfayvlYTPi1jIPpGne+/5gT1M3Jidqbk6x7NB6O9xCrKHMNoK3Cn2xglWWF9gxxtgopEmdEZmxj4lQtexiR45vXnw+/iYvmKB+572KdjEEEbUwLTdWlfz+apm8ygGibGEKPXuls1goiR5NEIyfRpDA6npXzmtyJJwiwEXMQL1eoAstDoy47JKiTygNMpwWfx+amMyqYUJl0l0MmRsh1R4doLbyE3al89vbnm9n6w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=iv39+ZpovnJ8bVZpV0i6+K5nGNYT2LdikQjrOuO9hww=; b=nDS40d/XBoeMlKqmEYwDzE6zzmwMl1Lj6RaDR43ekuWmi/WrLm2jHLhPqF9EDh50Cjla0DZP+KVclcZB4zGOsMBCb1Pk3cABTO9YUT8Vi0kt/4rgNFT9As28FYtUExe1JBghOwKiWmmpeScJP2zNWZ4S5O6XTlqWWeJWC3dIRSNxeFv4FI27qLaEjcw9c9WaD2UJiXzCMioeLKjMrubVX/YVyih9hUNHQeTe5IvGBxDs7U4RRwGrMCquRuh5WIevx7N5Vg7Ofl60tmff5V5HTe11o4M86BBIRbjgLSovl/s5/nvM52raoGw1TmPGMiXMn1QmXYkHrv78vdOrmEE2Kw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=iv39+ZpovnJ8bVZpV0i6+K5nGNYT2LdikQjrOuO9hww=; b=EQyFNkxAV7pxSWj46HekprCOmeNDhAiWoStxByRtIdjOsqTmqYoXWmJREHL8IhpnYw2AFgks80o/hJwWr0T0JsSNH44ZeF3uGdnx+UkoVl1lHtaiQZBiZxXsan9xzHDjVgXgR/i8FdZMwRcylC+369eSTZZ+Hwe6eE+WDL1wB/c= Received: from DS7P220CA0008.NAMP220.PROD.OUTLOOK.COM (2603:10b6:8:1ca::15) by DS0PR12MB7701.namprd12.prod.outlook.com (2603:10b6:8:133::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.17; Mon, 16 Mar 2026 05:25:56 +0000 Received: from DS1PEPF00017099.namprd05.prod.outlook.com (2603:10b6:8:1ca:cafe::e5) by DS7P220CA0008.outlook.office365.com (2603:10b6:8:1ca::15) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9700.25 via Frontend Transport; Mon, 16 Mar 2026 05:25:57 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by DS1PEPF00017099.mail.protection.outlook.com (10.167.18.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.17 via Frontend Transport; Mon, 16 Mar 2026 05:25:56 +0000 Received: from BLRKPRNAYAK.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 16 Mar 2026 00:25:51 -0500 From: K Prateek Nayak To: Thomas Gleixner , Ingo Molnar , "Peter Zijlstra" , Sebastian Andrzej Siewior , Heiko Carstens , Vasily Gorbik , Alexander Gordeev CC: Darren Hart , Davidlohr Bueso , =?UTF-8?q?Andr=C3=A9=20Almeida?= , , , , , , K Prateek Nayak , Christian Borntraeger , Sven Schnelle Subject: [RFC PATCH v2 5/7] s390/runtime-const: Introduce runtime_const_mask_32() Date: Mon, 16 Mar 2026 05:23:59 +0000 Message-ID: <20260316052401.18910-6-kprateek.nayak@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260316052401.18910-1-kprateek.nayak@amd.com> References: <20260316052401.18910-1-kprateek.nayak@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS1PEPF00017099:EE_|DS0PR12MB7701:EE_ X-MS-Office365-Filtering-Correlation-Id: 15213eb7-30ae-4cd2-a6d1-08de831c802b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700016|376014|7416014|82310400026|1800799024|22082099003|56012099003|18002099003; X-Microsoft-Antispam-Message-Info: gqEE48SwCJVGrbRfORKbiY7PJlZg2H0IF7fz5iOXmiBhNPGR+4g4lBABPY2QX48nvJYOYLempm9C2tmPQiWoE5A1DZUpqGLZIqV4RswVrgZNWGFnta8lR2Igir2Gi45hQKuBd9hXn0f+rSO1xPMZ0rGjTraUpdyCyTIgovOkRPxPh3l393fs0O1fKMpajm3rY9e15HdjgXEv4RO6ZZxeTX/qQijb2wpqOnkUGmc7PzP1T+aIsT5ftm5Vumm527WGEe1v4PiNQT61IuNk7bB0ZQlmMj5vRpyp9ekhrvDSuGiUCE6JlEXc7PLVzJTCv8D7O7tavDkpSo4qrHvC3Krw4JyPhWpLotPg6qCxAPu9ASJy1CWACMEMDCC4pqTaMoBL3K/GOv5NhFW9za71HBAdvAHqrwRBx7FuyMybVnVUzXoH226dacy+XrPpS8ykYKHGvgWbNnTcRsXyowZb9L6K3KDUqLAniUzaR64S4ZqNLQjb3wP1sSGFCDmz2fvcDkERj1Je3cVqdEgBywq9UC6irDoChC5/pfpy9yf7iklsABf2mERDxf14msgalhEoY5ftG5SERBig0Xz6JdvOYQ2yQitB/E/U2S3FlQD2LR/4aPOkZcosJgfAfIQnZInPMmYQTQ0L5ljXKZBHM8eH6l23/0ir/ZBD1BMjaR2I3V3DkBKoBoR6fwMTjO0iRaQO4FcYtlcSF0TFAgsLdRtLhY3cWzqHTohb9Ge3AFTKihrsgu2nABFRUl1F+w8RmAFwRMp95yKXM5hvowj4pcVCt0XENg== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(376014)(7416014)(82310400026)(1800799024)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 6SiSjQTWy2D43HkbI7JdWecSmhkPRthbMp3cUScmDFCRlOdrh8RbmNWb2xGCZv0r9YgQhsh4UrUr7HrxI3kL5cQM1xW4UZcQLC7k65gc41wM7ZAiDgvGX3S/HOpPqKDlvibp73IK1LEy1VU7gGaIOLuX/Xd7u8TrcmPYMBYGYWia6EgcnylZJWN7nwTpWKL9DW1Py8dFzuhWGKNrYvalblWU0ItahjjqvI63p35aKlrQledLI8u2sofALQ7/uqyBiB7OANhXwrwzQXS5Ku9aojQNRLMzqf1zafqjmIda97vzYDwAYs6TtB536ifgNmKXgQtBKhDqIrE9PndzH34thTXMiy4s5mBF6slVsRKthas/2lUtmjIcjKx+zUpfJp2EWXV5HOsTBEZHiYaxwj8NOPHOwlgMCWnPoicVB0R7vxSu8Oan51ffrtMXDT704/5M X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Mar 2026 05:25:56.5067 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 15213eb7-30ae-4cd2-a6d1-08de831c802b X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: DS1PEPF00017099.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB7701 Content-Type: text/plain; charset="utf-8" Futex hash computation requires a mask operation with read-only after init data that will be converted to a runtime constant in the subsequent commit. Introduce runtime_const_mask_32 to further optimize the mask operation in the futex hash computation hot path. GCC generates a: nilf %r1, to tackle arbitrary 32-bit masks and the same is implemented here. Immediate patching pattern for __runtime_fixup_mask() has been adopted from __runtime_fixup_ptr(). Signed-off-by: K Prateek Nayak Acked-by: Heiko Carstens --- arch/s390/include/asm/runtime-const.h | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/arch/s390/include/asm/runtime-const.h b/arch/s390/include/asm/= runtime-const.h index 17878b1d048c..c0f0d59066e2 100644 --- a/arch/s390/include/asm/runtime-const.h +++ b/arch/s390/include/asm/runtime-const.h @@ -33,6 +33,19 @@ __ret; \ }) =20 +#define runtime_const_mask_32(val, sym) \ +({ \ + unsigned int __ret =3D (val); \ + \ + asm_inline( \ + "0: nilf %[__ret],12\n" \ + ".pushsection runtime_mask_" #sym ",\"a\"\n" \ + ".long 0b - .\n" \ + ".popsection" \ + : [__ret] "+d" (__ret)); \ + __ret; \ +}) + #define runtime_const_init(type, sym) do { \ extern s32 __start_runtime_##type##_##sym[]; \ extern s32 __stop_runtime_##type##_##sym[]; \ @@ -65,6 +78,12 @@ static inline void __runtime_fixup_shift(void *where, un= signed long val) s390_kernel_write(where, &insn, sizeof(insn)); } =20 +/* 32-bit immediate for nilf in bits in I2 field */ +static inline void __runtime_fixup_mask(void *where, unsigned long val) +{ + __runtime_fixup_32(where + 2, val); +} + static inline void runtime_const_fixup(void (*fn)(void *, unsigned long), unsigned long val, s32 *start, s32 *end) { --=20 2.43.0 From nobody Tue Apr 7 04:36:15 2026 Received: from CH4PR04CU002.outbound.protection.outlook.com (mail-northcentralusazon11013046.outbound.protection.outlook.com [40.107.201.46]) (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 BDFD533FE05; Mon, 16 Mar 2026 05:26:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.201.46 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773638778; cv=fail; b=AVAh4sN4sJQEtCBbjcebjIk2zH23F4wtzX4f5mvBL/p0DXMAe9JXq1iIackRP5e8WKSLnUL0EEW4F81zDaN8D5ZBiy0ou0f/fKXWFWCndvr1Rc4/IAuyiiRi9x6wuAed0XUuQeyF++zYP+vDxM6Ho3EjRQ81mm8cDA3f2x8Fdzk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773638778; c=relaxed/simple; bh=HU2UH3ordm1mRlxrEsWanAKSD4o+9Th7H/BVXp3a+nM=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=lM+c41s8GI/E6qM/CUo5SfOgqkisaKXZEzXePKmFC9Z8rzp1KvoGe73LBniJZccr2Rvzq4xm9n4zakeLVVX/pyH5sIi493L47u6dvq4z1qBImIxTcru+pxrPJT2c8gLr/Z8z9KF0aZLgUexrLjjafYBpjjQEVJHporVPOPk+ah0= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=XU8SI5cb; arc=fail smtp.client-ip=40.107.201.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="XU8SI5cb" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=g0S2sUCRCNgR+iDDh8duOaKEUrNViLrrU3OspdG/7QMny+CP2c1h8k5bl3Mb5R2mMzqRJPprOaYyj7LlOBc6WyQO+wpF4K109M+8C+Eju2JWYJN1sSes5ER/esMfJnQpa7/KRu2KVrb+9bwWdWcw3nF4roXSSRsn+z6eSDCMcydAv1x/8gO+Sv3wO9q3efNQ90ALq+tvYvSL7bN6KUhLoJOEjAizRTJbeHU7oROhDSc/gEaUG43XY+hG2gfsHgoX8Hxjn9vewNexcrQ72RGzxhQSOB5GVfozW3bC9oZV7qJeeOuD+a7nVInjHc2A7MycZiZMH/In0UIS5Frt+zOvjQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=yjh/keoUIjr0567Q1/PvQ2pqHVXECc7ZdVYKuZ+LU+4=; b=lMC+1SD50R9jaOTxv2JIaIYLuRo10ndq5R9MS2sj7REMayHgSNrdhWXov8EFXFf+z9a6NREsYO18Zm80sEFKUW2Mm+tynoegGt4jh/N5/heh2swsgD8w2VVNPPQQPeyCrjADQiE1ssGKyTIkfqTCxZTqNCnagTopmzaVa2CD5yiu3qM061hS2yyGT9vxv8oqCObsTVYN7pgQGokfim6i4I1AQOHxhi9faXN2wGBsbTa30WhiNamale+R12i3oVbiScWS1RQE1SwdFfWKlWCngyU8++/ndrYayMwjSnVniHNJhh8EjsyO5BU1L2bWhzwnWFTfZXtcw3fbDrf7TcLedg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=yjh/keoUIjr0567Q1/PvQ2pqHVXECc7ZdVYKuZ+LU+4=; b=XU8SI5cbc26zQmCFJtmROjcAxst8/iUSLNLblBZzm5k5ytPGXjANZG1qPRmUpXm0tMCjE34o5vrZWBYc9wE3aInZ/SYfi6zaYI12d2IJJLO7L/CTCXyG26YjCMHJLxw+rvnQp/uzaeDxDh6qbmZp4h86YTZr16U7rbC3C0bVW48= Received: from DSZP220CA0001.NAMP220.PROD.OUTLOOK.COM (2603:10b6:5:280::15) by BN7PPF7B4E3DFF8.namprd12.prod.outlook.com (2603:10b6:40f:fc02::6d4) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.8; Mon, 16 Mar 2026 05:26:14 +0000 Received: from DS1PEPF00017097.namprd05.prod.outlook.com (2603:10b6:5:280:cafe::d1) by DSZP220CA0001.outlook.office365.com (2603:10b6:5:280::15) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9700.25 via Frontend Transport; Mon, 16 Mar 2026 05:26:22 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by DS1PEPF00017097.mail.protection.outlook.com (10.167.18.101) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.17 via Frontend Transport; Mon, 16 Mar 2026 05:26:13 +0000 Received: from BLRKPRNAYAK.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 16 Mar 2026 00:26:09 -0500 From: K Prateek Nayak To: Thomas Gleixner , Ingo Molnar , "Peter Zijlstra" , Sebastian Andrzej Siewior , Arnd Bergmann CC: Darren Hart , Davidlohr Bueso , =?UTF-8?q?Andr=C3=A9=20Almeida?= , , , , , , K Prateek Nayak Subject: [RFC PATCH v2 6/7] asm-generic/runtime-const: Add dummy runtime_const_mask_32() Date: Mon, 16 Mar 2026 05:24:00 +0000 Message-ID: <20260316052401.18910-7-kprateek.nayak@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260316052401.18910-1-kprateek.nayak@amd.com> References: <20260316052401.18910-1-kprateek.nayak@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS1PEPF00017097:EE_|BN7PPF7B4E3DFF8:EE_ X-MS-Office365-Filtering-Correlation-Id: 055ff733-061e-43dc-87f6-08de831c8a46 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|376014|7416014|36860700016|1800799024|13003099007|56012099003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: dlLsy3EfZmYgxd3A5ysPKPB6kpfpDkSKuKcbF1qyyYXkUo8Y7euhsBIScIm7tJ7GllO0Adk55tJQRH+Ym1k9NwdNHjvGz+e9Nd2vgXPTZ4/ZHQR6sD1/MspKw13dHw7E5lSu2CC3cpjzMAxw0xZi/BTSlHquksKOg9Gn45D6gVzXKT/KavAQ3GUBH8BotHFTM+07dEcJT/3oQiagS0uxolC7OdmEiVshY8hkaotkCOJAQ6oZk2yajhkZPtG5Kkakid1fqvImB/fno4x27G0746B2TFvcqfAL1+oJWkioP3h2HShoqv75ecvUaP0db0BbAnFWRfDzjo7xgeiDq1HFn1SHJvXUJV4J45F8Zi6czPLnMKmIltTs1AFX1S6gOdR8Iojsm+cbaM6JZWA4xURbL5SIMZEWMqVtW5Rx5dEGQQEbgxjW4dXfP/SCtVwaAzw88yUMpo2Py1LIP4X8mVDJqFYfycmTgpJTCp1ihkplIIRnZ4w+8veb/14RcyuxFJ38k+D5ULOAWekrLUvNCSKPFLLqh+gGoimWb2kwmYECjEKGbrQUbN345XrW6KfWDF/T/J8O3vRuBvSLcAwAS0Po0loJ955H/dSryREln/C/1g5slT4IlUazDmv9oYwLE0zUDmwdxrGpa6RAG+wBuv19FB7FDIIhHXEVdqgfDfPpzJJffNfph+qyQ2uBYHPyjSq6aackTpoI4SIRK8eQEYcx17MHZi09tokdQ7UB2fxbo7k= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(7416014)(36860700016)(1800799024)(13003099007)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: zpXiLPCRms0/32x6ItmrB8tkAMRblQWSCkdfULfgVYVBCab9Rq7WKD8mJ4dnvDjWjzYrxamgZXmUXPWe9xHeyl2WzvaJEZK7YXINzMpVdR7S8B1VP1RGoCGDa/IyYlZ4drUWhco1LKBoxqj52LLY1ExfdtQ/uKRRXtyZ4cjPYMRgcSXnrBi8rJoZ8NeaecCR11+YWo4vqkzb90JheKMpg2bcL5jPtUFDTE66i2aMqQAL5/fWxaYX9u3JaCv9EPyUDs2wZiBm+/X6twGSdj13knETY4I563sBppd/SkjlwCoEt2qooxRgRfqJacEQOqpuDSBeKJx/DBR/4rF+NfwW3/HK+Yvx3FVFSmXghWHPidwAA5dCevv/PpdmPAUzOou4Pp96rX6XCg5/Z9+1qzlha9TJmG2/nVi/rYI++PNn2PFlosuiKOOmNykA/k1GdCiD X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Mar 2026 05:26:13.4658 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 055ff733-061e-43dc-87f6-08de831c8a46 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: DS1PEPF00017097.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN7PPF7B4E3DFF8 Content-Type: text/plain; charset="utf-8" From: Peter Zijlstra Add a dummy runtime_const_mask_32() for all the architectures that do not support runtime-const. Link: https://patch.msgid.link/20260227161841.GH606826@noisy.programming.ki= cks-ass.net Not-yet-signed-off-by: Peter Zijlstra Signed-off-by: K Prateek Nayak --- include/asm-generic/runtime-const.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/asm-generic/runtime-const.h b/include/asm-generic/runt= ime-const.h index 670499459514..03e6e3e02401 100644 --- a/include/asm-generic/runtime-const.h +++ b/include/asm-generic/runtime-const.h @@ -10,6 +10,7 @@ */ #define runtime_const_ptr(sym) (sym) #define runtime_const_shift_right_32(val, sym) ((u32)(val)>>(sym)) +#define runtime_const_mask_32(val, sym) ((u32)(val)&(sym)) #define runtime_const_init(type,sym) do { } while (0) =20 #endif --=20 2.43.0 From nobody Tue Apr 7 04:36:15 2026 Received: from PH0PR06CU001.outbound.protection.outlook.com (mail-westus3azon11011035.outbound.protection.outlook.com [40.107.208.35]) (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 4408D33CEAA; Mon, 16 Mar 2026 05:26:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.208.35 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773638803; cv=fail; b=movgCTpN/yPT1hNqPQHTjZf3vlQ/LFGF8PueoRXCnDcesEQXiYFXcVFROD3dzCZpX2UX62NW0dZjl7OfPAQ0cvm+Tr0XEmA5p4krrs9t2GtuQL7+o4J2vcCoHkV9cdPMiR0Ea4Do6GxGftnucKhFqwFe4IqUmRmeTilPYukHOpM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773638803; c=relaxed/simple; bh=dmCtpcWF9d7ZL3cPqLCLSl2WlSXigsKmC5v3E/0IclY=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=ldYQywzPfcGbi2MK/LGI3yVdLd8x9IVnISTOd7GtcX5lv0S5JB4kX1lH53I9pkZ9MWVdVzMdSuGp9b27WSV7aNhqf420GRGagEqpreja3QqlTT6TmVkSWzVaf9wpUPqHJy+Pv9mfQAVSSeRKCcaJS2nTiIrtPDLHhuwXBrZx0oA= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=BmdOZjV/; arc=fail smtp.client-ip=40.107.208.35 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="BmdOZjV/" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=GxGqP07AC2r4OZa2cp9BLgE+EQmwwmKhvb0vWjQ81Akp9v5tPTI36hszAaKnPXLHpkukXK6Z/q+FU7BlO37MP18K+ZrAJBJ3ZDF87kGt3mHbFBKwXyEksHphD9yEDCjclQhe6c6zu4prhZppx3F/GInyBZURkqYw+4wxia9sR770bYhrtKpJFjWX09hjmv+1U+nVCRxc1BJhWw9HwTHa6kgU2oqvmVex8bjzO7azC0t7IzypsKCe5scZi8RIcTJPRoZuEHccyrnQTmdmCMuI9zGXteM0ptSUclNR4yJkOu2/rfbHc2J1i01UwmPdeMY0BuOJV9JOVvzmmO2fP680vg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=NDBfqkkR5+ttpLzhQpMfEVMO9lMbzRhzooj5gIZeZe4=; b=RJsbYVUY7WlkoETQM4y2m+Z6LzdgeV8IrccsCEmoefKIkNE97yKINrqtSD3Lpaef/+H+cqkqEwWHTDKYNN74nT9I9n+8hnYyFM0FK8dIBUUybMM8jtA6BLdoYg4Bfz27yp1MOHYzLlwqXOuMtJUsnBB6DidYW6WL7UX5Tv6zSfqS70eESeWNHhLWbHhzAavabchdPzqc+WHJVYRmjFfytF59yEio/gTMvvQRLDynPSKttGU8n7lP3gYcXWKtSDPeUsPK2XMQ5UxBioeZwgtsXO9cvT4M0X0e4u/Z0bzDnWnSJmW875biNR1m3+kYGMlTlGMA84CQnUUQcDFLn3Emtw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=NDBfqkkR5+ttpLzhQpMfEVMO9lMbzRhzooj5gIZeZe4=; b=BmdOZjV/AaGfmSJoupduAZB9xnxKxS7Nu4uF1JNcF6FuaJkAixcrGmqZajB6Kd6xRiFUolqcZ0ci0IVUVuv+PnHTyrKLOHnpZgjmwdDN8Jod8NUpw5m555ICAIgm9AvQUjCrWWQD+a7/T1/MpTI70JYNLSZOD/g51ye5Vi2GJyo= Received: from DM6PR02CA0104.namprd02.prod.outlook.com (2603:10b6:5:1f4::45) by CH2PR12MB4216.namprd12.prod.outlook.com (2603:10b6:610:a8::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.17; Mon, 16 Mar 2026 05:26:35 +0000 Received: from DS1PEPF0001709B.namprd05.prod.outlook.com (2603:10b6:5:1f4:cafe::57) by DM6PR02CA0104.outlook.office365.com (2603:10b6:5:1f4::45) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9700.22 via Frontend Transport; Mon, 16 Mar 2026 05:26:33 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by DS1PEPF0001709B.mail.protection.outlook.com (10.167.18.105) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.17 via Frontend Transport; Mon, 16 Mar 2026 05:26:34 +0000 Received: from BLRKPRNAYAK.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 16 Mar 2026 00:26:25 -0500 From: K Prateek Nayak To: Thomas Gleixner , Ingo Molnar , "Peter Zijlstra" , Sebastian Andrzej Siewior , Paul Walmsley , Palmer Dabbelt , Albert Ou , Borislav Petkov , Dave Hansen , , Catalin Marinas , Will Deacon , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Arnd Bergmann CC: Darren Hart , Davidlohr Bueso , =?UTF-8?q?Andr=C3=A9=20Almeida?= , , , , , , K Prateek Nayak , Alexandre Ghiti , "H. Peter Anvin" , "Kiryl Shutsemau" , Sean Christopherson , "Charlie Jenkins" , Charles Mirabile , Christian Borntraeger , Sven Schnelle , Thomas Huth , Jisheng Zhang Subject: [RFC PATCH v2 7/7] futex: Use runtime constants for __futex_hash() hot path Date: Mon, 16 Mar 2026 05:24:01 +0000 Message-ID: <20260316052401.18910-8-kprateek.nayak@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260316052401.18910-1-kprateek.nayak@amd.com> References: <20260316052401.18910-1-kprateek.nayak@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS1PEPF0001709B:EE_|CH2PR12MB4216:EE_ X-MS-Office365-Filtering-Correlation-Id: 444e9b96-91a5-49d3-6b51-08de831c9703 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|376014|7416014|1800799024|36860700016|921020|13003099007|22082099003|56012099003|18002099003; X-Microsoft-Antispam-Message-Info: W7g6S+pmG+E8HIBtlz+E2DuWisYTt+JH37Yjq4UKv92aR5pYqFhio0PipnXEtuwlrRpDWavm7O36WdBUcGQ1PW8qdYvZY/UWIxTUdC8Deve9n+wWjkXSDWamcG4Cp/HacjCtdkGHyhk+4bZiw+PH4zXcIYZ17Q0BIK1UkxgbZKDFNKe71hrBODGVhqn4ZX1sqfBL88WW2zXeDrZexc9GS03QlL/5VupMHqWz7U9ytJvPZR7neclkXZ9wY+cn+1mhoMTOXnORsKn77tij2y9pMcKpVtoJ9ptm041Wu4K0thHw4YYd2F7durirUKQLLiT08c6LfumHGCgVvlV0ixSO50do835L2GAF/J7G8WHqUbG+mXoTKu3cA/854fl70/B8DKdXkH+J88Ebd8y9dJzLHERz4nyI/iiZWu5PCyDq4zvSv4QBz6qY3avIBT/UD0pOwb6WU1nKpEwF0u4ubZQo/iNJI7CQrdXZY4duReBWjszJ9v4dyixe8/B8Tdc5Ka5eti+ztIbixmYg2VbH3Kugq06sH3AUrS5fyW/H8xftrXNCcscptkV2yn+NbSg354JUwpmpmMCmmVjP38tXg4ypX5XNM6JjPpVUCMAca5R6MhlgXQAcqnN3i6rzr0FJToJuCujOKlxlF056P3745lureGNFKeiJ1v38fW4BjMuDNWdbWob7cgndQp06WxolQKSZ1pYQW06nIUB0xMwV5D70F75TuDOWK/N0nJhFpNz3R8QLd7yCX9JXqoAtvjD1kuoP+eNstSiLGrjVXxRUqVCKRw== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(7416014)(1800799024)(36860700016)(921020)(13003099007)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: LSwOuTaQiPv9/2iIEMpHIlLZ8J5r53hrH/Tjq5/RMXyNakZszAE0smxTYYFQFEXeyI6sUIpf74LW86Yp2JlGGtkoGyeSGFTLWuXXKWHFjof1k1NccR42Iv3NvWfSamF01EPsNTrPBqmwzMZMGblizqCwxeqeN6w4oXDUs8hJCP5lIk0zXDPX0Cy69DY5L56C5fv4PwJvRmLiVV96dBsKRtck0Pf4eQFk8I7hkV4bBOpleVFu3hlvNuUd3fqnuu3hgzY1/jkfi/GuxC/c3wrZWdoDvAtu4ziP+nSyDu5ARqCzly+Fmq+ob0RBby6v3p4kZ1qD5DAh6okZjGy0sKP5xaaDVbm/KdrRJn8ngKe2Vnq7iMYL1JHHt6xnGi67s9/FHHOr4v6TjdqETMsyCq52Jy5raHNZjVAImG1NdH9oiUhMlUHwuZ9LZQt003pCuSkN X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Mar 2026 05:26:34.8317 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 444e9b96-91a5-49d3-6b51-08de831c9703 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: DS1PEPF0001709B.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4216 Content-Type: text/plain; charset="utf-8" From: Peter Zijlstra Runtime constify the read-only after init data __futex_shift(shift_32), __futex_mask(mask_32), and __futex_queues(ptr) used in __futex_hash() hot path to avoid referencing global variable. This also allows __futex_queues to be allocated dynamically to "nr_node_ids" slots instead of reserving config dependent MAX_NUMNODES (1 << CONFIG_NODES_SHIFT) worth of slots upfront. No functional chages intended. [ prateek: Dynamically allocate __futex_queues, mark the global data __ro_after_init since they are constified after futex_init(). ] Link: https://patch.msgid.link/20260227161841.GH606826@noisy.programming.ki= cks-ass.net Reported-by: Sebastian Andrzej Siewior # MAX_NUMNOD= ES bloat Not-yet-signed-off-by: Peter Zijlstra Signed-off-by: K Prateek Nayak --- include/asm-generic/vmlinux.lds.h | 5 +++- kernel/futex/core.c | 42 +++++++++++++++++-------------- 2 files changed, 27 insertions(+), 20 deletions(-) diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinu= x.lds.h index 1e1580febe4b..86f99fa6ae24 100644 --- a/include/asm-generic/vmlinux.lds.h +++ b/include/asm-generic/vmlinux.lds.h @@ -975,7 +975,10 @@ RUNTIME_CONST(shift, d_hash_shift) \ RUNTIME_CONST(ptr, dentry_hashtable) \ RUNTIME_CONST(ptr, __dentry_cache) \ - RUNTIME_CONST(ptr, __names_cache) + RUNTIME_CONST(ptr, __names_cache) \ + RUNTIME_CONST(shift, __futex_shift) \ + RUNTIME_CONST(mask, __futex_mask) \ + RUNTIME_CONST(ptr, __futex_queues) =20 /* Alignment must be consistent with (kunit_suite *) in include/kunit/test= .h */ #define KUNIT_TABLE() \ diff --git a/kernel/futex/core.c b/kernel/futex/core.c index cf7e610eac42..6b5c5a1596a5 100644 --- a/kernel/futex/core.c +++ b/kernel/futex/core.c @@ -45,23 +45,19 @@ #include #include =20 +#include + #include "futex.h" #include "../locking/rtmutex_common.h" =20 -/* - * The base of the bucket array and its size are always used together - * (after initialization only in futex_hash()), so ensure that they - * reside in the same cacheline. - */ -static struct { - unsigned long hashmask; - unsigned int hashshift; - struct futex_hash_bucket *queues[MAX_NUMNODES]; -} __futex_data __read_mostly __aligned(2*sizeof(long)); +static u32 __futex_mask __ro_after_init; +static u32 __futex_shift __ro_after_init; +static struct futex_hash_bucket **__futex_queues __ro_after_init; =20 -#define futex_hashmask (__futex_data.hashmask) -#define futex_hashshift (__futex_data.hashshift) -#define futex_queues (__futex_data.queues) +static __always_inline struct futex_hash_bucket **futex_queues(void) +{ + return runtime_const_ptr(__futex_queues); +} =20 struct futex_private_hash { int state; @@ -439,14 +435,14 @@ __futex_hash(union futex_key *key, struct futex_priva= te_hash *fph) * NOTE: this isn't perfectly uniform, but it is fast and * handles sparse node masks. */ - node =3D (hash >> futex_hashshift) % nr_node_ids; + node =3D runtime_const_shift_right_32(hash, __futex_shift) % nr_node_ids; if (!node_possible(node)) { node =3D find_next_bit_wrap(node_possible_map.bits, nr_node_ids, node); } } =20 - return &futex_queues[node][hash & futex_hashmask]; + return &futex_queues()[node][runtime_const_mask_32(hash, __futex_mask)]; } =20 /** @@ -1913,7 +1909,7 @@ int futex_hash_allocate_default(void) * 16 <=3D threads * 4 <=3D global hash size */ buckets =3D roundup_pow_of_two(4 * threads); - buckets =3D clamp(buckets, 16, futex_hashmask + 1); + buckets =3D clamp(buckets, 16, __futex_mask + 1); =20 if (current_buckets >=3D buckets) return 0; @@ -1983,10 +1979,19 @@ static int __init futex_init(void) hashsize =3D max(4, hashsize); hashsize =3D roundup_pow_of_two(hashsize); #endif - futex_hashshift =3D ilog2(hashsize); + __futex_mask =3D hashsize - 1; + __futex_shift =3D ilog2(hashsize); size =3D sizeof(struct futex_hash_bucket) * hashsize; order =3D get_order(size); =20 + __futex_queues =3D kcalloc(nr_node_ids, sizeof(*__futex_queues), GFP_KERN= EL); + + runtime_const_init(shift, __futex_shift); + runtime_const_init(mask, __futex_mask); + runtime_const_init(ptr, __futex_queues); + + BUG_ON(!futex_queues()); + for_each_node(n) { struct futex_hash_bucket *table; =20 @@ -2000,10 +2005,9 @@ static int __init futex_init(void) for (i =3D 0; i < hashsize; i++) futex_hash_bucket_init(&table[i], NULL); =20 - futex_queues[n] =3D table; + futex_queues()[n] =3D table; } =20 - futex_hashmask =3D hashsize - 1; pr_info("futex hash table entries: %lu (%lu bytes on %d NUMA nodes, total= %lu KiB, %s).\n", hashsize, size, num_possible_nodes(), size * num_possible_nodes() / 1024, order > MAX_PAGE_ORDER ? "vmalloc" : "linear"); --=20 2.43.0