From nobody Sat Sep 26 13:47:35 2026 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (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 BD73D3939C1; Mon, 31 Aug 2026 20:23:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788207824; cv=fail; b=qxjc9zlnn79HVpQ+hW3CU3IkQ/+X90mawf5VQuhFg6Hj/4WbqPXl6kTF95dhnImNLPuNJ8bNLYbwSbm4o2EJ3xpHz9oxJZU3mIgEP4kvk+gwBnNJnx2VN0q6pGifl/NJSgYtyEbpxnBxChCe32N/OHrBW65wm/wD/7PkxhERwb4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788207824; c=relaxed/simple; bh=kQjwNyshMB8qwiPzg4I6msK5snW7yndlyEvBHVr9oJQ=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=Xo0X5G6BQNHg7frFA01fjmSFBeJQhL3nk4C97MoqdjomRFz+L59OW9jpSAhO5hWTjvkE8/IJOUXGSUVIrKN9Sa2EUtiZeETWPRmUaP6KxTNMRNvhNaSJbPFu49/Gm05e4eqQe9C4EDTfVXjrjuWq7jLThLhg8bJ5t8JrU3aqV9I= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=oWWgJNYg; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=ZRoqbpZS; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="oWWgJNYg"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="ZRoqbpZS" Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67VGBnc11775721; Mon, 31 Aug 2026 20:23:03 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=NNp3Mok5iuSH509wd3a2WX627KY9P4mKBB5/vFkT4lI=; b= oWWgJNYg9ChTIrig7cecNdVE6oNIcLA/pH2qyF6q1cgXC/J7PhJMvRawtd2xShSq /1zmEXHOIKJ4WJ3/NLNce5gVmW72tdFmgqwn6odCUb3nPbtZAD3XecESLwA85/V5 taVKALDzxJRNJo5YhJvw6lYA4946oRiGa3P900DIa7W7DgjB6SSMrBXxSfkrVZeR 4Wd56cigRE+ZDTz0zqBD5j1uqHyf9h9o+bPow7UcnHF5kaclEwleSHGNpKp8QD4s sY2RdanES3EC/xpWYGhW6M6d2yxqldSPUyx4uFXX/OEQb8Z1kzA9C9xo1SrKJDh2 q7IQRhSgtN92YnMu6wJ4mg== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4gbp72bbhv-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 31 Aug 2026 20:23:03 +0000 (GMT) Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.7/8.18.1.7) with ESMTP id 67VKK8cu038776; Mon, 31 Aug 2026 20:23:01 GMT Received: from bl2pr02cu003.outbound.protection.outlook.com (mail-eastusazon11011020.outbound.protection.outlook.com [52.101.52.20]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4gbnvdgjj4-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Mon, 31 Aug 2026 20:23:01 +0000 (GMT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=WIZhCoIEkpJCN0aotR+e6dr96VyzbCtRmUM/TknbXL/r+m51NCYKHG5V58HnszYscpk5ktwuqVmGKmkXS+EsJrDmil+HSetzN/0YGQhugn1dR1uIHC5F5/r2mmL90YIE5ymvkQhu4ejGv4XdD/G9JX/oM/74vhqwlqUOqHDyIouRRi3pC6oeOwNHyHmI11PbyPV29JM2yPciINJyqvSbBS8opAjArJ5Ih1myLRUNj6k8UdD2MMwMd7ZDwNjOHOUGBwyDAW8vB2ssl+gK1hmC1T+PaGONCRmI7/s0Wkmdc8CoTkxCKCMPsFL5E2E5/MDUfAws62dHT2diZ0iXqC8gXA== 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=NNp3Mok5iuSH509wd3a2WX627KY9P4mKBB5/vFkT4lI=; b=itcIYtmYeXqKcuKqodPLYLhQeIuO+DQg4oyZlRKTWV3tDd5ULMCW8XAKfBTx1qW4CJiuLQNBC35kSOO0r/9dVp4D/SvZ/p9kSGcWvQ6F1QZ1wpClXdFSGxa1ylSiRCDj1mkNAb7phy5TXbxzkpB+xLRSwVtEHckzRo+IBb5lbAdl3wkHpkcutUIR1vi/6NY/AKQDHBNkgO9nStGSzyxGZFPSBuHLITiONbuN+ep1coD3ZlhBtCg6NYXP1q3h9zzz9fM3sPJLuTRnuGQuLOktS/TKyzg9fTZpZrNRWYU7Y1qmaIreGLuYQoDKyxO310wxRCptoqclwKrmpHOsASDp1Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=NNp3Mok5iuSH509wd3a2WX627KY9P4mKBB5/vFkT4lI=; b=ZRoqbpZSFhQjjKsi0JjaQ5jdSp0nGbFTPVEtMRucV+pP3vN/hP02un8fqvPqDqztF6q/7KxXIEx2WZF9wEcRho8ZGZO4EBIfbkSJXp2StdZvkDfjppJUBaPoo6HOnkA41Ijb8rcdoL2zTP+VsGwx9pknyfuzAYDrS71iz4zlDf8= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by CH2PR10MB4263.namprd10.prod.outlook.com (2603:10b6:610:a6::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.382.10; Mon, 31 Aug 2026 20:22:54 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574%6]) with mapi id 15.21.0382.007; Mon, 31 Aug 2026 20:22:54 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pm@vger.kernel.org, bpf@vger.kernel.org Cc: arnd@arndb.de, catalin.marinas@arm.com, will@kernel.org, peterz@infradead.org, akpm@linux-foundation.org, mark.rutland@arm.com, harisokn@amazon.com, cl@gentwo.org, ast@kernel.org, rafael@kernel.org, daniel.lezcano@linaro.org, memxor@gmail.com, zhenglifeng1@huawei.com, xueshuai@linux.alibaba.com, rdunlap@infradead.org, david.laight.linux@gmail.com, broonie@kernel.org, joao.m.martins@oracle.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ashok.bhat@arm.com, Ankur Arora Subject: [PATCH v15 01/16] asm-generic: barrier: Add smp_cond_load_relaxed_timeout() Date: Mon, 31 Aug 2026 13:22:36 -0700 Message-Id: <20260831202251.305046-2-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20260831202251.305046-1-ankur.a.arora@oracle.com> References: <20260831202251.305046-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4PR03CA0109.namprd03.prod.outlook.com (2603:10b6:303:b7::24) To CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO6PR10MB5409:EE_|CH2PR10MB4263:EE_ X-MS-Office365-Filtering-Correlation-Id: dbc02fdf-7f4c-4560-6281-08df079da35c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|23010399003|366016|6133799003|3023799007|10067099003|56012099006|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: oGfcxa25+hi2fibKcAQBa+LbKZ0Go3oOaps/4iB5uPRVx6oq0dBWV/4wMl5aEu09N25f6ObtcQCxNze0sAZd0XqBQSXTGYeokLWWwOs52+feieKG8xb3dYN7fopuniJBGA/+8ybSAfxdACtdwz86dcuJr7x17bt9PNDZ2gq+xjGk5ce1iVgNfeSuijst3u8JWpDMp2jcA2w+rrROyKthXpiUSpUVcIjkd+bRSOg06Au2ygpjPo1/57dR7+AE1F8NlO5FTvJ5mDRpLSnkk3alxcNb3xh+eovBAjARxfqcxeTKj+kn3EpG8qCTmtvq/umBKxkDVaKY49zx2MemLX1Phylo1RrSRq2ZGXtHspR36OlzDoYgv5dxx9cFJQ8FrdDUnt9V+np9q+alo5OXzG/ogbWHMwfCqKiRnPUnHb5ZHZJNoniziMi4GCKHAXXEpD8WGrWma6BuxE/8xhlZOGlzd8Ikwkfc5NneA0O3l4NYG4ozjKorLIR8lmLcPORqAbYDB7dT0MY2i0iI5z3jxjHLecbhdyL067K1n/GBDpUOoWAeUcrwI0whAX+WIMTCcvgIjTgKRI3XU9dNHnqR/gR023zdkMaXArY7rvp+7E4DgjWdK7YXx8vzynsxQDMFpu/UmJnhbjSXE1VFzAvmOAlqV1u40sitrZUC3ZTbqO6oNc8= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO6PR10MB5409.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(23010399003)(366016)(6133799003)(3023799007)(10067099003)(56012099006)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?bnn1BLkGEklveBE6bZIG7MsaUMwgvprUD3e4ya4dsPTTvJwm3ekIjLCnCmeu?= =?us-ascii?Q?Qq3/5VZ0rECAa2T3x2/jIP4qR/p+5rQE2A4RP869bajLif8JeZ1VOr0qzMso?= =?us-ascii?Q?xJr3FUCbeeUsvrNBL8YlzC1I4fLiTHJPAtltYsGQMyaNYz7x51rQpoVweSVM?= =?us-ascii?Q?SRhH+0uV+lqMKqS5Ah5uRDgT+dZhC4gq22gFjZ24PHIMSzilML6ccgXoGxgB?= =?us-ascii?Q?Fuami6Zhk3SulJB6M7emQJoG0OoHLH/gohaJYRZMzA9zetvADZNGdc8Ak9pa?= =?us-ascii?Q?Uk+5Uh+HRwNJouTir96u8y6gxT8F6B3FIyxpTp4kSy8UQSzuaPTJ4cIVjFFA?= =?us-ascii?Q?tYeA0L3ghe5J3oUGenufdvTiwID6IHnXSLr17yd4mZXRZzC24fGGBiSua3zl?= =?us-ascii?Q?tRECvmb3UkIH8N26LNdxPaKYcIl1abocKb6oREBNSqWIkeFiMyT8tDp9pzSm?= =?us-ascii?Q?KdjcxsW9BDbio/K2BXHVzWg4i5JDDHcpUN4bwNM8MrltfwchRJ4QDIsoNqOz?= =?us-ascii?Q?7IUs8P93vhMQyz/RqbmwuQHC6cWkJTZKVT37lRacNvQY7kb2curbHvupAPku?= =?us-ascii?Q?8ouqlvIQnEGke5ccV7p7k63jbJk8XzoTY0y590CViyuyWHf0DpXkDTzT1ZNd?= =?us-ascii?Q?Xu3hEtz8pPLa6WMNqW2XvayFyvPrKlEuax2qjjn95WBM392gOVWEe17cZAIF?= =?us-ascii?Q?HbEvyce9Ax1fDZ1anm5+/zCUtSPq4fX80r3p33+ueUa0IeQ3zLSCEb71xBFg?= =?us-ascii?Q?hxivU61C1PT06izLegGsI28n/vVpA0+fJywBJ0ngUtWNP6G/g20U2KKO10NZ?= =?us-ascii?Q?P3L3DNwlCt4mt7wXa2WSQ8mWzEaouPzfuPVj823Du8tFUO7Tj7R6jRRtTaC3?= =?us-ascii?Q?3tzGOQ4TNY7p9zM8VZgjLRi+TX/pdG7lif/K/KoYQwh5fNMIaXCCAA22mDKC?= =?us-ascii?Q?rAOLuRvD3sfV5BLvHafeU1K51nu7B/zABv6uDkgMVgiAXBD7QeR8/vFrBP1i?= =?us-ascii?Q?OoZzMdmaLiraHcwMxRNUk/KlReRiGrH0hs9w5A/YghKrYq3IyLLOOZsI9K0l?= =?us-ascii?Q?9BfKaKSsjl7Xh2s6mE6NJFH3fcqjcsMXz2WGPRSsS6vC/0cHS+sVTQV9tOTF?= =?us-ascii?Q?Bz0ww+qXfDsMH83PCpt7eb3NPb3BqA21BrYNP80ZFyhPcyscLzl5YBXTNOJc?= =?us-ascii?Q?kDw4Vpqe54amEAVrO1/6n5jC1i6By0EyyQ4PPhq+ULRTJVh88716ezntTogf?= =?us-ascii?Q?PRuqifZn+AU+5UJz+PRvNm0u/VXgA537tTbczytSud3q0HCoeDrFvn8AFujN?= =?us-ascii?Q?WDFTWC+mGFAeVgJj8ivx5PdRrsjQ3Iki62qapriZCzkUHBcLRUQ8VXErtoX0?= =?us-ascii?Q?fLkIwUVrrmBkp5I2RoZADZFiAkNWcv5VWHBMdLJ2wCh52xafeqcnQEryV7Dc?= =?us-ascii?Q?2K7L+ZgCFIjHXjgUXTUX1PvhjQWW9uHD6/scc9uJiqCbD1KCfzPaH0HjoB/7?= =?us-ascii?Q?WbKqXJQxxdkH14lVizrAbp3AXm48B6pPrYdCFrbtv0jwQM2Np7HgkkFknoLF?= =?us-ascii?Q?P5zAr9xgLmPytzlHz9SFl/ZNnMSd40ZCoZODNNgOG95qvQOt5HO2dBOOmlRw?= =?us-ascii?Q?ImMYZT8ivC8EC4OGOIeVl1RE5jLBuF0bnYpfua/PWZ5j0wFVYBdoHI41mxIi?= =?us-ascii?Q?bmEqoT2foURIHcxTVVprLRKNnFsjjslb1TFYlrp3ZZwLqNPyjMz6KDEgEr1O?= =?us-ascii?Q?sQ6svf7JXonvVcANEoTbkajsfOOR6Jk=3D?= X-Exchange-RoutingPolicyChecked: ZfXr4YRr+DViByaJIrV9Ln2ibEKIk58MgVFogbPxTbCgKFCYEhGvKUovZXmpAY59y9oCSibuDmso6c1NyrHYFLHDOxYmZcWPU2s/vGrv7uYYIaMkh7Q+uEIBrtrL3SPuOKv9MaLggbMtObYHlZ+g+liCMDBH816bKxmZig3dAEXjZgoIYWckeIdF79mM8iJIW0dHdrjIM/oZlsfcdQdHBPM7/RU3cT4tum/YU+W1nGv5ViJefXIdhpdHugA+6vpz1PkcHzN+p2CtWSDn3HmM9xPVWp89CxQA5SB7pqG+MyjS5xQS4v6ZFttklzU5lzdvfk6zF6XzX+qWz5oDnMRQaA== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: dAeA0bRrJZ8i1z5cSfVMfQB2Fz6+dHlBFMUeCKTcETS/2THI/HVu4eMKvPpmR9OImNhJ+i9YHcN7lbGz+UEzXErSNabEygruJzVz97NRt7WJQwtnmjzbfROwfrTj+1ejitgjvfzXhhF31P86ZgrHsfyFomh4jndCW40Io1yN+ErgkF4n99qoI5OM4y6g8o/u01OhOAQHORj42fNCcO7fUDmOV5x2bnk1z33PVcKHYeEZFlxlVL7FoMIMK0XyJc+aCF4le3HHwfWOBjCdoFSYBiayQUlFljAGf5o9UAR2UsN3ExUxLjZJbXGH32caoLqbzVPoj52Ztd+UlxMfeCDR3HQtAKFDQeOPvK4QA1cBDbeIJnFM5UCoNyKFjJ3+CKwxcyV2NSUBDLQX+csPp+rIgcYmLu28GqkMwC2UOUFsvLYdj35qbZbZ80u/rgJ1GZzpKPelQN8XwW3k3RUM/cMootyozwg55/kszRBOHKDUlmv4Moo9KNIDZRpuHxpKOuZrI284ROts28eDZ2S684ht9393ieXr7qZXW3drqtWBJcQ0gugZM/F78fbeJJ+U09ZgG7rjrGASRF6YK9yNZ5Af1ircB8I6OFNbOmFlKMvJEqQ= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: dbc02fdf-7f4c-4560-6281-08df079da35c X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Aug 2026 20:22:54.3423 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: yo2ZY6DRz0mPIQBfGNKHZlm7maMZz8X2BqUg0K/J/GlPT1E0aCV9Eh4HUiu5ywqGWLaokIKL5bAqC1k7jm/+tjhWP7T5pcAiTx6vVgs5MWY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR10MB4263 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-31_06,2026-08-31_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 mlxscore=0 lowpriorityscore=0 suspectscore=0 adultscore=0 bulkscore=0 malwarescore=0 spamscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2606160000 definitions=main-2608310176 X-Proofpoint-Spam-Info: AW1haW4tMjYwODMxMDE3NiBTYWx0ZWRfX+sH6K1GCKd38 bHSKvidZoy/LXC+6drTAK+wdyyfr1G+EVU6x6H6dns7dxK+lDvElGaOu41mdtNm+TraBkuxmLbY cIf3whuoQ/IQGV8c2DAyOTwrbjLOf5ZINtyDuqWdBcwqPT2X19ED X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODMxMDE3NiBTYWx0ZWRfX/3/X22+bp+oT vvocoSQZY/UQ6yhDwYKXwa9RbwAQUiCmnEHBjcj+LBVaBOfJ4oAY7jG3Ip9fyJuJcBj/QYUKzu3 rvVlMi7QITo3lh5cv08pFqj+TTZbQdrcBBroWW7U3aebdgJZ5VpOsex0Z9qn3pJPjU/PdH9QmVY kQnQKlL05WEFZFYvDMm4435vvrMgv26O+hdCv3OI4z7jqr5SEnVDOVblpHMVtFu8hK/ShQEFTo1 W+Xn6M3l9MkClksPLurZnS3+pK/mOT+Ot4yGjOS5MkoJfDt18sG7RSHYE13O3ImFOMSQ1sxpo4/ aFILzBs9HPpLhp7aAJRTsdAmQywwe8JxUbgQ9N6JQlIjBu1lhv2j9I6wepVCG1aLZ5Ak+EzFu0/ wHGOxJ4TCSKLXkyV9KowiSroHcKKYbgKCgQz9aJeaW05yx19VFIrYz+I+n4mje+bwgHp7pSB2iP GmqhxxFrQ8taS6BSHog== X-Authority-Analysis: v=2.4 cv=G7os1dk5 c=1 sm=1 tr=0 ts=6a95e2a7 cx=c_pps a=OOZaFjgC48PWsiFpTAqLcw==:117 a=OOZaFjgC48PWsiFpTAqLcw==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=Sv0fKeRqtYgA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=jiCTI4zE5U7BLdzWsZGv:22 a=o5oIOnhZENCTenyL_yNV:22 a=VwQbUJbxAAAA:8 a=7CQSdrXTAAAA:8 a=JfrnYn6hAAAA:8 a=yPCof4ZbAAAA:8 a=xjBfvZVMSjtnnSOzluoA:9 a=a-qgeE7W1pNrGK8U0ZQC:22 a=1CNFftbPRP8L7MoqJWF3:22 X-Proofpoint-GUID: TNrERx5QEyEQ4xhjzW23Y4qgUx9E702b X-Proofpoint-ORIG-GUID: TNrERx5QEyEQ4xhjzW23Y4qgUx9E702b Content-Type: text/plain; charset="utf-8" Add smp_cond_load_relaxed_timeout(), which extends smp_cond_load_relaxed() to allow waiting for a duration. The interface loops around waiting for the condition variable to change while peridically doing a time-check. It uses cpu_poll_relax() to slow down the busy-wait, which, unless overridden by the architecture code, amounts to a cpu_relax(). There are two ways for the time-check to fail: the timeout case or, @time_expr_ns returning an invalid value (negative or zero). The second failure mode allows for clocks attached to the clock-domain of @cond_expr -- clocks which might cease to operate meaningfully once some state internal to @cond_expr has changed -- to fail. Evaluation of @time_expr_ns: in the fastpath we want to keep the performance close to smp_cond_load_relaxed(). So defer evaluation of the potentially costly @time_expr_ns to the slowpath. This also means that there will always be some hardware dependent duration that has passed in cpu_poll_relax() iterations at the time of first evaluation. Additionally cpu_poll_relax() is not guaranteed to return at timeout boundary. In sum, expect timeout overshoot when we exit due to expiration of the timeout. The number of spin iterations before time-check, SMP_TIMEOUT_POLL_COUNT is chosen to be 200 by default. With a cpu_poll_relax() iteration taking ~20-30 cycles (measured on a variety of x86 platforms), we expect a time-check every ~4000-6000 cycles. If a architecture provides a waiting implementation for cpu_poll_relax() (and signifies that by defining CPU_POLL_RELAX_WAITS) we define SMP_TIMEOUT_POLL_COUNT to 1. Lastly, config option ARCH_HAS_CPU_RELAX indicates availability of a cpu_poll_relax() that is cheaper than polling. Long timeout values might not make sense for architectures not having ARCH_HAS_CPU_RELAX. Cc: Arnd Bergmann Cc: Will Deacon Cc: Catalin Marinas Cc: Peter Zijlstra Cc: linux-arch@vger.kernel.org Signed-off-by: Ankur Arora --- Notes: - deferred time-check is now limited to a single usec. This allows the fastpath to not pay the time check penalty while ensuring that architecturs with precise waits (like WFET) don't end up with a huge overshoot. - smp_cond_load_relaxed_timeout() now checks that timeout_ns fits in s64. (This is kept as a wrapper around __smp_cond_load_relaxed_timeout= () to avoid cluttering the core logic.) - SMP_TIMEOUT_POLL_COUNT is explicitly defined to 1 if the architecture provides a waiting implementation of cpu_poll_relax() (defines CPU_POLL_RELAX_WAITS) - this was the only sane behaviour from arch code but now the code explicitly encodes it. - __smp_cond_load_relaxed_timeout now uses prefixed names to avoid any possibility of collision. - minor language changes in the commit message; comment block around cpu_poll_relax() and CPU_POLL_RELAX_WAITS Catalin: the changes are a significant number of lines of code. Though IMO only minor updates to the logic. But I didn't want to stretch your R-by too far. Could you take another look? include/asm-generic/barrier.h | 106 ++++++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) diff --git a/include/asm-generic/barrier.h b/include/asm-generic/barrier.h index b99cb57dfccc..4437d27c46b9 100644 --- a/include/asm-generic/barrier.h +++ b/include/asm-generic/barrier.h @@ -273,6 +273,112 @@ do { \ }) #endif =20 +/* + * Number of times we iterate in the loop before doing the time check. + */ +#ifndef SMP_TIMEOUT_POLL_COUNT +#ifdef CPU_POLL_RELAX_WAITS +#define SMP_TIMEOUT_POLL_COUNT 1 /* Wait mode. No need to poll. */ +#else +/* + * Assume that cpu_poll_relax() provides a small blip in the pipeline. + * Combine a reasonable number of cpu_poll_relax() instances before + * doing anything substantial like a time-check. + * Note that this assumes that the rest of the loop (largely evaluation + * of the loop condition is relatively cheap.) + */ +#define SMP_TIMEOUT_POLL_COUNT 200 +#endif +#endif + +/* + * cpu_poll_relax() stitches up two kinds of primitives: ones that provide + * a momentary blip in the pipeline (ex. cpu_relax() on x86), or ones that + * support waiting for @ptr value to change, coupled with a precise (or no= t) + * timeout. + * + * We keep both together because the objective is to minimize expensive + * operations while polling on @ptr waiting for it to change. Either + * version allows for that. + * The arguments (@ptr, @val, @timeout_ns) are only needed for waiting + * implementations. + * + * Note that platforms with a suitable cpu_poll_relax() implementation are + * expected to define ARCH_HAS_CPU_RELAX. + */ +#ifndef cpu_poll_relax +#define cpu_poll_relax(ptr, val, timeout_ns) cpu_relax() +#endif + +/** + * smp_cond_load_relaxed_timeout() - (Spin) wait for cond with no ordering + * guarantees until a timeout expires. + * @ptr: pointer to the variable to wait on. + * @cond_expr: boolean expression to wait for. + * @time_expr_ns: expression that evaluates to monotonic time (in ns) or, + * on failure, returns zero or a negative value. + * @timeout_ns: timeout value in ns + * Both of the above are expected to be compatible with s64; the signed + * value is used to handle the failure case in @time_expr_ns. + * + * Equivalent to using READ_ONCE() on the condition variable. + * + * Callers that expect to wait for prolonged durations might want + * to take into account the availability of ARCH_HAS_CPU_RELAX. + * + * Note that @ptr is expected to point to a memory address. Using this + * interface with MMIO will be slower (since SMP_TIMEOUT_POLL_COUNT is + * tuned for memory) and might also break in interesting architecture + * dependent ways. + */ +#ifndef smp_cond_load_relaxed_timeout +#define __smp_cond_load_relaxed_timeout(ptr, cond_expr, \ + time_expr_ns, timeout_ns) \ +({ \ + typeof(ptr) __PTR =3D (ptr); \ + __unqual_scalar_typeof(*(ptr)) VAL; \ + u32 __scl_count =3D 0, __scl_spin =3D SMP_TIMEOUT_POLL_COUNT; \ + s64 __scl_timeout =3D NSEC_PER_USEC; \ + s64 __scl_time_now, __scl_time_end =3D 0; \ + \ + for (;;) { \ + VAL =3D READ_ONCE(*__PTR); \ + if (cond_expr) \ + break; \ + cpu_poll_relax(__PTR, VAL, (u64)__scl_timeout); \ + if (++__scl_count < __scl_spin) \ + continue; \ + __scl_time_now =3D (s64)(time_expr_ns); \ + if (unlikely(__scl_time_end =3D=3D 0)) { \ + __scl_timeout =3D (s64)(timeout_ns); \ + __scl_time_end =3D __scl_time_now + __scl_timeout;\ + } \ + __scl_timeout =3D __scl_time_end - __scl_time_now; \ + if (__scl_time_now <=3D 0 || __scl_timeout <=3D 0) { \ + VAL =3D READ_ONCE(*__PTR); \ + break; \ + } \ + __scl_count =3D 0; \ + } \ + (typeof(*(ptr)))VAL; \ +}) + +#define smp_cond_load_relaxed_timeout(ptr, cond_expr, \ + time_expr_ns, timeout_ns) \ +({ \ + __unqual_scalar_typeof(*(ptr)) VAL; \ + s64 __scl_timeout_ns =3D (s64)(timeout_ns); \ + \ + if (__scl_timeout_ns < 0) \ + VAL =3D READ_ONCE(*(ptr)); \ + else \ + VAL =3D __smp_cond_load_relaxed_timeout(ptr, cond_expr, \ + time_expr_ns, \ + __scl_timeout_ns);\ + (typeof(*(ptr)))VAL; \ +}) +#endif + /* * pmem_wmb() ensures that all stores for which the modification * are written to persistent storage by preceding instructions have --=20 2.43.7 From nobody Sat Sep 26 13:47:35 2026 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (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 6F4E6392806; Mon, 31 Aug 2026 20:23:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788207820; cv=fail; b=JB088StexI/7xb5k27xEEWS33qpWU56ZoSnzf08Gmz8AoTY5jpm074Mb9JUBCRC/cmYe+GgZVIEzjUstZq/FKstyV4KSLPTgcjSLowMo9Bl18AqxwsO2NjjOr5xnq3XodQbANHxxGC6y25Q0F1y2ICEsOX8IbzLmMYl1Y98yd0g= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788207820; c=relaxed/simple; bh=L7S5WF2ih4M7a5zTiOZCEKie0ZEdhW6jeyfDnrxh9Xc=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=mKc5JDzUoYNuG7oScUR8lpQ6myI42FM6+CZPh/gX8lFw6V1uVCVpnz/z1he6rOAq2B+V5WtcIj0dYEKNYmyk3b929M0hTNGUtx5aH73Du/ygqofNh5KbGUK1OLTAVVM8flqpukKLumMlsxDNQi/d7LTyVmjv6fFp3G/Lp6LuTEY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=p679jiyD; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=O3VhR+pQ; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="p679jiyD"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="O3VhR+pQ" Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67VGBmIA1708938; Mon, 31 Aug 2026 20:23:03 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=XFl6/30YgIXi0TTl9/SvwhBqAHuGQubcfGIA4Tdmz8Y=; b= p679jiyDZZhOhwMH1oIRvk4vOadDS68B+5W5aMBbBxMj8FFnC/VmJcOpq7CpPiUt r7s5GSRkeKJJWoxcajm+ro8vIZH9574b9Xj7Bxfqscvr0Gir3FX0eGSYk40Bc+bx E1VLbhDIdnTTg4z6S85SFQ3hFK/82kmeKzYjKgtQ+gIdD6ouozbX0FO9WpT7QNvA NMvEMsTreGLDxHnDvouxD9ItZliW9Uopwb2oTSkL+O9tKw1eaIvBlABSQyZVPGIM xx7adWH1AycmELCZTSjQwYXExnjvArmcNSU+M75yTXhwAnXEdv7b5Vdk7DarHHAF 76clAPI90YXV0D1iN9owGw== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4gbqyrubes-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 31 Aug 2026 20:23:03 +0000 (GMT) Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.7/8.18.1.7) with ESMTP id 67VKK8cv038776; Mon, 31 Aug 2026 20:23:02 GMT Received: from bl2pr02cu003.outbound.protection.outlook.com (mail-eastusazon11011020.outbound.protection.outlook.com [52.101.52.20]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4gbnvdgjj4-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Mon, 31 Aug 2026 20:23:02 +0000 (GMT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Jw0qX83D1xQ2fFWdTx8RQhlhT8wntlKAASySeQdU5bCrpgOxUOGlVUlFFHDfu8dJw8XAm20yti9msPclzGQnHhOtlukjlPC+0N1anZ8PNLviyy52fBLmZofDTADmuTV45b7LlCEzv4bqrUaq8UOjCclxmuqLn3BzjwAKmjk3eb7FjsbzuxJUmHZ+J037oD4D19ySplcvqD76YzkfSBFk3jDMVXgEnkiodFq9nkQGWVKtvF81zNpIb6w8wD+h6N7mWmfifVpIpnZScE3WEpPaWBugftJOEpLbTEghWzk+Ir8oS6Bej1S0i1QGvFhXWLjeCdrGvA/F7ze989zKoD3G4A== 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=XFl6/30YgIXi0TTl9/SvwhBqAHuGQubcfGIA4Tdmz8Y=; b=VXeBcoesjgZaO6kzF5s+8hj3T9WiIzrE5V+D7APDXqfY9hZAowistcdk4JW09jRUJBGRbZbKo6x8mIXNBOiRUGwn1TyVWnBbR1AA0wXEpHasnLTLkKj9pE1K7C3mpcFbyds2VGKm6RdWTdk7I/03s6BGIiwnOwwxOt36DJd0S6dC/s9YvjdQcdtr06WJGWppCUCjxAQiAwcORAF3AccTbwifBPLMFelfTIiFzi5ML58yrrkrEB2e7NA1UHAv+A58xSAgfVRxMJcqu1wEEyFMewZ7Gtml4fjNb8VErvPSI6rXJpj+3Lb6Dhvpoae2JX5H1SlOavTTs75MH16M3FDGvw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=XFl6/30YgIXi0TTl9/SvwhBqAHuGQubcfGIA4Tdmz8Y=; b=O3VhR+pQFum8pIwh91wQb0d/T8L7bp0Ed3chjN9BY0FRD12yxR3afDuPw2teddPJ1RbR/EAuKf6/sRyzmHXTS+mpFxLqwDcYAxukiKeF8+Z/XqPevK4HLD/8KuEtZq2+ron+F+L5/mrpwBalCIqywbarxNVHjR8Dgb+w23F5/As= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by CH2PR10MB4263.namprd10.prod.outlook.com (2603:10b6:610:a6::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.382.10; Mon, 31 Aug 2026 20:22:56 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574%6]) with mapi id 15.21.0382.007; Mon, 31 Aug 2026 20:22:55 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pm@vger.kernel.org, bpf@vger.kernel.org Cc: arnd@arndb.de, catalin.marinas@arm.com, will@kernel.org, peterz@infradead.org, akpm@linux-foundation.org, mark.rutland@arm.com, harisokn@amazon.com, cl@gentwo.org, ast@kernel.org, rafael@kernel.org, daniel.lezcano@linaro.org, memxor@gmail.com, zhenglifeng1@huawei.com, xueshuai@linux.alibaba.com, rdunlap@infradead.org, david.laight.linux@gmail.com, broonie@kernel.org, joao.m.martins@oracle.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ashok.bhat@arm.com, Ankur Arora Subject: [PATCH v15 02/16] arm64: barrier: Support smp_cond_load_relaxed_timeout() Date: Mon, 31 Aug 2026 13:22:37 -0700 Message-Id: <20260831202251.305046-3-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20260831202251.305046-1-ankur.a.arora@oracle.com> References: <20260831202251.305046-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4PR03CA0117.namprd03.prod.outlook.com (2603:10b6:303:b7::32) To CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO6PR10MB5409:EE_|CH2PR10MB4263:EE_ X-MS-Office365-Filtering-Correlation-Id: 8c666648-0998-412f-6a7d-08df079da427 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|23010399003|366016|6133799003|10067099003|56012099006|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: 24VP12Mr2oQD78g7ae3dGP2TtNWI/w/2Ap7zr7IbY6xRHOYZlZaFifiORY/FAfnVcDpFeWkcCQdXdIJt+LsUT+/AaYEqY70jewJtqKSiWGJtn72dI+pLTH7C3DI1Wz5Vi+QsDadv355t+tid/KR+0kn3etOsM1QTaLv9mJZrwOk2+528HunU76CpeYrNC0SVTOnnExSuHH46+qJZB6SytyVhJeQSSRs3zChOqAOCxNhJIMqsB3O4SxhiFyMBT33K5ox2kccBSnEABYn7hqMrIhiMjOhsyQfoJzygTmmVk2zUMeLVUB7HceEZ+D34pkWv8MQI0UAW86eEdYZKZP/o2qTkmH5kaTGLo61Fn43oiu1dNst2zEpj0nvpxH9p5a9XUbGRE5sNeJX8tSLh8Np7ParUmG/tzcfxIgUnStAewkz43WJFQ0lmknZjuZhich9EXAha8D9t7dE50VrUhDLMySz9Sg/0iaNZWfAkrozkKFe4Sgw5TlcSQ9ERGw+J70JowI58xlod2SRiv6m0k57PoAscjSsmH9C6DGdoFRjYkuC5uaybfaK9rAV7fwbPaIU5ol3woefEv1hQn17AHJpIlQpCYyz27Tm3AY9wiPcPuAZXwxGJjhNwX1c2oMOwdiJrsvwvgG4/l/JYGqci/SkyWUXOtX8ak6iQZ0jHF3o5ySs= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO6PR10MB5409.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(23010399003)(366016)(6133799003)(10067099003)(56012099006)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?QISoNlkd42xjRoOUyLwuI5qWaGH6/3ZoHgSKcgIbLMluulPRwueQ7HEvPWEx?= =?us-ascii?Q?ZjZn2rIs4FOPOFoUNsSI/j7l0dTh2eZcswefSeEfFVewiar2KUUJdUyMpz+0?= =?us-ascii?Q?wiRMC/ZVvJEA5qyAQSZkN6ur7faq8QSui8mzOvUBqgadf15xk4PEPziCPUTh?= =?us-ascii?Q?tStmAVMGzNKTNoBS4gBubIbve1su8bmvzhsv00zVtrTUW8wB6kAOhYmy+MbL?= =?us-ascii?Q?utD6XjMe7zxx6W7LnPxug0MMTzHdX/DBke5M0W/wq4ZKN5+LaR66z2zUWGLg?= =?us-ascii?Q?AnxV5yuBRqcVQxTj26Vv2BvMDMmUMZoWWQkdK+ncSh4h1PJcyPUwpd30o0y8?= =?us-ascii?Q?i6QVa3w+rnY7ZCdbrhKfVteEZ9iKgURUdWFhUpwROuEb96K7XiNUj10Irg+0?= =?us-ascii?Q?elYW32xNqilcTkkn/wtnBoVUNELw158d1MprwdjyErrev44kr0vSvU3XelgT?= =?us-ascii?Q?HEl/AYcmuGprIhecBI8PFl2v33fx3Uwx+ZK8kbTM1u0cfm6McDfn6GgqTLeO?= =?us-ascii?Q?5gBtBBS3bFlV0m3+Xyr38rBCMCAtrQOdyifg7rUrzV+Tf34NOrNuU167CctI?= =?us-ascii?Q?8R/+bKq8yN5Wwo5HqhOrcpeS9zVbgKWCcEB3sE3TCUYfkMPkXuMAO05VMUG4?= =?us-ascii?Q?ZnPOnEVVxsYAlPbkYpDLUgIx/2UGURpQVtqOJPqPfhatI/NOABAQqnBeQY7q?= =?us-ascii?Q?rhOFlXBqmXpjP2T366ADDjt7cH0u+7qIe6zKHJpJdL2RaHLK9sgotCf9Up3h?= =?us-ascii?Q?jsq78RNg06w2UeEDe/GPJFRE1YHYqY4Wn7gN2dqzmxc51aAZ+cVe1usP0p8K?= =?us-ascii?Q?ois6orYsMVX925Zw9SGrVsADQ7z48JB39sKSiZYEMnLRrcy36/ALAxTqDOn2?= =?us-ascii?Q?TR4DtcQRwVEF6acqXioOwXE1qA1dexD9rsQplcQE3jvh6znq30B2NVTpNk21?= =?us-ascii?Q?f+5ONjSahtVNSG2kc96CgAGQAXboxnMzphqcKRn9E/0mr3dAwtK4W1mniPjk?= =?us-ascii?Q?dATqw2U4h2W0qc51ODqzSngSaQOWR1nPglzQBdB0sSe7FbFux2V+mT2g6c9+?= =?us-ascii?Q?mEeGrQq2OPnjRI94nF+4s4Cle7BfoOHLo+ikstS1ZaPD+cNMuf0KsJcfROEd?= =?us-ascii?Q?W9tslI5KYW1gKCteu76PJi65bSSu0/x1ykdmwCysE76PDOMCfpk6rrmaO4pV?= =?us-ascii?Q?jx2dQ0sSBNhk13iJFw9RcyU1TT1vVP0idPhCgsrtfdLMLAKh3UFVTfgV0MIb?= =?us-ascii?Q?6jm81kLtn/17BIl07VWwqc4oY3dLBJQGPwQKL8CRJWZ1frbmCxJov32gWkPk?= =?us-ascii?Q?r+BWrnYtkVitaMeUoFvDTFwCOJxl5Y18APgYtGMJQI+DatvDnil2ffvecjeB?= =?us-ascii?Q?hjuGxVshBhacoM677ThgmeWXvw2HLb4SFJnK8DdlmDpMEF19XKOSX1lzUSj5?= =?us-ascii?Q?+WGV9xXraEYzkOgaRw0Sylv+Cbz76CET6Alk8wQBNSswn/vHj5xJlICY9K0l?= =?us-ascii?Q?xzd5QtuYptao5jcGUFD6Zy5SiAA2H1cAyXxJHwQMVH2FzSl8e+jb2ZdQZoLz?= =?us-ascii?Q?wrMo1ukmE6KS52r8Utihwrag8rqxaMrgIFlBia35aL4QErWOL69idEnnBAYi?= =?us-ascii?Q?2/rd9+2XjYrkFjqV776wS7ea8Jl7aEwWjQfT/btplUs2dYGByWjDonfvFUtG?= =?us-ascii?Q?f7hHPbw9BPYlk2y8e1CJhELeLjAdGYUG9Mh5htGu5xQCfkY/wps+68pKcloB?= =?us-ascii?Q?fKgffRClMQ5cFIC/6ZZMwO87dvPchjg=3D?= X-Exchange-RoutingPolicyChecked: OYgl/xukUGJ0qBPNxwiru+8Gi9Xt5NHOz0iHxVhEp3IbLnXWFXK+Z2106hEICpuj9jYQHGmcPxT7OCy3q2Pj4ums6q+s0GxkzVk5dfWdD9aeK4+85NjrzOIKDHurDEFFapKkkQsR3X8T0l8eAeHS+8gDLNwUVypHFuEW5trvYMpuKrmnDX2jLmyNwgryr/Zw2K7IXEtCEoeuQgZJ9UkfygvhhUio4sRkPp80Zjknbs9uW9mfgI4rRB34h7UwwcC1T/PhpuRvnSTB+jjPS6mD868Oq3ACXhdEmjtXNSAgW34TIE4kbS7i7HLhA6GaT+vOMPTqjUE7Lx+IxyivcpqY7w== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: RAnjyZcvB0kGUn8nIN3TKfltuSbmodpsBktOlXrjKPL4c5urBj+JTvYUz+tbS2MsCY7nw8QdbIjjuh6r/2ujaviT9swaiQdQKJKs2tV3xCi6qbcO8KgEbgWYQEHcL2H8BqG4oQWdNmWVd5/+ZB/Nqf+ziMPycP3VrRqy52r8VifkDOLtZCl/Apl1ME6CsLyt5swYC3htm+cjqxTJY9I1R8HMnb2WXIpmZP+7NbMVuy1bc5t3ufFLAZ+1l9A7F/sRRohkKOr/01/sJLUelScrTAJNSeojVpTGvAT7IiKW6rV9z2GlrHf76VxtpCItxdHUA3qnK8ytR3fGb5vWP1UV9kl2T6OZNOc2fw4AdDyQYizuVAESojQpWeMtPvbsglmrWhc7NvUwYOfyiuGD9vfJksHSbCUcHwVhI1NOHV341LR2iz0Ho/BttWtJOkRHMCgHwF4BbCoBKXO49jDpbljUohsUeXWhPoeXio5r5LadLo5CVnmREAr/dwRWo3yAV0bQaHDHB4NBh0o4Fp9gYZzXtnyHX2kaKkBhm9T+NibDiSghDKwcfv0XT36DeCML6RfC9sVnn3jStzSpGYA0Li42CouO94quvdYXDUwOzAqH0GM= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8c666648-0998-412f-6a7d-08df079da427 X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Aug 2026 20:22:55.7700 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: fzbTcMnDATYt0b0Lkv9K5JpIHGN3KYERagzB4x6L77leaX4RWtNLBNWitNJNLEK7lmvXPXhw6mEL9XBRwgZ9GVAP2jEUf6wudC32ALvr3/A= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR10MB4263 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-31_06,2026-08-31_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=965 mlxscore=0 lowpriorityscore=0 suspectscore=0 adultscore=0 bulkscore=0 malwarescore=0 spamscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2606160000 definitions=main-2608310176 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODMxMDE3NiBTYWx0ZWRfX+3rw6/Nll5Rb dTJ5IYWdWCj7a2+avUdlIeRNwe0ZDqZ3tu+4oGzL3dpHUyNBY7T+O0LTeu0/aR8lcvhJVQyfOjv +oi6sT5rdck4aVN7X4IkXJbEd1MYcI+hg67v101oq8W3QtRKHO5vMWMZmx6lNdvfq3WQryIIVjU 7exJ6WpAU9M0bsGFEG/9hv4AaPrEPoieyyddtEMTY+tT0bzv5IdK39zjVZWX6IG60Ml0aewHjTP zSKyZBanxoOMJ74Q7mPiya0u4imjyIF0AtNWrNh8Tpkn2mI/lNcl9S2wcRr+ltQK9OgkkK0JnK+ QJ8FQDypK3ITg6vIXa2moZN4OVRsOIQZk3CFMLj4B88hB5vZIKVFBZS9YfwUR9epK3qdELX3nZ4 SNy7oColX9txeXimamzFZszWfuDE1D82PbHNE3OJm1eHyDvCLnRv9K+/99WpNf3OfkMjn8ZU7vt 349CiDG4zF/T9LqdYIw== X-Proofpoint-ORIG-GUID: ojr6x5LJMpXND03UBgrSBcWn_scvVhJy X-Authority-Analysis: v=2.4 cv=fbCdDUQF c=1 sm=1 tr=0 ts=6a95e2a7 cx=c_pps a=OOZaFjgC48PWsiFpTAqLcw==:117 a=OOZaFjgC48PWsiFpTAqLcw==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=Sv0fKeRqtYgA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=jiCTI4zE5U7BLdzWsZGv:22 a=7Gl3-_t3PgB9XO-mQDs3:22 a=VwQbUJbxAAAA:8 a=7CQSdrXTAAAA:8 a=JfrnYn6hAAAA:8 a=yPCof4ZbAAAA:8 a=hR4SQ0wyJhDrZCoruAAA:9 a=a-qgeE7W1pNrGK8U0ZQC:22 a=1CNFftbPRP8L7MoqJWF3:22 X-Proofpoint-GUID: ojr6x5LJMpXND03UBgrSBcWn_scvVhJy X-Proofpoint-Spam-Info: AW1haW4tMjYwODMxMDE3NiBTYWx0ZWRfXxawWxdbU+CVY pGDcQFumKXk132qO0noXn93H0eX9Fqvql8i6MUcBPKdf4DL2np7RI6hAtbABSckp8+3OybdvcAj 8GMqcG3X4K+Tl3O196ZvKO6EwL42Aohl0q5BxtfrdkUlUSTs10FI Content-Type: text/plain; charset="utf-8" Support waiting in smp_cond_load_relaxed_timeout() via __cmpwait_relaxed(). To ensure that we wake from waiting in WFE periodically and don't block forever if there are no stores to ptr, this path is only used when the event-stream is enabled. Note that when using __cmpwait_relaxed() we ignore the timeout value, allowing an overshoot by up to the event-stream period. And, in the unlikely event that the event-stream is unavailable, fallback to spin-waiting. Define CPU_POLL_RELAX_WAITS to state that we have a waiting implementation. (Non-production environments might not have arch_timer_evtstrm_available() but we don't care about that configuration.) Note that with this we have enough to define ARCH_HAS_CPU_RELAX to indicate that we support an optimized implementation of cpu_poll_relax(). However, defer defining ARCH_HAS_CPU_RELAX as that enables polling based C-state handling, which really needs TIF_POLLING_NRFLAG. Cc: Arnd Bergmann Cc: Will Deacon Cc: Catalin Marinas Cc: linux-arm-kernel@lists.infradead.org Suggested-by: Will Deacon Acked-by: Will Deacon Reviewed-by: Catalin Marinas Signed-off-by: Ankur Arora --- Notes: - instead of defining SMP_TIMEOUT_POLL_COUNT to 1, just state that we have a waiting implementation by defining CPU_POLL_RELAX_WAITS. - update comment to that effect. arch/arm64/include/asm/barrier.h | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/arch/arm64/include/asm/barrier.h b/arch/arm64/include/asm/barr= ier.h index 9495c4441a46..d186a4558776 100644 --- a/arch/arm64/include/asm/barrier.h +++ b/arch/arm64/include/asm/barrier.h @@ -12,6 +12,7 @@ #include =20 #include +#include =20 #define __nops(n) ".rept " #n "\nnop\n.endr\n" #define nops(n) asm volatile(__nops(n)) @@ -219,6 +220,25 @@ do { \ (typeof(*ptr))VAL; \ }) =20 +/* Re-declared here to avoid include dependency. */ +extern bool arch_timer_evtstrm_available(void); + +/* + * In the common case, cpu_poll_relax() sits waiting in __cmpwait_relaxed() + * for @ptr value to change. + * + * State this by defining CPU_POLL_RELAX_WAITS which enables a time-check + * optimization in smp_cond_load_{relaxed,acquire}_timeout(). + */ +#define CPU_POLL_RELAX_WAITS + +#define cpu_poll_relax(ptr, val, timeout_ns) do { \ + if (arch_timer_evtstrm_available()) \ + __cmpwait_relaxed(ptr, val); \ + else \ + cpu_relax(); \ +} while (0) + #include =20 #endif /* __ASSEMBLER__ */ --=20 2.43.7 From nobody Sat Sep 26 13:47:35 2026 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (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 9D4E839A04C; Mon, 31 Aug 2026 20:23:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788207831; cv=fail; b=H2ozdR3QeJwlgcYD95twzwW6rI73316V0+aV8NFcll4cl3FndlY24v7tiM81kGRrAvHcKC8uIooM5F/l7HhBpezolDooXpY1j4CrlSg6jtY7Is34maJlEvFM9cr8M3hnFCzEVQlEAbNzr97jm0m9iai293mXyFmb2SyfiSP2oKA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788207831; c=relaxed/simple; bh=t6qu3CxR+KN0oHvwJiHGvyVbaiWepGHlL/MAvUQqbLg=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=IaTbiT65rmSTkemiWhAEh16m+9k2rLYwUuJI6O3+k3sTmcVMfy5DprqDtRixyoPuOY/hsH1k0MGxeiCpOnlYTB7rXz1bDRfwH5HfqdTzwWNh/xumjK94frUo0+ET+IsdRDOZkOI9JsrY7f/yVIiltIyItkUUt6vVpjad53ey6QU= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=Gx6sanAf; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=cnivkOR5; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="Gx6sanAf"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="cnivkOR5" Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67VGBxSr2332972; Mon, 31 Aug 2026 20:23:06 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=R8xc40dipoB7isXedtATIEEmRxv/SMWdlqGpWg1xw8o=; b= Gx6sanAfhtT4f/LFYzbrtdbg9g4idr2ORliBa8nY08hbK9iUmiyzBfLaSSKZLka4 8pXjORJioppHMplzepXPtYxSUwGQK3a7JUEiK6GGGwP/j52xI29TcpkAHdqYYRF7 sbWPO48sG3R6tBse4vSHE3A2NVDYSgNEQUnoEhpkmPorVdyk1/f+DEZ+Sr7RtkoX /PDsesUHrPgR6/JZTQ891Cc+ZxQN/hCYFYz7TomQDrenzcx3IPKhWrSPyujZZaqV pCsrl6xyPmr2ZjJ9UGlseHmxxUrFq9Xa+gZYE/rvudDUT4vzQW75fn5gFoIh/eyZ Iqa5QLYIlA4jhdCOFWDsaA== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4gbpbaudxy-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 31 Aug 2026 20:23:06 +0000 (GMT) Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.7/8.18.1.7) with ESMTP id 67VKFXd4003016; Mon, 31 Aug 2026 20:23:05 GMT Received: from ph0pr06cu001.outbound.protection.outlook.com (mail-westus3azon11011044.outbound.protection.outlook.com [40.107.208.44]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4gbnvpkd8j-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Mon, 31 Aug 2026 20:23:05 +0000 (GMT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=EiF14WMDQXRyEv61dq+8mNzhSiuEz/kltEMjAG9WvWH8woCltWbxXYPQMWo1qhDlFwCu2ZXw/c0Lxr3yVDcbw3KQltWbmc8GL0T/Mb5zF3ABHLqq8Z3QORM/I02gIFQxzCSphchqhC9LCh7pdalhpoL1FtfclGsHFOyoGpXUSYL/jstKu0g053X08QkHSPTyvh8nUyeaPB6c2sjNt1NBEWE8ue3UcAicIWuFPP1M+yDvA0Wagna/5nO2UxycNmPeBtonVQQrLcPaa/uPAcC+4sfmzxhTB26iBsCaahjyhNH80a9l9WKXokgsjnlqj6IQgmg1i6qRug+Dyh7P3Ddqsw== 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=R8xc40dipoB7isXedtATIEEmRxv/SMWdlqGpWg1xw8o=; b=TlMWwAMZquzO8FJ+NI4mVX2lq9nHQvvrZMxxioDcnu615wsmYtzakp4uTBOWQ7tByPY99d9rS20xN5P/bVNcwQpCM+RPV/BF3uuNjzMEARtQ0Wt4IoGmcjgoprnmwiT+huZNxUjuozyyYV5+pjsIegoUlgT8MiDI/nq5axdByTgPRuc9822/DqBR0s8YM/fwfODFKMebSbE42O4htjn+GiAEV0YKpGfNwfXaTmRvPgHBGuvxUUAQX06Li2LRF9kY6LYr2UBq+QQQQpPW9GAnKWb4xooenLI27xAzIIZ9NjYkeJyi66ooVtbkAZJRXDLHES0zW85zk+fsdJaz4+/IvQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=R8xc40dipoB7isXedtATIEEmRxv/SMWdlqGpWg1xw8o=; b=cnivkOR5fZ0KYFZrUl1ehgUdfFTR7t6beLAC8EzFHqKMyY4f3Kw2Cz8Jn2dpqSqiuitXBCFfaMOzZAdpEzCoMre5p7527gvbI5Mcc6Tx47lt5Y4DRib20m5sv4iLP7vw0P0PbOuGV1gxBjzqpgVnwiBRpHjgDOyjv6M5plFj2LM= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by PH7PR10MB6179.namprd10.prod.outlook.com (2603:10b6:510:1f1::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.382.10; Mon, 31 Aug 2026 20:23:00 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574%6]) with mapi id 15.21.0382.007; Mon, 31 Aug 2026 20:23:00 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pm@vger.kernel.org, bpf@vger.kernel.org Cc: arnd@arndb.de, catalin.marinas@arm.com, will@kernel.org, peterz@infradead.org, akpm@linux-foundation.org, mark.rutland@arm.com, harisokn@amazon.com, cl@gentwo.org, ast@kernel.org, rafael@kernel.org, daniel.lezcano@linaro.org, memxor@gmail.com, zhenglifeng1@huawei.com, xueshuai@linux.alibaba.com, rdunlap@infradead.org, david.laight.linux@gmail.com, broonie@kernel.org, joao.m.martins@oracle.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ashok.bhat@arm.com, Ankur Arora , Bjorn Andersson , Konrad Dybcio , Christoph Lameter Subject: [PATCH v15 03/16] arm64/delay: move, fixup usecs_to_cycles() Date: Mon, 31 Aug 2026 13:22:38 -0700 Message-Id: <20260831202251.305046-4-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20260831202251.305046-1-ankur.a.arora@oracle.com> References: <20260831202251.305046-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4PR04CA0151.namprd04.prod.outlook.com (2603:10b6:303:85::6) To CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO6PR10MB5409:EE_|PH7PR10MB6179:EE_ X-MS-Office365-Filtering-Correlation-Id: bbbe94df-1512-46c4-3a06-08df079da6e6 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|366016|7416014|376014|1800799024|6133799003|56012099006|10067099003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: oCdF+hO1G4M4vYvTwx5gw9ryS+IuMLwAKpp6ssn7Iob7+zjMRPH5MFi5YwRy2/uVi3CVyaon+aD9u4oJ1FXPM3dKspK7hvShB0Z8qV6NX7CBZHR4ktXvdxwW3BKTPajRO1k62UzJL5ZLPVXQOMlMZ9gQSwbZJCJh3WLV6wUrGW3WUHO+aVPO+GZflsxnI8JHLFzVC7fnA+N3muceQ0LikYwuhc+jtDmHNntWr03IiH5Nqm/ojnGZ2RhLxR5VqBHyk/aIjHK8eNJ4Muo4d7b5Qvlhdw1yge2GnB963AECDt6auBQFUW/tqFEWvsbO4NeMu1lFoHKcD1ZumsLlyBzdwIX0HmyaZdYQfxx6Z4vRDuaHLlpSXyK/KCdRA6UkXnOfrUK+2bmQUSSdHBDE0oUJI8Hf3CZ4aIsn0fmT+mOJgSoONqv1M0HCzYWzkPGgmNROpis04gMgSUjWekNmxsfaTB0WyHc8bxuLCszr32gmpCIIX34j6MgaYCrkJkY0LSekfokJ3Z/bHbLIbkOIk84wdd7O3mrESwImSTmADZ1TIjD7q/zEkw9SJxOD9G7WN4pSn6vbiRSBDymL32pAxSyAD5WoqzSb+IsDpwYoLxs68+32oFJHKGfzB5iKUFDYutgrud9LBbDkVPNxzgFhaGx03BQ/w3oLBvOb8+9Su1TYtQo= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO6PR10MB5409.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(366016)(7416014)(376014)(1800799024)(6133799003)(56012099006)(10067099003)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?ayjRkVADSMztPSyYD7gZ2OxpbNgE6OoSkjte6pgIJM50D9euzRpag3VTS2Nw?= =?us-ascii?Q?T/FdVhvo258zVXgbpdynAjD56bncYHn4DPwRGEjsZH7hTD9MXYOdKNafDPiy?= =?us-ascii?Q?8v4DS2LQGPiQVbOkiaN2xOXZEKN4k5a1tcd3RK8VfDHpIFXWhD74JN5B5rrH?= =?us-ascii?Q?zdNFdbHDL3tVFaeTUW+WGenJOHAw6CiQcyuYppak0QKiShIXQeTILXa+rElD?= =?us-ascii?Q?9hqlc24xJ52Yj8MjrK2Q7xinSIF9mohLrX519V/WNPWqvOuLJ4KNa2xuHVKi?= =?us-ascii?Q?6UmWefZgwK3YpI/xfKC2zGUnH6wSAfpoEasK1rF8W9omeo3KDPXiZnuWlax2?= =?us-ascii?Q?OFCJZn0+jkd6ildG8LALX/HEOtZxqEtyNIEksrnnbquS25NaspjAvowEPsts?= =?us-ascii?Q?fpn1bGPo/NaKdoyJPfW1+74bTHEJO5y2/c0SM2xm6J2V1mPDs0aZEaJHkJZy?= =?us-ascii?Q?1QI9oDKpM6+HCuEXE9T3jUPPCnktiOPp/2f2nlgFEtxx6cqJPHnTkMRXr8Q4?= =?us-ascii?Q?NYXoJAaJq1kDeDtBm5u1rba+HX5MstSPA3fjUX+nPgLx1QYtqtKG8QAllxm8?= =?us-ascii?Q?4Z7W/PPdLb8Nvdx5XToPsNCZOaqUrQH6A2Js86Mmt/cr79h+0Zcut31eFMyA?= =?us-ascii?Q?ns4+tuC5peDTJG6mW3KZXvl72Q5KrPQWovJCktkGKc5qBt4s//m/akUWAYiq?= =?us-ascii?Q?PSKfSiOuo9U3YzK9cE9CI8hf6h6FpaExGL1DfO9VtLS1z6lGpJNuX7dHdaeh?= =?us-ascii?Q?Kj+g8TLNV5jDd3v7CHHudGkqjIVsDNqjnpxwqPnpXfaF9lpWsdgn3haxHK2T?= =?us-ascii?Q?cWxzb14YPvomzuAAiVoOcoTx/UU7YiUnJdp+6UFPQZCpV0niwCWES3LVJVl2?= =?us-ascii?Q?Za7h4OZTffheDI9lJZpzg6oua5yVWUHEVjtigcQJbBU+UeiioikYG5nnehVK?= =?us-ascii?Q?dbmPBNKu7mwSkZuUyMC+eduYrrQjax9HvfF+RG4vTSDI5LbBrc00LQpLzLiu?= =?us-ascii?Q?ysHY/xpHME7Lio6WwS7s9ai2rHAi6FyVYbnCyuXQXxvIkIKidC7Yi6khf1bo?= =?us-ascii?Q?gJbzmtwkW8RHcZSNa1BornV/osaVScjCGts+S8mGNYg7ckA20ek99qUwqpwR?= =?us-ascii?Q?P0LgcmNjn8m1CJvJ1KrRzsYD5BcA0oBylRbG4JVSjVBNuc3D64qPmMOnY3kY?= =?us-ascii?Q?YkxRRG0lzBLJG7ml6bcPVq7O4zOGp/kgSOqxurKL9ULH7jeoZM7i2ocdcDr/?= =?us-ascii?Q?ns9pP8efMI21ggcbJBn4hoGC+J6+2zQmmyYYtHJ+VkIhEG1x8QRiLGh/kur2?= =?us-ascii?Q?xR8BG9OPUxATOGA8sAWAtu73Q83XnLGM7ScGAKvocYO47ysFa1dSq5q+Vpg7?= =?us-ascii?Q?QAs9jU4V+gFnGbb6wP3QpsNxFB6+HUN8AWecqfgBQ5Jnzg5HEM+QW7iD8BGk?= =?us-ascii?Q?Ida/BigVZBam0aEiT+qQJKP78qJGrC3zQpNZ5Hw05gE6NHe/+c9psHO7228W?= =?us-ascii?Q?3OrC8uepATQID1WVkAMrjOXlN1cLd8nMT4fBhoigBrCCKLwrEkG7KGB8l9+G?= =?us-ascii?Q?nGKyXkT4wua2MhzQBtFR7E6eSJ7MMhIb5vRIQ97HFXvKCYRS7LmG1S/EXJ82?= =?us-ascii?Q?gYZZwoq4o8yvsi25yyw+i77BZVQdcW9eTpFGoEj/lmtatUdZZoIsO9Vmt8FX?= =?us-ascii?Q?rIvms0B3JYZ0cRPd+fRJ5Uvzt4GdupxdxMPEtFM5FD8iT9RYhEXboYz36E3Y?= =?us-ascii?Q?OJHVd5U0+YHUw/IBW/m+qpFElwI2HcM=3D?= X-Exchange-RoutingPolicyChecked: T1UnVOzrHrJ7eS6vGNSihssRHftNSPmnLWyLhocT/6OJ6Hx0nPFKZTo1SynYmvTncN/ziz6eVUZyP6K6IWuu5GsZWjige37uIeE1Y7W9dWBxmBDk7JUwHj9fzZbq96JJMcMHl4P5bT3HLXuhl0uEcVAh+SMauu/jGVJyl44ov7tHt9QymwiZq6XA8/+0lg9iBrEZyimeiyYSZVJzQYZeZ+zNhz6IuLtvN0S+ilo59T3pg21H9tW9FLexhrR20GutmfOADBJODfyCLPQ47Z0MQdla0kGL2+DwUvvHqpQVcuaVajDwMk5niJdAl6Fx9hB+56XQHuO3Kd418gjDviot+Q== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: V1Boez3qUdDLZJkfqXzCviCQFpVaMM8j3fCsa6tGEKovdA2MP8G7taNRDUaszcBLLJWa3CJMcaph5YV8FV7wnRbHT/DFalRC6oQsx/gXvvhurQnCq2Jy7yFk8R4YPmtAhGnwJPEDC2dkgE8uSjtL5Cp6ojJTyqeCu6s+aTHjckIMenxEow3IKvldGRCl+KjOmLqY+JVAKd5lNlqqQpJIyTh7A1EC05N/sCGQUtopBrXYsIh1QdgnuBLnAJC2Tlw90/EWT5viB4gqdapFG9iFMwRVEQ/BWsti+b7RfotggNNS3oi/NU1eS5fp6Nf1aU5NUJPPdy58cFa7jy7a5q4+W35Kbx3GBNVl/FtJMdJCZTqQiwttL1Sz1sBF1g+KpJYuiI+l5n9BWq+nLFKpPVJvrbqA10xcm0Hf0l/ZcHP3ZBOcdtFXQUxwkI08QxK9NXJMEsxs8zp9efhgrDKo9scE0YAL8Ru7JpgazgAWyM+AHwaZBO6xOuhaCWqk/COpYN6NTGNAgyjMvCEXLLG0avA4cgolPCMUYf1BfUpRDL5Tt+5/AaH9rmS1/gePX+NzZnifQp5UYzhNa7tE6jopW+EYXj1xhBzMOcv0ApVL9kcOsyw= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: bbbe94df-1512-46c4-3a06-08df079da6e6 X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Aug 2026 20:23:00.3513 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 6AN6KU7eYp6n16iIumW+7lBgPVlFHG7HDclqrg4g+AjOetYT/vyUWpqaNf3+W93otjbv4LxV/88hSJzh1C8GdY+0SuMsOKvQezC6OkhjUqs= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR10MB6179 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-31_06,2026-08-31_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 malwarescore=0 mlxlogscore=999 mlxscore=0 spamscore=0 adultscore=0 lowpriorityscore=0 phishscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2606160000 definitions=main-2608310175 X-Proofpoint-Spam-Info: AW1haW4tMjYwODMxMDE3NiBTYWx0ZWRfX8lTjyE/H9EBL k69LTDCf+2c9evJmi18epWpLmSWAhR8QBYXdErL3H1YUalvVqaP/Eg6Fd4mNtYGnK74R3Ob0tw1 oBrCOHfDFPK2xIkwqsIPmakJ3lhU3/2CCPH1c14XGhG1S+fDvmmB X-Proofpoint-ORIG-GUID: XyzpgfVVE7HWJay1AvobwcANPBv6W8Eb X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODMxMDE3NiBTYWx0ZWRfXw3pma7Mer8hl Md2c4B4U0TFedLoCAU+tQQPlvOHxfXaSXWc9jvRN216nKDXJ1DBSnPugLCw0LVgjH5H/fD+br0p 8k5qdASSY8btGOoXKr200hmDkdy68xX1Eha0KhAd1gPf27TKtmoMFMF6oEtTK+FyWZV4HgEsqnF 5eVOlivYQCUGV8lOaNhJYh0V79SPeYr5IsHLStueUO/ivceaYt1CY+o8islBJdPiz8AE9R63Del lAmfhA9AjmE6N3mt5O7Et49ay4Twt95Bm14uw/fyFtzNYlE6e+WBH0f0rriFr+Jdn300PulF1qU 5l1yDjfQvr2zSnmHuFRDWZG+7EqEdF8rsj7VMGjyf/VCmjA9PD/4PWv2zCPHruXICqCFTab0Y0y ctAHKD7P2GEuE6rffE2NMqvONBmJLj6WgesbY5b2OuuABdX+5R//90UDqFZYl7XivZTHa9TBWel c2Q9BjdPfF5a6eqmYx6oyskuC+lkE8gXuUz37h6U= X-Authority-Analysis: v=2.4 cv=DMi/JSNb c=1 sm=1 tr=0 ts=6a95e2aa b=1 cx=c_pps a=qoll8+KPOyaMroiJ2sR5sw==:117 a=qoll8+KPOyaMroiJ2sR5sw==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=Sv0fKeRqtYgA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=jiCTI4zE5U7BLdzWsZGv:22 a=x0eKOSpe3m1H3M0S9YoZ:22 a=7CQSdrXTAAAA:8 a=VwQbUJbxAAAA:8 a=JfrnYn6hAAAA:8 a=NufY4J3AAAAA:8 a=yPCof4ZbAAAA:8 a=70AoctknFhLFtkeFxDcA:9 a=a-qgeE7W1pNrGK8U0ZQC:22 a=1CNFftbPRP8L7MoqJWF3:22 a=TPcZfFuj8SYsoCJAFAiX:22 a=5yU3S35YU4bGjq-dph-N:22 a=Bho9c0fBagfJEIQBS7DQ:22 cc=ntf awl=host:12102 X-Proofpoint-GUID: XyzpgfVVE7HWJay1AvobwcANPBv6W8Eb Content-Type: text/plain; charset="utf-8" Update xloops_to_cycles() to use mul_u64_u64_shr() instead of 32-bit fixed point arithmetic to avoid truncation for delay values larger than ~10s. This adds an extra mul operation but since xloops_to_cycles() is only used from delay loops so shouldn't matter too much. Also move some related constants and functions related to the cycles computation out to a new header (converting some from macros to static inlines). And finally make __delay_cycles() available outside of arch/arm64/lib/delay.c. Rename some macros in qcom/rpmh-rsc.c which were occupying the same namespace. Cc: Catalin Marinas Cc: Will Deacon Cc: Bjorn Andersson Cc: Konrad Dybcio Cc: linux-arm-kernel@lists.infradead.org Reviewed-by: Christoph Lameter Acked-by: Catalin Marinas Signed-off-by: Ankur Arora --- Notes: - convert the multiply, shift operation to use mul_u64_u64_shr() to avoid truncating large delay values. - makes usecs_to_cycles(), nsecs_to_cycles() static inlines. arch/arm64/include/asm/delay-const.h | 35 ++++++++++++++++++++++++++++ arch/arm64/lib/delay.c | 17 ++++---------- drivers/soc/qcom/rpmh-rsc.c | 8 +++---- 3 files changed, 44 insertions(+), 16 deletions(-) create mode 100644 arch/arm64/include/asm/delay-const.h diff --git a/arch/arm64/include/asm/delay-const.h b/arch/arm64/include/asm/= delay-const.h new file mode 100644 index 000000000000..6ccdfe0a4130 --- /dev/null +++ b/arch/arm64/include/asm/delay-const.h @@ -0,0 +1,35 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +#ifndef _ASM_DELAY_CONST_H +#define _ASM_DELAY_CONST_H + +#include +#include +#include /* For HZ */ + +/* 2**32 / 1000000 (rounded up) */ +#define __usecs_to_xloops_mult 0x10C7UL + +/* 2**32 / 1000000000 (rounded up) */ +#define __nsecs_to_xloops_mult 0x5UL + +extern unsigned long loops_per_jiffy; +static inline u64 xloops_to_cycles(u64 xloops) +{ + u64 loops_per_sec =3D (u64)loops_per_jiffy * HZ; + + return mul_u64_u64_shr(xloops, loops_per_sec, 32); +} + +static inline u64 usecs_to_cycles(u64 time_usecs) +{ + return xloops_to_cycles(time_usecs * __usecs_to_xloops_mult); +} + +static inline u64 nsecs_to_cycles(u64 time_nsecs) +{ + return xloops_to_cycles((time_nsecs) * __nsecs_to_xloops_mult); +} + +u64 notrace __delay_cycles(void); + +#endif /* _ASM_DELAY_CONST_H */ diff --git a/arch/arm64/lib/delay.c b/arch/arm64/lib/delay.c index e278e060e78a..f08eacef2f0a 100644 --- a/arch/arm64/lib/delay.c +++ b/arch/arm64/lib/delay.c @@ -12,17 +12,10 @@ #include #include #include +#include =20 #include =20 -#define USECS_TO_CYCLES(time_usecs) \ - xloops_to_cycles((time_usecs) * 0x10C7UL) - -static inline unsigned long xloops_to_cycles(unsigned long xloops) -{ - return (xloops * loops_per_jiffy * HZ) >> 32; -} - /* * Force the use of CNTVCT_EL0 in order to have the same base as WFxT. * This avoids some annoying issues when CNTVOFF_EL2 is not reset 0 on a @@ -32,7 +25,7 @@ static inline unsigned long xloops_to_cycles(unsigned lon= g xloops) * Note that userspace cannot change the offset behind our back either, * as the vcpu mutex is held as long as KVM_RUN is in progress. */ -static cycles_t notrace __delay_cycles(void) +u64 notrace __delay_cycles(void) { guard(preempt_notrace)(); return __arch_counter_get_cntvct_stable(); @@ -54,7 +47,7 @@ void __delay(unsigned long cycles) wfet(end); } else if (arch_timer_evtstrm_available()) { const cycles_t timer_evt_period =3D - USECS_TO_CYCLES(ARCH_TIMER_EVT_STREAM_PERIOD_US); + usecs_to_cycles(ARCH_TIMER_EVT_STREAM_PERIOD_US); =20 while ((__delay_cycles() - start + timer_evt_period) < cycles) wfe(); @@ -73,12 +66,12 @@ EXPORT_SYMBOL(__const_udelay); =20 void __udelay(unsigned long usecs) { - __const_udelay(usecs * 0x10C7UL); /* 2**32 / 1000000 (rounded up) */ + __const_udelay(usecs * __usecs_to_xloops_mult); } EXPORT_SYMBOL(__udelay); =20 void __ndelay(unsigned long nsecs) { - __const_udelay(nsecs * 0x5UL); /* 2**32 / 1000000000 (rounded up) */ + __const_udelay(nsecs * __nsecs_to_xloops_mult); } EXPORT_SYMBOL(__ndelay); diff --git a/drivers/soc/qcom/rpmh-rsc.c b/drivers/soc/qcom/rpmh-rsc.c index f881af35ecfc..c9a814d9e06f 100644 --- a/drivers/soc/qcom/rpmh-rsc.c +++ b/drivers/soc/qcom/rpmh-rsc.c @@ -146,10 +146,10 @@ enum { * +---------------------------------------------------+ */ =20 -#define USECS_TO_CYCLES(time_usecs) \ - xloops_to_cycles((time_usecs) * 0x10C7UL) +#define RPMH_USECS_TO_CYCLES(time_usecs) \ + rpmh_xloops_to_cycles((time_usecs) * 0x10C7UL) =20 -static inline unsigned long xloops_to_cycles(u64 xloops) +static inline unsigned long rpmh_xloops_to_cycles(u64 xloops) { return (xloops * loops_per_jiffy * HZ) >> 32; } @@ -828,7 +828,7 @@ void rpmh_rsc_write_next_wakeup(struct rsc_drv *drv) wakeup_us =3D ktime_to_us(wakeup); =20 /* Convert the wakeup to arch timer scale */ - wakeup_cycles =3D USECS_TO_CYCLES(wakeup_us); + wakeup_cycles =3D RPMH_USECS_TO_CYCLES(wakeup_us); wakeup_cycles +=3D arch_timer_read_counter(); =20 exit: --=20 2.43.7 From nobody Sat Sep 26 13:47:35 2026 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (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 27A40394792; Mon, 31 Aug 2026 20:23:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788207823; cv=fail; b=ZWpuY1T43PiUJKu8c0b/02+wff/0lxsoNmJiXFsbTxhuo9vGVxy79vjWn45RxQEjfEmha/FRtGe0BfENrVsOWmi2IQqAyoiMx+S6e5ya6KxexBcoS0qdo/RA7HQWa3hreJdSVzCn7MWvggtx1/nxM3DLhoSHIqTJeNS2SkkqgpA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788207823; c=relaxed/simple; bh=9uytM4lvs+GPVwY/ioej18Ma3K8UPZyxLlMhYwvuDLU=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=OCqEOvRmo/zfo4kI6V66M9i06pLWDfS29M7QJVBUSkA/9AAuxQrgDOn0SIJwl7vXILPjF2nwV+D4ijYoeAiSjHs111+WvQ96ACOc3cYKaF2Bfzuf3NgW4gcAV8kvYGbJO9DXwJHjhqj1AR+dI6dpi0keC61Go3a0AK/j+7VFY7Q= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=dtwEIX7z; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=E9nIZfbg; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="dtwEIX7z"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="E9nIZfbg" Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67VGCIIA2333545; Mon, 31 Aug 2026 20:23:07 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=0lUX+sGvlpo8kl/Ks3tfNpwTCxvrr85sv/38wHY9cf8=; b= dtwEIX7zhWcT40YJWdd1U4mtku4zwvVUbkisW6rylHisOO/6gRhY5AbqK++lguOf YCLIuzGqHJt2t+a3PkTC7IE4b9eNcwXiWgt6ngDLq2oENtlrfp82Kxi6UyaOIHeM PBOmfr1QKA/y+FrmXDskRMKAwK2KqBVX7iWzdppf1YnqqKKsmmtQpMuMB8X8obrt dsIOlLw3MUfHHOVYmjd2iXY/+OWQu1LH5aTJBru5ZSKvMTG0o10jJbxImRuYNaue o9lCCqIfKMy7pLXwbh5RPPEkcKmBve4prZTRMTYJHcoY9WjOhHglKNzOoR2fTyS3 orEJh+RUC8M2R2VMKQMlvg== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4gbpbaudy0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 31 Aug 2026 20:23:07 +0000 (GMT) Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.7/8.18.1.7) with ESMTP id 67VKFXd6003016; Mon, 31 Aug 2026 20:23:06 GMT Received: from ph0pr06cu001.outbound.protection.outlook.com (mail-westus3azon11011044.outbound.protection.outlook.com [40.107.208.44]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4gbnvpkd8j-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Mon, 31 Aug 2026 20:23:05 +0000 (GMT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=EW97XK+J4BLZIkdxLHGp39kK7XOcCj+4rYxUUIc+t6dTFBIO0USiqgYKChIN+/W8pDQjt1hc4dM+5PLumBv4edgv9Qkd+H6FjQyVbS4E3RQeZcJ7glE+uL7qXHs736X0mMdlYtGtsaVPGUBUhcR1myc8X4WOuf8LewC5Tldwtvn5zBZdixkfbdIWhC8WhNh1ALIZlqwQfwOkO+fMukjOIWN+il0414CeMeZPrqGrhV/yIGuhwACaU2SoFhQVHzmgPmbym2Gw0Zk6kqL8A4LllxEsFpIfSaIDVjmeRWwXlXDaF91FLrMIeGOmOqV/EsAm1tI/XbFW0BBvnlRABLmVxw== 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=0lUX+sGvlpo8kl/Ks3tfNpwTCxvrr85sv/38wHY9cf8=; b=BQzjzQJ6W/JD1ylODK6Umd/+HoguIuxP0Ftdmv1bE9IIB/cBvZLofPoy3pGONdlQ9o1ACKYuiIFfIaHXOdSwwqWpleuSQjuXxXNBBLadqIhF9oCYQ8rOgvacJ8A9zTxZgvcWejBoe5zafG5Db+oThB0BJe6A+cAjucMQCNMWyE+TI4JSrVsGFY9m/WfBvYpD8UlkM+Pjce3ZOctsOi0Ym78mrA1aFA8XbWbekpfivQ0MjTB2jLKeq+LwLCv3jrdWvvpejAth69X++iKHQB5MF0wlU/X/F1nFtAYFoLJ3aEk7JOyNIWbdw1jbzS9IneWGRPLcqrTBWVS2NG32KfQLfw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=0lUX+sGvlpo8kl/Ks3tfNpwTCxvrr85sv/38wHY9cf8=; b=E9nIZfbg4Ex1cFgkc1zlnbGw3mI1Jbynzmzeweb0PiHLg7j7Y3ovFeIfLIXjJ4T/2h3fQhyPU3TfbB9qDr9XCSAEea0XAeUHA07odvZNg7wycB5QaWT/Nkvzm+fNJWu9yWecdbzVa8l0voyA/E0l86I6Vx4JRWZEbECUzArzW0o= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by PH7PR10MB6179.namprd10.prod.outlook.com (2603:10b6:510:1f1::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.382.10; Mon, 31 Aug 2026 20:23:01 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574%6]) with mapi id 15.21.0382.007; Mon, 31 Aug 2026 20:23:01 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pm@vger.kernel.org, bpf@vger.kernel.org Cc: arnd@arndb.de, catalin.marinas@arm.com, will@kernel.org, peterz@infradead.org, akpm@linux-foundation.org, mark.rutland@arm.com, harisokn@amazon.com, cl@gentwo.org, ast@kernel.org, rafael@kernel.org, daniel.lezcano@linaro.org, memxor@gmail.com, zhenglifeng1@huawei.com, xueshuai@linux.alibaba.com, rdunlap@infradead.org, david.laight.linux@gmail.com, broonie@kernel.org, joao.m.martins@oracle.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ashok.bhat@arm.com, Ankur Arora Subject: [PATCH v15 04/16] arm64: support WFET in smp_cond_load_relaxed_timeout() Date: Mon, 31 Aug 2026 13:22:39 -0700 Message-Id: <20260831202251.305046-5-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20260831202251.305046-1-ankur.a.arora@oracle.com> References: <20260831202251.305046-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4PR03CA0216.namprd03.prod.outlook.com (2603:10b6:303:b9::11) To CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO6PR10MB5409:EE_|PH7PR10MB6179:EE_ X-MS-Office365-Filtering-Correlation-Id: 4243d131-7962-4648-ec4b-08df079da7c0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|366016|7416014|376014|1800799024|6133799003|56012099006|10067099003|3023799007|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: ChuYnYWcKSD55gYkcoANavTCztkRvNAb52UUwS+cgwJjQjWA6I2GWftPaQS6nodPTsecL7NCEJj4WrctnvvEVrh/q7NCt8aQsFKKFuBOXBoqnP8N3U8ie7OIMQa6+XBZLywsfVd5cp/SXkpPkwaXpHE90RRviquhlA65mmpGJDwwWNtvYdY/K7e4VQBdmMzlLA4bIGr1UkMkyt8sukNCupctqsH6616RZFE3Xm43idJrSo4B5OqjbNVoeSr2N+EPETp5M/c3H9XpSY8xWpFdAJL/Ffl5OO9qG/heQ8xs1HiNkoiv6zEXdc41ASoqkITOg4MKH1c/3hyuqSKwA8OKB4spFI672mpZ5D0T4VeuGY/KYUeRrm0fVpIZAhKqsFUY4740Mc0HuPz8IiTc9HN2p+qktIC9O7JxsMGEiKmE1D4NfEV+gJfyT0UY0LACRumVSMHHtnXZImuVYB3M2YvItpPq5TiNRcym2rV/MR6Brx4E5/d+peBpQvoiQfO2bLsfkrCfoxp1+B6Z0sE4T4vCfR9Ap3lavHqwB3KAZJgPBaRkQowjGaH2ElQVpR7c++vF/fAhHkxrU4vpBZ7u2ujclimL5bCF9pxyjHyHABcQ7ec55MIcA9tV9Dx/dlHqTivGR6+lGU4LdTKBD7b2n/L1NTeO+48rqiJ27TwJ2XLai0E= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO6PR10MB5409.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(366016)(7416014)(376014)(1800799024)(6133799003)(56012099006)(10067099003)(3023799007)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?tR0d6JeRLa6MgfbIp04ctoBmrDFUnYGLcy9UakTK2fkAHWHAkaO+RhRhqWD5?= =?us-ascii?Q?dbGm3BoJi7JOVLaDR8cyuPlHsYGdX/K1Wix5oS0Gc0ZumbXIi0em01571G0O?= =?us-ascii?Q?wN6Ul9RQXwQMaGuF6Tje8ahi/yiksqRkvzWqVPR2/2Pl6iNLlv3WLWSzmPnE?= =?us-ascii?Q?LvOa3i45AXyVSEhAiZ0Arw1zUL0F8+g9+OGdytev6daQrfrP5W2AuEQd4UUm?= =?us-ascii?Q?qkwhU6GyXxzKwploUARsZ+9jAbbYA3NU42g4mhMsnUer1fI/JLYz654jrHY5?= =?us-ascii?Q?3ufTguV9YlRqLc16exHcRRNRqVMPWRvZjpgBzZG3e8ERhZV7nOsS8f/bTvaV?= =?us-ascii?Q?bf2WpLXTsR5CTfC+ii/deC1tbCLM4tY2OaRrTyJmj2YYeF0Zwxt6uqzqLU9N?= =?us-ascii?Q?9Jnl8ET70WcSa7Ww/PdGAlct3hvEnlDgKErfDYiUBCGKoUYV46XmyquQ/qCu?= =?us-ascii?Q?F9qKXy58f6Ys+1UJuGLvJYGroMj/fyHFONQdDO4C4qQv3zxUQdNklKe1Kgxj?= =?us-ascii?Q?4q+zp7+Y99zm4sXrLXkusgy3FZJA9gW1yCUIXp6HWnZgEOlXlfHYATwHlvUZ?= =?us-ascii?Q?qagJWpM+lHkpAdp5W5mXCndyIqlvs7H9bi0sTgSOHP+67Gw0CEtz6O2NOoCx?= =?us-ascii?Q?6BD8oQeCUKRbO+UYRqVI8qlX14JA3qn3aIkn7YxZXKIGztdgeLGPQ+FbaKhw?= =?us-ascii?Q?VOyLi4EyMXMsCgTqnaZJ0rnG4V0ei23+HHlorqr0vu+wM2YMTrvc30s1jKtk?= =?us-ascii?Q?Wk9nlk9kRXdZc68hocw1YwLBXzeEpJwc6sT7TNxh4uAod3Kou9uFV7YbUvq4?= =?us-ascii?Q?6y6Xk/j0AC40IM0VXJ0WHe/+hwZ9KlyQKXwjkfYjWmD1OJCqK1FfNMKq2DqG?= =?us-ascii?Q?KteOhDk6VQUMQ8hwVHNDZd8wt786+1MnWWzC7IuCsNmxYvOF6982HdDYZH4U?= =?us-ascii?Q?a4dQRAEIXatrxquHlMvfNCKgCgW75+u0ayxtg4QUfBhLFFXJ6yWNp5nL2gF0?= =?us-ascii?Q?dEauSKrgwlA+/Kmwb7LIqF0nivUYYWcaHDHrtiIfCASESn3StrTHi5dSHskh?= =?us-ascii?Q?cC04YeLQJ9mT73q1eCzCUrHxWk1vt2RG3PTpqARY0qNFLLeqQKJdTwqjo40p?= =?us-ascii?Q?mZVrFngXBmRA8FsjlPCEqyxv8imxikbQF0Uz0Tq2TpJFFzR+oz+1ySToD3f0?= =?us-ascii?Q?wfTcPVKs4e6VG5SfTMh2lYuf+Wv70DJ3USAImEMC8USBuKEcs44VEOqOQlFj?= =?us-ascii?Q?Tbp2cfevLd8LzGs8syX3+H/vpSEt7aS1IZkcniop4LH3WIClGNXcZuxzUvXj?= =?us-ascii?Q?4+tYOcQBlvO3dFAWuIEww3e9dICYybMQVUts/qJYPw1RneavhgOtJOAdyvVM?= =?us-ascii?Q?+FLYbflAasAL4ipXN5CRdtWoJjjFfW6Lw+36cC7b1kGdIhQ9Q2VZ7GH6bdaK?= =?us-ascii?Q?2NPtt7A3e7BKIZt9+iH0FnO+o9XFX15ml+eytk4ifWwHECct2l/XO5A3yZ2U?= =?us-ascii?Q?hqimikbu+xRE8uvpP/tFLGQkjn0AtDbNBwx75HyMe+Ko7ugOujZsNcWByBHB?= =?us-ascii?Q?DmHE54zE1JeQY2zZX6ctpl7VKOh7p1uaIu1J4NWyphIRsGAAWnV4FDuEBUAR?= =?us-ascii?Q?j4J1oFN+z5/KtXUULQSvwm+IKRPwJ9SBrYT4ZI14oriXYvDKyjgfPx+KILWf?= =?us-ascii?Q?ilbNu8j6XDS2XeJ+QB2c/cJDwQPNIubW/gWHrBQE/FBhjqoXc6xD7LRX6xex?= =?us-ascii?Q?7M7KQLZ5Z9iCVBgekK2HN3/tWHNjkaU=3D?= X-Exchange-RoutingPolicyChecked: Qd+Nyiw/YDz7b8tYFoepZrh0cfCW0HolJcR+hz3WnmDS3sV30DQj/D83MRCEkqK7juQB9fe9Kr2SO6ANMSl4LZeMP5z3hNHc6QFxaVlNfqQCze9ytNwza3X8yIFtD49JHl67ZaQc75MQOkJ4ZQchBGhqrHwM6HhbdRPKq+6xoBfkpZipNVpPHI4acvnXw3waPAW8um7kZY723HQCi6lJjXl2qCtyUPOpvV2st5iaa6jcAW9wZwD3ZzcVeji1JVPr5ExYE/3GHEmGRJYzX9nfUGAVP48KvTBOFQJ6THNGj8Vk6yBYh5d7Hpq+EnfH2BLvaXI9BEn4HlBqula7s69/bg== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: JZFgFf+9gDixOaLIzYFcrmpzfSKkoPGwj7OMJNL3Gv0QVQWGYDR5PgVmAvX71ShpZiQjbqd2LbgOSgkX8va0BP4rUrxHx6JfdkaQEKBjMDKn0GW+8HKAnqdIybgzoL4y7GUSq/KkEvpYKa0IFntt42xv6dN2nIj/rLeLvEpkhbjog4nTlaTjsLYmrfZ69LAvuo6/btGCAitl35e9Z3OHvuOXiHbptd/KDwOujrgsDbrFs5T9UPJacs8d5FA1iKzy9XfpfODhdYwAqg3eyU/ZaiJIRPDqJ/csKRWQrBU4HUuhqDwyuPLxnqPYBDOHciZWonsgu0pqx78kaLPDx25jYsQcjRkj8kM041TGro1bnob59UJZcPw9byfs7LliI0TkFqdL80rkUx/QElHZDXKnKpgc7h0OtdcJJ/GxPDf84KYz4H/RXyptJTHGywtA2mv9Zn+wz20HNiycK2b0Y30TIfc0GS23eflHcVRDNbqwc7AEtmoj0o19GRYIKwEKwQJ094shQFGCW4Q0VYWuOXVsBxRSiN+N1JDwcPKGvzEtKiwOa5fDf8R/wjm1ReHi4bFcmEbmTIDw5nqOINEB3qSILan41DoiStj7AqhdGcUcu+A= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4243d131-7962-4648-ec4b-08df079da7c0 X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Aug 2026 20:23:01.6886 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: sysgFVdnJarSac8Nkn8vnoDTtriVYwPGtXifMDfwt3spXBIhUv/0VuHk1jY3WaWyIVzcNbR+N2RmN34soCUb9TefRZVSkmvjLujEm6QtYi0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR10MB6179 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-31_06,2026-08-31_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 malwarescore=0 mlxlogscore=999 mlxscore=0 spamscore=0 adultscore=0 lowpriorityscore=0 phishscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2606160000 definitions=main-2608310175 X-Proofpoint-Spam-Info: AW1haW4tMjYwODMxMDE3NiBTYWx0ZWRfX7ssxtJCAh55x 0648pDVLucmP3XRMZtm5AujkxdWpXaWhSbMIfUwJ+OA1tEs39frPKqm6+oUnotKqePFGXdupLPP j2naumUSwEF6jw/xHSxNirx8hq9zttYgUWRthwnNovG5a7y3qHA8 X-Proofpoint-ORIG-GUID: C8tWb10wWkqkCp90MmK8VjMOBhdgvV8K X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODMxMDE3NiBTYWx0ZWRfX/fjG+u2Z4g+A uKHII6gf5LdYj/0WWxJhAvwrj/7TV+6erlHvMdUHgd7VJZGaO4VYQTynDqH28olPWnw/M4XoNzX JtfY1mnwle0rs0ztvgPv+Qf8V0687R1TFI5Q6OLCdlzQDrJ8lIbKZjjlcMRPqkhZ2wmQ0ZyRaNd h6vtw1LqFroXyMXevpn0mbaOGiCYjTqizcBYViiqcWvQahfURTpbXMnMugMzT0y9dMvGjHAPGTr uYNKpRzs4ISMazm7A2lJSBRvnBD+9n41QNh4N1InOgMhavCUPlxBW3Cd3PygnNQzddkJ0Wg6Y9+ 7Ffd80B/0n7W+iBAkDHwmtilpxiVfdu8ZY8gMgZ7RvqDJwTk6ECsHNXvTafNoS+whDgheNGNBXD TFqO9lNIZo6I4ySJMRlZV64ZVwtmwsO4d1zoRaIcEuGXtpG/7kAXWGpbWf3WsyuwlUXlmmyFZHP tRHYztiE/V/zDEX5POl8j96ts4v97WLESm3lpdLA= X-Authority-Analysis: v=2.4 cv=DMi/JSNb c=1 sm=1 tr=0 ts=6a95e2ab b=1 cx=c_pps a=qoll8+KPOyaMroiJ2sR5sw==:117 a=qoll8+KPOyaMroiJ2sR5sw==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=Sv0fKeRqtYgA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=jiCTI4zE5U7BLdzWsZGv:22 a=x0eKOSpe3m1H3M0S9YoZ:22 a=7CQSdrXTAAAA:8 a=VwQbUJbxAAAA:8 a=JfrnYn6hAAAA:8 a=yPCof4ZbAAAA:8 a=Or_-VBqfnECsjC7ky4sA:9 a=a-qgeE7W1pNrGK8U0ZQC:22 a=1CNFftbPRP8L7MoqJWF3:22 a=5yU3S35YU4bGjq-dph-N:22 a=Bho9c0fBagfJEIQBS7DQ:22 cc=ntf awl=host:12102 X-Proofpoint-GUID: C8tWb10wWkqkCp90MmK8VjMOBhdgvV8K Content-Type: text/plain; charset="utf-8" To handle WFET use __cmpwait_timeout() similarly to __cmpwait(). These call out to the respective __cmpwait_case_timeout_##sz(), __cmpwait_case_##sz() functions. Cc: Arnd Bergmann Cc: Catalin Marinas Cc: Will Deacon Cc: linux-arm-kernel@lists.infradead.org Reviewed-by: Catalin Marinas Signed-off-by: Ankur Arora --- arch/arm64/include/asm/barrier.h | 8 +++-- arch/arm64/include/asm/cmpxchg.h | 62 +++++++++++++++++++++++++------- 2 files changed, 55 insertions(+), 15 deletions(-) diff --git a/arch/arm64/include/asm/barrier.h b/arch/arm64/include/asm/barr= ier.h index d186a4558776..d1f4f571adaa 100644 --- a/arch/arm64/include/asm/barrier.h +++ b/arch/arm64/include/asm/barrier.h @@ -224,8 +224,8 @@ do { \ extern bool arch_timer_evtstrm_available(void); =20 /* - * In the common case, cpu_poll_relax() sits waiting in __cmpwait_relaxed() - * for @ptr value to change. + * In the common case, cpu_poll_relax() sits waiting in __cmpwait_relaxed(= )/ + * __cmpwait_relaxed_timeout() for the ptr value to change. * * State this by defining CPU_POLL_RELAX_WAITS which enables a time-check * optimization in smp_cond_load_{relaxed,acquire}_timeout(). @@ -233,7 +233,9 @@ extern bool arch_timer_evtstrm_available(void); #define CPU_POLL_RELAX_WAITS =20 #define cpu_poll_relax(ptr, val, timeout_ns) do { \ - if (arch_timer_evtstrm_available()) \ + if (alternative_has_cap_unlikely(ARM64_HAS_WFXT)) \ + __cmpwait_relaxed_timeout(ptr, val, timeout_ns); \ + else if (arch_timer_evtstrm_available()) \ __cmpwait_relaxed(ptr, val); \ else \ cpu_relax(); \ diff --git a/arch/arm64/include/asm/cmpxchg.h b/arch/arm64/include/asm/cmpx= chg.h index 6cf3cd6873f5..7985ae5ceb0f 100644 --- a/arch/arm64/include/asm/cmpxchg.h +++ b/arch/arm64/include/asm/cmpxchg.h @@ -12,6 +12,7 @@ =20 #include #include +#include =20 /* * We need separate acquire parameters for ll/sc and lse, since the full @@ -212,7 +213,8 @@ __CMPXCHG_GEN(_mb) =20 #define __CMPWAIT_CASE(w, sfx, sz) \ static inline void __cmpwait_case_##sz(volatile void *ptr, \ - unsigned long val) \ + unsigned long val, \ + u64 __maybe_unused timeout_ns) \ { \ unsigned long tmp; \ \ @@ -235,20 +237,52 @@ __CMPWAIT_CASE( , , 64); =20 #undef __CMPWAIT_CASE =20 -#define __CMPWAIT_GEN(sfx) \ -static __always_inline void __cmpwait##sfx(volatile void *ptr, \ - unsigned long val, \ - int size) \ +#define __CMPWAIT_TIMEOUT_CASE(w, sfx, sz) \ +static inline void __cmpwait_case_timeout_##sz(volatile void *ptr, \ + unsigned long val, \ + u64 timeout_ns) \ +{ \ + unsigned long tmp; \ + u64 ecycles =3D __delay_cycles() + \ + nsecs_to_cycles(timeout_ns); \ + asm volatile( \ + " sevl\n" \ + " wfe\n" \ + " ldxr" #sfx "\t%" #w "[tmp], %[v]\n" \ + " eor %" #w "[tmp], %" #w "[tmp], %" #w "[val]\n" \ + " cbnz %" #w "[tmp], 2f\n" \ + " msr s0_3_c1_c0_0, %[ecycles]\n" \ + "2:" \ + : [tmp] "=3D&r" (tmp), [v] "+Q" (*(u##sz *)ptr) \ + : [val] "r" (val), [ecycles] "r" (ecycles)); \ +} + +__CMPWAIT_TIMEOUT_CASE(w, b, 8); +__CMPWAIT_TIMEOUT_CASE(w, h, 16); +__CMPWAIT_TIMEOUT_CASE(w, , 32); +__CMPWAIT_TIMEOUT_CASE( , , 64); + +#undef __CMPWAIT_TIMEOUT_CASE + +#define __CMPWAIT_GEN(timeout, sfx) \ +static __always_inline void __cmpwait##timeout##sfx(volatile void *ptr, \ + unsigned long val, \ + u64 timeout_ns, \ + int size) \ { \ switch (size) { \ case 1: \ - return __cmpwait_case##sfx##_8(ptr, (u8)val); \ + return __cmpwait_case##timeout##sfx##_8(ptr, (u8)val, \ + timeout_ns); \ case 2: \ - return __cmpwait_case##sfx##_16(ptr, (u16)val); \ + return __cmpwait_case##timeout##sfx##_16(ptr, (u16)val, \ + timeout_ns); \ case 4: \ - return __cmpwait_case##sfx##_32(ptr, val); \ + return __cmpwait_case##timeout##sfx##_32(ptr, val, \ + timeout_ns); \ case 8: \ - return __cmpwait_case##sfx##_64(ptr, val); \ + return __cmpwait_case##timeout##sfx##_64(ptr, val, \ + timeout_ns); \ default: \ BUILD_BUG(); \ } \ @@ -256,11 +290,15 @@ static __always_inline void __cmpwait##sfx(volatile v= oid *ptr, \ unreachable(); \ } =20 -__CMPWAIT_GEN() +__CMPWAIT_GEN( , ) +__CMPWAIT_GEN(_timeout, ) =20 #undef __CMPWAIT_GEN =20 -#define __cmpwait_relaxed(ptr, val) \ - __cmpwait((ptr), (unsigned long)(val), sizeof(*(ptr))) +#define __cmpwait_relaxed_timeout(ptr, val, timeout_ns) \ + __cmpwait_timeout((ptr), (unsigned long)(val), timeout_ns, sizeof(*(ptr))) + +#define __cmpwait_relaxed(ptr, val) \ + __cmpwait((ptr), (unsigned long)(val), 0, sizeof(*(ptr))) =20 #endif /* __ASM_CMPXCHG_H */ --=20 2.43.7 From nobody Sat Sep 26 13:47:35 2026 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (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 798EA394EBA; Mon, 31 Aug 2026 20:23:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788207828; cv=fail; b=bxrz732GXK4rAxSTZ9CwtA7RPp6z9pcJNpJSzdDrYv1LQRPivStutxehHS9mXHc/K53ryCS9URiMhCXHUG//Eg+tSoHxc5VN2f4FFnpVieGO7mWtokrl1/H6hPDKgRo1akZjwar0/68cGmda2dz/vl+QQBK1MIL07cwN/BQ9kXM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788207828; c=relaxed/simple; bh=yw6zIiZnrZULSOqxioCTns/sFf/1ZCpWDOh9BSaA/CI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=cAuyPf49mV0zPK3LtfLXRfEMO37Y/127J4/XLCObwsmyHqwzERl/bEpbHI1niSoYsT2rntQIrCDBEp7pPUwdXyVOKV5UkuZ2L1fuKn7nRFXehRb3HCSjWswaG2kS19VkwygbL95Q+I2r73P4MtKVZhtN/edjswBAg3GSFJfiQTQ= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=FRn0XvRw; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=NtnSuIFJ; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="FRn0XvRw"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="NtnSuIFJ" Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67VGBnHA2332825; Mon, 31 Aug 2026 20:23:08 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=6+mT8x38yrV66x073641HB2W6EifwrcZYnsp3oa/7t8=; b= FRn0XvRwTdjspstsd6RYiDwMNfmUNUJnpMHK7dUfaQ8UAUsyJFJAtOsbdkXio3rb BOZ//R1gng6CFRwP42oVQciQxJP0ZOK7oz0JfT5/ojvM+lOod7paaO6OgnNG5YBM dzfjJAWSTJ7shMqtHYRTN8X4cuKIKZdkUn+d4J0HaCeSfjho6b3uMUKs+WrxdtQp nk8JLr0WZyFQg/vXvWLsHuZu6tX9Z7VtBsOH6c0LmdgGG+pZsuwyrYwnzf1i0YRv T6wwLQQPAZnXTf+7+mUKlp883dOk36Lqkf5k17CS2P+5muPep/mxb06MDbV0Jedj pmZbtpusdQ496czx6ZHHkg== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4gbpbaudy1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 31 Aug 2026 20:23:07 +0000 (GMT) Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.7/8.18.1.7) with ESMTP id 67VKFXd7003016; Mon, 31 Aug 2026 20:23:06 GMT Received: from ph0pr06cu001.outbound.protection.outlook.com (mail-westus3azon11011044.outbound.protection.outlook.com [40.107.208.44]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4gbnvpkd8j-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Mon, 31 Aug 2026 20:23:06 +0000 (GMT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=StNXpTuk/Dc70frZL6KA9vleXw/42brcKrydgTWAOKQUD+apR3brjMuzt5V41To0zhPxPXC6HtuZjnsTZce4efLgh3wXwL3NpSqMvKWToUSUOVd+u77hCyZlrboDwMdWtjKT9OmQSqwbOVIxsS0L73lQbg1geudWZSGjHjdX2PjnmMrAWkijilR35Ql4F+5x74eR0NtnyqMzEzpthZLKGf9oiLB8cHzBVZEV6d/7/8z7qThMBLp+WDkKsoRrvMX6gf3dckwEvY3gUZOYYgpmVMC5/B/T8QWh995wcUDZbn3757juX8saNtB3M6Ydr1mxH3IN180LfqtFdwZIo0TBpg== 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=6+mT8x38yrV66x073641HB2W6EifwrcZYnsp3oa/7t8=; b=lJKtuyWcqsjX59stQZ8GLA1hAfQQsb8ibkV7kyPrI76t+JX8Ye/fSK20ZWT5qOgRAsOT2Bwa3NOxWTtRZBWzT81wR+6d9PgMYCEGf+JzZwrW7ZCWmCjmQozedDLXjy8q7dqfKLhEEfgEjmSorR/iFtaJJ+O0JDzu9v2hdw+yH8tdsWLiPrZgbg5U2aMF/4o+QD8fpA1lqhc95qlK1bC/e0DG0E537rH85M2DKyNJXGebwO9dq2nu/xQDMao8lK5MYxuIObBHInJJKcXqJFif4Drsz2ysyzlyXNVfQA8Kk532eLgqtMEvPS/hV2tW+ZkDztlqThxqYf8i1oxgejz44w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=6+mT8x38yrV66x073641HB2W6EifwrcZYnsp3oa/7t8=; b=NtnSuIFJng1mfv0TUjAh3t/juYBS+6b/knwmzgTiX8UPNj67ySaYye+hUvh2zqU+VpnQ5pxYB6luSJ4fImk5FvzEavZSIDjpHsWQKwKMOeQzI9XyHm8rbd/eIvvDP15/RSNaOSd1U/93+97aDWWaV48osiDiR+pZv+DKjTPxcgo= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by PH7PR10MB6179.namprd10.prod.outlook.com (2603:10b6:510:1f1::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.382.10; Mon, 31 Aug 2026 20:23:02 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574%6]) with mapi id 15.21.0382.007; Mon, 31 Aug 2026 20:23:02 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pm@vger.kernel.org, bpf@vger.kernel.org Cc: arnd@arndb.de, catalin.marinas@arm.com, will@kernel.org, peterz@infradead.org, akpm@linux-foundation.org, mark.rutland@arm.com, harisokn@amazon.com, cl@gentwo.org, ast@kernel.org, rafael@kernel.org, daniel.lezcano@linaro.org, memxor@gmail.com, zhenglifeng1@huawei.com, xueshuai@linux.alibaba.com, rdunlap@infradead.org, david.laight.linux@gmail.com, broonie@kernel.org, joao.m.martins@oracle.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ashok.bhat@arm.com, Ankur Arora Subject: [PATCH v15 05/16] arm64: rqspinlock: Remove private copy of smp_cond_load_acquire_timewait() Date: Mon, 31 Aug 2026 13:22:40 -0700 Message-Id: <20260831202251.305046-6-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20260831202251.305046-1-ankur.a.arora@oracle.com> References: <20260831202251.305046-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4PR03CA0236.namprd03.prod.outlook.com (2603:10b6:303:b9::31) To CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO6PR10MB5409:EE_|PH7PR10MB6179:EE_ X-MS-Office365-Filtering-Correlation-Id: ad22f88c-c04e-46f1-3f7c-08df079da870 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|366016|7416014|376014|1800799024|56012099006|10067099003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: qFG83riT2OiWT8+cjEhMP5C6tXj4vKiS7TYoI6lbjHDI98Jda1MCMO/qErILM55xFKl32gqGDJW5iw6aNxDar0dFijPmeCrRfA+CWZEOT0bnnk97SUUO5KA8PcV5P4MaWMAwa8TzSR3MtyEMEcM6METcubf8N7//CPi7bJRyKK0oG2HJ9tt1ADpMT0Of9dk4S2YS8yDyPqXA/jOM3+UCAymMnxglj+lox0L2n4ou70tJXAWGtz8+tVley/uCoyXXsdgFKjbbd2P9b4gbzVLaIiQ8KP9LAI2Oe1aDeWRGNVGojzaekbuwHdTkuvdARYcQW6EbZprc/TgntapwYl1IgLBL1ApLM1hWzWXggtUUf7JYXZuHI28wFDeLVv5cyItYfNSq/nAbxcBTUyt82Sy+XcIZBNz5V6vj3FtyI3C7mwklTdqHYFcZv2frh4VZepJZhpfZli25I5DJUQ/7etpqzZTJ1cP0nTznFyg9RtZM5Bp0w6T4GVrCRD6GeZVmsCXKiSssG7rdZUXPJPKVBTYzFYrVs4iQJiUICRPuVcuvhVqVZUE+W44MC8jvOkM2pjfNuoFFs+aw1KSSht9hzS3vLECQirvMk6rfh+0v0n8WcwqCBZjxX18bKBqNkueEH5GRuJraGAYjX89+wCzsl+qGMtK4xLJ//Lv1RZdFjnOvM/w= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO6PR10MB5409.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(366016)(7416014)(376014)(1800799024)(56012099006)(10067099003)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?KlC0yvrFpPvN8JfQPilUWa/lNtqM4JmNdcIRZd6B1KmdTTNEMxkO0mOsge/R?= =?us-ascii?Q?pFjXNeF5D4WEvs0NCd49TxuaDmDEJ1fJZ57VoMkPIDerz/MJBY9afvIEQjjz?= =?us-ascii?Q?L2f1ZnkEs8ho+qQI7b81yPbfVwztNWraNm7r9tjrLU9EhiXrQHumf2kaxGvM?= =?us-ascii?Q?pirJZe/GLLxr1j3KeU36OdJ3HniDjbpAMsfLFyA72xhaBxNoHnE3XU9MbzS/?= =?us-ascii?Q?947iZrE6sbgZnahch2T2Ua8X/P4ptZILNzY9kBRWm1M81qixGenvvBFzdBhQ?= =?us-ascii?Q?kgTXQKVUKNe+uYGNwQcM7kz4x0xCV/B82dGdtiJWz+3X2jlkd7AfSm8gywrY?= =?us-ascii?Q?89dPU4yGfFOln3wguX+zBkuUKJ5QB6v7g1440SIAULyWrMlCVrGE0/45YXiR?= =?us-ascii?Q?AvgBD972X9BFrwK4K5SH9npfk6wL0ja2hIkrdzBHPuYYC9pb1P/DTWORhlCW?= =?us-ascii?Q?DsfFCiolGtyRdQ1QP7LMpfxEtYu4ho8CDFgVAE4UfswucL0Urh/TWbZr6C/3?= =?us-ascii?Q?OLCzXs2E+36uNn08LSeSwYFXTOd+muJMiaA8xu+6R2ZNeXi7zraglOl6sesa?= =?us-ascii?Q?CPvU8ZZkDZYu0KCi1DaL91e5WWikLkrbAQsOQ/+JuYmtZwTPAgqjcsaD5Ofj?= =?us-ascii?Q?Xjz3HC2N2upkWRkH7NHy11/KhMhYgyTTk4pcgJorlexzvn7vTc0ss34p3Eoa?= =?us-ascii?Q?dAJQN7P0CFF3zR+WROBZC2Aj+nRKOyjSiG3raQn+871miQxeAe7sN83luRkQ?= =?us-ascii?Q?HRCgghBAiYQMWuxfcSDVLkOt5OJVwyH8G7iy6WIsnlhpfUDP3fXzO7FZf35R?= =?us-ascii?Q?yPFmHOCDehix5ddgUQsVtVY9DoTTPKNrZqSzE9mG+IrJaP7LNHGv3giEQepY?= =?us-ascii?Q?dRSnzlbCtX8WS7YU+WLOpr+YXMuBlp0ZgRc30HXQS4QNuU1pWZAcqZKmZfa7?= =?us-ascii?Q?LYW1IylkxWmtsTc9pRhRHGzj9eDwqkknLKrsV//X7mOSKzCEc+f8LxMshaTu?= =?us-ascii?Q?1XFjpfNZuRpPoGwf9KFC6Lq90UAOuvx/L7x+JGlqsbx7MCF2gAT0q/Vo8dRY?= =?us-ascii?Q?3qAtoKrYS1/sUKSs049ZXubLKEX6WfQf1fN+/LvZMQiRPIk4nbALNHubAIUY?= =?us-ascii?Q?CqPRZbBV6BjhoshGp+chsnEjkxy+dNHL3a2nErVh21pVoC6m95M0rRDhZD+/?= =?us-ascii?Q?uSIifmwvavSoa1kNC/i5R4Rwk4lTLSvWYJlDQhOkMLgDtBYizcBzPfGpJ5Cs?= =?us-ascii?Q?+K2NWTCGUw802SFWGs71K/nTjiojNRhlD1O0gesTo7r2G+cX7MAIRO4IUhoO?= =?us-ascii?Q?q7HYbGfDYxjrGtnPDJTOtldlqUuYAX5cYJlA2+M6stNTru9C2VB+CxUDzuhx?= =?us-ascii?Q?8sIg7zM5J8f2AQfrByw68ks35KDP0zxwzbQ2jtkM8vnlhxTUg8jNsvSEqhfe?= =?us-ascii?Q?g738vcWyF3e4uZrJ8M1MpmolVpM64scjb+3GsklKO38AYg5RfuTHduTpYVbI?= =?us-ascii?Q?6C3RTTf4aqAp0gRyM4V7zysgLO+tJ/iQoffAayhaF+oJQun7qi+6s1IAnfBF?= =?us-ascii?Q?9uzFPPJ9DTlh20EeCfPKkyPxxJfNVdDnIQA71e5UgG1n3qcunLV4miCUzwdL?= =?us-ascii?Q?EJ72LN8ArUhDMYxnJ1fvTzDSyeDZ04BIOmw4OS4a18KSKl2tDOWJQHPe+Y+u?= =?us-ascii?Q?x3MbuqSEaspL2iAhJWz7ER6vyCE0grcdwbLYN6/9zU0US6GLX13257VB1n/f?= =?us-ascii?Q?xaXbU1tcDpLc2vFfSymkS+t1wdH4m6U=3D?= X-Exchange-RoutingPolicyChecked: vP2yz3C1iWS6EA2vSGEP+J7r78/ASTV05kJn6UmMvN2x135e2uAj8+WQupZE7J31F7lOGD9Dpozmw7MfxtFERITV+Fx8gMX0OY4ylM9AxPlC6C4HCpPgbvlqdZTdN3Wu4fh5CT1+xN9wRmJuDYXrxJEOpEPtFHcUaF60U1ZgzjlrQl2WzvwF5cgWwD7+N2ul5iGpk4yYjcmACGM9K4sAXURUURH3sV33Q0FyxD/fj0hzw3Xj+XX/IjBtvospByqe/gm7YcvIdkNHqrBkbaggTFSDjEfsiajp/+MTNjzmT0OTnPU0i/avyrH/q+pGJ4D0DePG27vuozPZ+KAr21NfgQ== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: xghsxVfWIQFIVztRPm+th10IkoAu/Y4OFQOT/nj+Gei/IajrO0X4O+sq/yeLQB0Y1R2G+WXrNSZuMEL7fVeuK6R8PA9PQSIyJ22lGCIzZyY6DMy8Ow1eQ1N4AHb6+3Zj8qJjGqxd6H6iocPP1NEexg3BictuTLD/OO1TfHiPYEoC0jIGH49IgVZWWZjp1qLu6zSIi29WwpumUOLj+6aOGeUMIY3jO5ucEErn+usfm4xfGr4tjaBW8PN4OKgtXDIfQVlFjNw8bME6R/hzUjgOJlh2bNBDGsoR33y2xLEU4lTHMWz+VUHR+wQZDOvnb6+5MQKPyv7a3pYXEWvFtlr7kveoHjLJwjQvmB4TWErvfG79x086nRlfCLrnY8eDo24UzDQIpEyi1InwRG4vnqFeJBB6lWJJaWmcS5hGgVDH1TifQNbj1PkS4LuvNEoJjJLabwdqEccctWzYlYvht36bP2+89dROGX4vgPdcytqoKPaxXqDayG/lkSbaQRW1uf5tg+6Y2NJJ2SALXaxrRDxd7B0zy69U0KCvNzuuibiVz2pBEFlGFgm9JVnu2Vn1uu170ep3YTo4aZp6rKzIg5maAta1qeFD7UcCSBCxljXQGvI= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: ad22f88c-c04e-46f1-3f7c-08df079da870 X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Aug 2026 20:23:02.8013 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: VykbuUWUER7PWCsACi7Eny9zUS7L8vfpur2Ng/faa/7VcquhVc/vSZlPmaZoSo0mTOrOqJB+TvKKicF93yuglmuxji8ixMgfyI93bjCamhw= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR10MB6179 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-31_06,2026-08-31_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 malwarescore=0 mlxlogscore=999 mlxscore=0 spamscore=0 adultscore=0 lowpriorityscore=0 phishscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2606160000 definitions=main-2608310175 X-Proofpoint-Spam-Info: AW1haW4tMjYwODMxMDE3NiBTYWx0ZWRfX+vIajX0A+m5T tsWKlREIcqubesaXuFSI+YHToHskaHNqjEFXHJIuNEhDMuFpfqIqfw09boD4gavrY/MnRkMixYp Gt06JpGk2JFJpEsS8KOinVdipXCwETOS05zXAWPQdLa3+kIKDPGA X-Proofpoint-ORIG-GUID: wMscpygXWz6eHd3J5hubafG1UEMrz2F- X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODMxMDE3NiBTYWx0ZWRfXxsq6pONCZAcF Ut6VF58bloUdSWts4x7mynlOiGaIjos1epxXVXz2ZhSwyhXUUS9Zj7eQWM647OIFNOll399N7Yg Ha4Nuam0wfGbwJ4RycAYn7X/Dye+OU8d5ClUsLreooQtPb7sb5ElP7IKHGAmAKcoBnDtw/8maa4 8/9/qg+uUtiX4SiQhvF3clhzpnolojiRL4hHn9HXPeQa2zi82W6+KZn5SFq5y5wl42udhq0s6my zSeSHLNmd0Kk9qSxZacsQNawsV4MyFOwkCq+oxlY1mKXe++Jbgpkdmk4A97NZrsduhRFqGpkF4W 64cv1LPhiByY6adSM6PHYQ9CcdyRuXCHiWw8zUm4InFzuSLzYblDEJxTdeq36ECwSJs6ZtU7s0G iFOfgJOIMBb4kEHvbj9BStTJpayGn+nPb4bx3N0cgl/Ij2C71w9Fv//LwsghxPOMxHGBIzBks2X WqjsmQN64ZJGtuu3swkWJBHmUP/lZQzlmx1jap5A= X-Authority-Analysis: v=2.4 cv=DMi/JSNb c=1 sm=1 tr=0 ts=6a95e2ac b=1 cx=c_pps a=qoll8+KPOyaMroiJ2sR5sw==:117 a=qoll8+KPOyaMroiJ2sR5sw==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=Sv0fKeRqtYgA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=jiCTI4zE5U7BLdzWsZGv:22 a=x0eKOSpe3m1H3M0S9YoZ:22 a=VwQbUJbxAAAA:8 a=yPCof4ZbAAAA:8 a=pGLkceISAAAA:8 a=7CQSdrXTAAAA:8 a=vggBfdFIAAAA:8 a=PuvxfXWCAAAA:8 a=pMBjG9WjWPNDpSeUJj0A:9 a=a-qgeE7W1pNrGK8U0ZQC:22 a=uAr15Ul7AJ1q7o2wzYQp:22 a=5yU3S35YU4bGjq-dph-N:22 a=Bho9c0fBagfJEIQBS7DQ:22 cc=ntf awl=host:12102 X-Proofpoint-GUID: wMscpygXWz6eHd3J5hubafG1UEMrz2F- Content-Type: text/plain; charset="utf-8" In preparation for defining smp_cond_load_acquire_timeout(), remove the private copy. Lacking this, the rqspinlock code falls back to using smp_cond_load_acquire(). Cc: Kumar Kartikeya Dwivedi Cc: Alexei Starovoitov Cc: bpf@vger.kernel.org Reviewed-by: Catalin Marinas Reviewed-by: Haris Okanovic Acked-by: Kumar Kartikeya Dwivedi Reviewed-by: Christoph Lameter (Ampere) Tested-by: Haris Okanovic Signed-off-by: Ankur Arora --- arch/arm64/include/asm/rqspinlock.h | 85 ----------------------------- 1 file changed, 85 deletions(-) diff --git a/arch/arm64/include/asm/rqspinlock.h b/arch/arm64/include/asm/r= qspinlock.h index 9ea0a74e5892..a385603436e9 100644 --- a/arch/arm64/include/asm/rqspinlock.h +++ b/arch/arm64/include/asm/rqspinlock.h @@ -3,91 +3,6 @@ #define _ASM_RQSPINLOCK_H =20 #include - -/* - * Hardcode res_smp_cond_load_acquire implementations for arm64 to a custom - * version based on [0]. In rqspinlock code, our conditional expression in= volves - * checking the value _and_ additionally a timeout. However, on arm64, the - * WFE-based implementation may never spin again if no stores occur to the - * locked byte in the lock word. As such, we may be stuck forever if - * event-stream based unblocking is not available on the platform for WFE = spin - * loops (arch_timer_evtstrm_available). - * - * Once support for smp_cond_load_acquire_timewait [0] lands, we can drop = this - * copy-paste. - * - * While we rely on the implementation to amortize the cost of sampling - * cond_expr for us, it will not happen when event stream support is - * unavailable, time_expr check is amortized. This is not the common case,= and - * it would be difficult to fit our logic in the time_expr_ns >=3D time_li= mit_ns - * comparison, hence just let it be. In case of event-stream, the loop is = woken - * up at microsecond granularity. - * - * [0]: https://lore.kernel.org/lkml/20250203214911.898276-1-ankur.a.arora= @oracle.com - */ - -#ifndef smp_cond_load_acquire_timewait - -#define smp_cond_time_check_count 200 - -#define __smp_cond_load_relaxed_spinwait(ptr, cond_expr, time_expr_ns, \ - time_limit_ns) ({ \ - typeof(ptr) __PTR =3D (ptr); \ - __unqual_scalar_typeof(*ptr) VAL; \ - unsigned int __count =3D 0; \ - for (;;) { \ - VAL =3D READ_ONCE(*__PTR); \ - if (cond_expr) \ - break; \ - cpu_relax(); \ - if (__count++ < smp_cond_time_check_count) \ - continue; \ - if ((time_expr_ns) >=3D (time_limit_ns)) \ - break; \ - __count =3D 0; \ - } \ - (typeof(*ptr))VAL; \ -}) - -#define __smp_cond_load_acquire_timewait(ptr, cond_expr, \ - time_expr_ns, time_limit_ns) \ -({ \ - typeof(ptr) __PTR =3D (ptr); \ - __unqual_scalar_typeof(*ptr) VAL; \ - for (;;) { \ - VAL =3D smp_load_acquire(__PTR); \ - if (cond_expr) \ - break; \ - __cmpwait_relaxed(__PTR, VAL); \ - if ((time_expr_ns) >=3D (time_limit_ns)) \ - break; \ - } \ - (typeof(*ptr))VAL; \ -}) - -#define smp_cond_load_acquire_timewait(ptr, cond_expr, \ - time_expr_ns, time_limit_ns) \ -({ \ - __unqual_scalar_typeof(*ptr) _val; \ - int __wfe =3D arch_timer_evtstrm_available(); \ - \ - if (likely(__wfe)) { \ - _val =3D __smp_cond_load_acquire_timewait(ptr, cond_expr, \ - time_expr_ns, \ - time_limit_ns); \ - } else { \ - _val =3D __smp_cond_load_relaxed_spinwait(ptr, cond_expr, \ - time_expr_ns, \ - time_limit_ns); \ - smp_acquire__after_ctrl_dep(); \ - } \ - (typeof(*ptr))_val; \ -}) - -#endif - -#define res_smp_cond_load_acquire(v, c) smp_cond_load_acquire_timewait(v, = c, 0, 1) - #include =20 #endif /* _ASM_RQSPINLOCK_H */ --=20 2.43.7 From nobody Sat Sep 26 13:47:35 2026 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (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 BEA3C38D400; Mon, 31 Aug 2026 20:23:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788207820; cv=fail; b=Nf6uMY4IJnRQfFXg07oqqJ1yRnEuqvaKJAHlGmxAM7WP3a5DneFnDwZKfA8V1B0smTpZS+DA29CkAignMSP00+J4EYGHFL5QmF54zH2q7ISoN+dy51aFsEhnLVNskJxgkkz/3tJ7wjcLHDuLIH5bvYMZeKDykakDQk5bWE4yVSI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788207820; c=relaxed/simple; bh=8t95CQy+opN0++rZOlkAFyo2ok2sdrdUqSjnK1XLeRw=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=kr8ZZ5TMe+nquFsmMn5Su4nhBmRQq7oqhGrV07HoDoHsbe483x1RizcO5pF9afv0S13wS6OvyT7s6HHPLQCV59K6a67e3O6+0++yNymH+aWzmnvozugdDNQRydK9kbNUetpMMHOC+lzPTNkzUe+bfrZSdKuCcBW9Ri927ExLCcA= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=q5q9pXCc; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=e/i5Imot; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="q5q9pXCc"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="e/i5Imot" Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67VGBi111783695; Mon, 31 Aug 2026 20:23:13 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=lFVh8jbQtaCVf3OE5e+LK2Bz1wakk4bJToBOsSDi+sQ=; b= q5q9pXCcP92cFFOmKbymfzuj0Rgh7NLtFmFZZQrDEHyQaG/4/hiMdfsZAxq5D2Rx +8CD1SYQVRyqQvkE5Wiot/toh1mCKgkqdSEObbRl25MltKdG1q/qRuIjp0F/SY57 3ykFq6LdtU8pPGpPnseU+dC+eCFMuIHwJ/Xeftdd6oeiJSgdPnCTdln+K/8UrfZv NTvzAkJ6u1Lc6uwrxbgcAx0R7b6RKKrqw4265fqW6aCYSc1sRwmjc4UukIlk3tLo JDDvcnGZgjrSQxWo/Zj4mh23ihm/vHkt2dKPYjlg2pVg6bEgu5IyFEO3sUJnT7Mt 0AAIuYPLwUr+8U19xip6TA== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4gbp0xud59-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 31 Aug 2026 20:23:12 +0000 (GMT) Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.7/8.18.1.7) with ESMTP id 67VKK9cg038828; Mon, 31 Aug 2026 20:23:12 GMT Received: from sn4pr0501cu005.outbound.protection.outlook.com (mail-southcentralusazon11011022.outbound.protection.outlook.com [40.93.194.22]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4gbnvdgjs6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Mon, 31 Aug 2026 20:23:12 +0000 (GMT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=TNhN3mo1hHmzI4Kvncdoxlx3xVZCL6vwId7r/icHqlUdpjKLXnWGWO6RJ9uQT59EQfjC18INggr/juB0Cb07qc0VBX8b65aB9rBtdfuDg3B4ra3/sJYbFNGnbUJsR9yBOlahoWITMZtJptta0xHWqewcVXRM4VEdBffojQQ+vySw4NYuvX4H6vF5KhJhcZPi4aCQCMNI9QuFRIA6Q9tXvE3LBqiBN7UlulTU1VVA3Ihbjql81i1FjIyZeek60Ws/NgmQ3FMgSKRHNfevZ2EYePu9NxeDPghaE0ABkSwTQzOvrYiwjupiWnWt2MdlxBvjNNNBDbnBLHn3l3JuyI3qTg== 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=lFVh8jbQtaCVf3OE5e+LK2Bz1wakk4bJToBOsSDi+sQ=; b=q4ibvWCc4jYsUKl0nlZNKrtOu/07zn/wkMNoL2QRLWLZk+ATv6EAdFfL4y9O0Q6NVnP7wLqTUauJfXFSoSLzPnhrZavvfYDYlosct/nHwX2QVMJjthcgHXaTlpngse+cgHBGbZ/NS6ZYBFfta8iRHocMyrboF+vvzwiBIhaz/P2BBTj3pRxp6jhVg+PeiEdRiTLkG2VnRACjv+UjWIvbjTtTqjwzAQskEKbkJjht70WzEnm+ActQqKgg8B4ub+2YzJG2qCDH91WTJS3L/iBoY1jfBYR95CS+nktQxewvKTaxnParauhRjachQvRaAyhz8Fq7dhIkpsV2lMCg5kscww== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=lFVh8jbQtaCVf3OE5e+LK2Bz1wakk4bJToBOsSDi+sQ=; b=e/i5Imot8zzyx204GE/thP4KsTe9xPIOfCD+WD9Nt6Uu2cVvWQssa2tqMApSVa1DOILg4vIgKBOmtr3B+yGN3+BHWp2s+Uy+aZh40gZVJfiHuD79qWGZVNnsbknvDalETKc1yu71ggV08pWm2BFI7vDhVCwpcq1sfqSy6MfmBUA= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by PH7PR10MB6179.namprd10.prod.outlook.com (2603:10b6:510:1f1::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.382.10; Mon, 31 Aug 2026 20:23:08 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574%6]) with mapi id 15.21.0382.007; Mon, 31 Aug 2026 20:23:08 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pm@vger.kernel.org, bpf@vger.kernel.org Cc: arnd@arndb.de, catalin.marinas@arm.com, will@kernel.org, peterz@infradead.org, akpm@linux-foundation.org, mark.rutland@arm.com, harisokn@amazon.com, cl@gentwo.org, ast@kernel.org, rafael@kernel.org, daniel.lezcano@linaro.org, memxor@gmail.com, zhenglifeng1@huawei.com, xueshuai@linux.alibaba.com, rdunlap@infradead.org, david.laight.linux@gmail.com, broonie@kernel.org, joao.m.martins@oracle.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ashok.bhat@arm.com, Ankur Arora Subject: [PATCH v15 06/16] asm-generic: barrier: Add smp_cond_load_acquire_timeout() Date: Mon, 31 Aug 2026 13:22:41 -0700 Message-Id: <20260831202251.305046-7-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20260831202251.305046-1-ankur.a.arora@oracle.com> References: <20260831202251.305046-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0348.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:fc::10) To CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO6PR10MB5409:EE_|PH7PR10MB6179:EE_ X-MS-Office365-Filtering-Correlation-Id: 2223981c-4c0d-41d0-4c23-08df079dabc8 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|366016|7416014|376014|1800799024|56012099006|10067099003|3023799007|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: M28H3ZHXzOgWFIOIQH4QF9r+ISi4uggDQD4ZOuWz06fL8erSIlW+gzeCQMZuaLlqmjzQ3TMY3QD54SIzxVhUgAoXHWSC6obYkCMWndy5viaV4khbGr9ZqQY1k2PAWX0MzKRqdEBSfl1/gL2dBhEQbWKgR4hqSSFUlaSPjWQdd7sVEWyXUkAsZ504/HJIs25h2pWEdCg5AD9DEkNAB6ykbic/nDKwsipsi/DXuyWVsnJgmvSOn2Ra9vcQ8mtF7Tarek7mihMiQLOUT7YQl/EVkZ99wTZtxjgXlFsb3MfdQohUXi8yDPlAVt+I8KddxG+Y/dvm2YG/PU9cjz+goc8PC87pemgfxieq3fWS35KmoyBNNdUSTJWzqcnL/4WckqD/sZKpje62s+/KfPrimfRprTG/Hbjj0cMji2A7NADFyXswnjS2ECwy6SXCGTZmwXSmRdB1QposqMoIM7rCnMG4ySkrK0CdEwHVdWDj0aVRNi3um5FGjR3wdXP8Kd2L1z75Dvalu6wcJcxf8v+HQ0y6X3PTBa4MNUoobmoy8qHQBE86TtlGeRIYE/kxc6y91eV7if7o+/X6NiY+xvi74Of9EvtXVlmuOhMVjVLp6RJoD7uxuXndq27q7bZTUEyMKx2MBIktGYUEabOujPefgSrmjVTzWXJI4WtfYuTUnTPsq5s= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO6PR10MB5409.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(366016)(7416014)(376014)(1800799024)(56012099006)(10067099003)(3023799007)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?AzSXRI7yR1KsofyZ1j9bwW+c2StQnY/1vZU6n1W8vTAQXK9HusdkBvTkmLvx?= =?us-ascii?Q?VzBZVhE1poSGZIxd1cZm5L938uKf7SHFc4bQZZ/aX3fkdffjpnDlrcmzke1g?= =?us-ascii?Q?iaWhCmThgY422B6O5SE9+JhUQU0dG3KX2rOgAZKzENE/tfIZzEKlVPOvRPge?= =?us-ascii?Q?Zk/3ZJDFjLJNawivvCpWx3NZkOEjQnkgjGkc6IyAQNNAYwj1TZ1B8H5an+Xc?= =?us-ascii?Q?jxVtYFfzwUygLP9eGCdp5djlFlMaDp3Kq2HtXkr+nkPcVHlQXA8cAF8KVKf8?= =?us-ascii?Q?atQ8pGvvNkTGwN3u8YrvLppgeZw7AtbQs4yi+4YSl8rzqhaQ4+cMH4Qvfk7t?= =?us-ascii?Q?VBUCgUrf+Bb7Q4ImljL/X/KnxaV5LZ9aWUiSQFyULZ/NxND39VRJOYnwnFfo?= =?us-ascii?Q?RVGJ1I0Kk5h13oiP4p3WUetSWPe9XWGHqjWFGX+04GuWJ16FvUZQZyMIuY0f?= =?us-ascii?Q?XWoboBFpWYE1jLZ3vdLHAjKtfMGfFwp7zM+92mPxucy/lcH+7W3fsfC6yPfm?= =?us-ascii?Q?pzChNFJl7AR/SQwPqQCMqwEFjUaVSpnuZ8vZSnDGKdQqwUUyzCiubms2pzl7?= =?us-ascii?Q?GQrShk97TQ8Mj/QFCq9U905CUB9XJb5AKasWtgpue1G3wmvODT2nWfBj8bNL?= =?us-ascii?Q?wB6IZbQugIjJpopJNjbjgBc2oTs17e5997qghVRV7mGVYcpqlOvMiDtiSKjI?= =?us-ascii?Q?eHzQJzX6J/nTYTnXXnaETDEKPQxG5Sxygm6Z2ZQTsifGqgeD+G6EBFPSjVZX?= =?us-ascii?Q?aCbPMDirgQgPbnyu2Lr3VhQpp0sRJyflBhG6jql+UEKOKrLoN9WOS+DnxqDr?= =?us-ascii?Q?tGblzKQ+s5zR6wWkyiV5UjsMAM4C9//S87+B76N25fjnnWzN21qTRF5nuaX+?= =?us-ascii?Q?FP3ch58bh8RgOAm4mO7IPP1itoZSxTv6gddljU9E5vFUO+PpHKmsjSS7+yu2?= =?us-ascii?Q?bn9a56d/p1M5paS31r4FDui6gK+Q9VbAf16Czdbdoku71NT2T6h9byOIkaCX?= =?us-ascii?Q?3g4ZuPURjgzNGVw6+z4c0yyQwCYv53g7bQhF5xEscA/Efw23EXWQMmGUY1nL?= =?us-ascii?Q?a5Ut1cxPXDRvc6D6nx4Iv44IFpigAeET3VDGYw33Oq8diyBuNOo+EtDd2aFG?= =?us-ascii?Q?DOKmVIAHr5VFtTLzo+5mG5YYIJ93MbXGBK/qoIUSZ1KyR5j5R171TmVOAHN7?= =?us-ascii?Q?bAFo+F3vyZ+kOcm0n9yslppeiixzG1akxcVew+SVdt8tkcc2zqJfCByZiyqE?= =?us-ascii?Q?1I9HOR4Zh55LVqlwbhGZTn+LtzZ6wjphq6IVKPLrnyLcQNJ3gnEAFuDbQdFk?= =?us-ascii?Q?6KSzeAy0uQ6DV5PjJ/p2mPvuNVnxP7uF1urSmS6vJPiEm7ovxRdt/KXrH41I?= =?us-ascii?Q?DvpjJ9381fm4KLiFP9PcYe3LfvsQV9mbJoPDROHjauHZcN/O5Qam1mXx5JG+?= =?us-ascii?Q?/DjW7ra4LktBZrCzBL4mEEqm1eA38JT91k8NZ+dBKV3JsKkya7pk20ooTP92?= =?us-ascii?Q?QdKvGZpJCAZaWrHhe386FyCOu7I4q3F1YWdNk7cwr53oEkqWz6x/hPhJ7SrE?= =?us-ascii?Q?b18PKH7zDioQSq1lVt3D1h8nCeaSnVl5NnJwVEZwnhtY60mIluQyjERmHT9W?= =?us-ascii?Q?bakYWmRJe8chpD7+nBkfXttFp6W0G9g7V4UlIYNu5b8O5hyrdrhv9bybwVqc?= =?us-ascii?Q?PLw7jiI4B2vJrt9fQiV5V05hONqqgQ5WtdSKkGEaoULgWPCARm2MxclT2GSB?= =?us-ascii?Q?+d8WxqyMcd6fZCWm//4/fIS8IOZaDS8=3D?= X-Exchange-RoutingPolicyChecked: W1PgjwlZKJIcnT3MWFlAjID+XNbW7kt1tWYc25Auy3nWJrmqgdzR3Ilj9ZPQYZvO4cs4BMokEsPmwk4JtkZtDiLYuL0NawOEcNNqueffjpq67ikkORWmbaBB2qkTx5YydNTn+Fy3yzCxDGp7btmh4NeogdLk7CctdJRYGkcoMFIWUFYkGzLbsU+mY3ejT/7kwB4aMrWjQbbowGDsu8V/Ya4tdCOWiLgxKramfniGZ1v1ODcqsr/iZfnE0IXm/xpRibgFhyNcTGtviskH1dhnR7YJplT/vKWyISeL5eort5xPWoyiNYyP3xb2CbOjYcwPkg6xiyIdiT/wS1Vyezm0Og== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 6RzHOrVYt8mf+8ztDJs1VVzt1JtrAjDqSKgdPGkmAb60qOv4mnxMXS6uO9z38T++FTrQe6mtmlYXNnPEa8lkRN2v0p6IeNWukCe5D+7vti5/JxVCDF6r4GOM1wd/XKxTcwQsBfsUFx1FkwOjHnHK99GMB8N7e+nwd58we0u+k4vD5dLf0awD55q8a4fuqlco9Mo/tN1oLzk+LLS7AgY3Hk4LBY+ExNtjk71lujA9f9NStJDDujCuEJG/0dJzPEAWfBn1G3IB+CxAdHUOO0/pm89c+loQ6z/6vcnEY2N0xNSVBbzUEbrvl7DkxHcbWwKOXdv2SVuMT/78QzsAPPZ+fF2/CSLjjcUpLlXsUi7au8zs97CFo9OuTqc8Nt7EnvRz0UdUH2WOiOxIbvXl7XM1hb557QG19EOijXuDQiPVujn/suSiaUb2Pb0MocpvsTzCC9jp9bvZWhbBcPPiSZ+xd08a3d7iMbR743l1qpXk1rRZvYlA8OW246r/YsAhcMvAOlQKXXoH9EK6sbmHYykBIjeQsH46EmWw9fXBAz0vlfFa+P9mFg7zntG6b9b1+oBL71tKyOj+/dndB00ds5OJfMDKEeCSeTaL2vM7ZlvwAw8= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2223981c-4c0d-41d0-4c23-08df079dabc8 X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Aug 2026 20:23:08.5073 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Ed8w8F0MVw7lIz/6vILUSAXoLGxMownDi364y4EKQE0W4ENYwUJpJt07Tr2SynlsjQiAw92tj6+RpEPlhCefveBgZ0c+GSAZT6hsKjd6bFI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR10MB6179 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-31_06,2026-08-31_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 mlxscore=0 lowpriorityscore=0 suspectscore=0 adultscore=0 bulkscore=0 malwarescore=0 spamscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2606160000 definitions=main-2608310176 X-Proofpoint-ORIG-GUID: Iej98bZYsTiT7xbI4XgLQEtXhDnsfSew X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODMxMDE3NiBTYWx0ZWRfXyLBggHOadDD9 P4bSQnqu3D/vUe2965F/CqGWQ5/gtm6wdJKPMH2EEqADZ7umK4LWQerfWP64Iddz8CSDcdl39v8 YxlKYRHxpmAH9Le+89J1jKTemBicbMqQJ1PQIRVuDYlkptGwP8LS2mK72EGOChea5DaSC8KXw+S TdO1aMAIj3WQtE6HtZRs3o5nuTgYPkq+0zRF0dkaybML+g/MH65LvLN2j2IncDkozv9SPvc4TdJ CJklmUUeHBhPmE4YJM+0wGJWD1NkqavfTJ1WYPLTkgkjKacp/Gv2rmK/knOi79lqntZNSSp/wZZ r2YiG/6LtDj2ERDHm+azPB0xjB9KQF6Ruu/ENtWmfP0Z6RaDUlADlZetj4R+ClYqSfEeUrGw8TH QaVN8982OCcIG/gFYg26YAkp1KJ1hd3AXI0fRlIy0veeuVOLk1/D7pfyPLORbTffmK1nvzLxriz h8wxsO3Ndj9G7AK5k+A== X-Authority-Analysis: v=2.4 cv=Ebb4hvmC c=1 sm=1 tr=0 ts=6a95e2b0 cx=c_pps a=OOZaFjgC48PWsiFpTAqLcw==:117 a=OOZaFjgC48PWsiFpTAqLcw==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=Sv0fKeRqtYgA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=jiCTI4zE5U7BLdzWsZGv:22 a=RD47p0oAkeU5bO7t-o6f:22 a=pGLkceISAAAA:8 a=VwQbUJbxAAAA:8 a=7CQSdrXTAAAA:8 a=JfrnYn6hAAAA:8 a=vggBfdFIAAAA:8 a=yPCof4ZbAAAA:8 a=3l0D1vn9HKlqLe7D3jMA:9 a=a-qgeE7W1pNrGK8U0ZQC:22 a=1CNFftbPRP8L7MoqJWF3:22 X-Proofpoint-GUID: Iej98bZYsTiT7xbI4XgLQEtXhDnsfSew X-Proofpoint-Spam-Info: AW1haW4tMjYwODMxMDE3NiBTYWx0ZWRfX3ltNxX5jGJwe /6v1VD2yKcW7XQQRHKR5YvUWRYzEUA2C4bKPNSeI1iWkse/hm8JlTyf2z9j0uLu0m4V8hHFd/IY +K47JUceoZC7kpoAy49t/fCcHtH0WNtjpiXR8wmE0VJn8jzRi7so Content-Type: text/plain; charset="utf-8" Add the acquire variant of smp_cond_load_relaxed_timeout(). smp_cond_load_acquire_timeout() reuses the relaxed variant for the actual wait. This has two paths out: C1. "if (cond_expr)": loop condition evaluates to true C2. "if (__scl_time_now <=3D 0 || __scl_timeout <=3D 0)": timeout case a. cond_expr evaluates to false b. cond_expr evaluates to true C1 already provides LOAD->STORE order via the control-dependency. C2b does not. So re-evaluate the "if (cond_expr)" branch in smp_cond_load_acquire_timeout() to provide that, and follow that with smp_acquire__after_ctrl_dep() for the additional LOAD->LOAD order, together providing the full load-acquire order. For the pure timeout case (C2a), we have neither, so just go with a straight smp_load_acquire(). Cc: Kumar Kartikeya Dwivedi Cc: Alexei Starovoitov Cc: Arnd Bergmann Cc: Will Deacon Cc: Catalin Marinas Cc: Peter Zijlstra Cc: linux-arch@vger.kernel.org Cc: bpf@vger.kernel.org Reviewed-by: Catalin Marinas Reviewed-by: Haris Okanovic Tested-by: Haris Okanovic Signed-off-by: Ankur Arora --- Notes: In earlier revisions sashiko comments pointed out: "Does this standalone if block fail to extend a control dependency to the macro caller's subsequent code?" This was a problem for the timeout case where the "if (cond_expr())" was missing. My solution in earlier versions was to not provide acquire ordering on timeout -- that looked okay for BPF and we have similar semantics in other places as well (ex. try_page_mte_tagging()). On second thoughts, those semantics were unnecessary special for a non-performance path. So this revision just provides a full smp_load_acquire() in the failure path. Also update the comment in smp_cond_load_acquire_timeout() to describe the barrier semantics for the three cases. Catalin, Haris: I've retained both your R-bys. Hope that's okay. include/asm-generic/barrier.h | 48 +++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/include/asm-generic/barrier.h b/include/asm-generic/barrier.h index 4437d27c46b9..81db4da12f5b 100644 --- a/include/asm-generic/barrier.h +++ b/include/asm-generic/barrier.h @@ -379,6 +379,54 @@ do { \ }) #endif =20 +/** + * smp_cond_load_acquire_timeout() - (Spin) wait for cond with ACQUIRE ord= ering + * until a timeout expires. + * @ptr: pointer to the variable to wait on. + * @cond_expr: boolean expression to wait for. + * @time_expr_ns: monotonic expression that evaluates to time in ns or, + * on failure, returns a negative value. + * @timeout_ns: timeout value in ns + * (Both of the above are assumed to be compatible with s64.) + * + * Equivalent to using smp_cond_load_acquire() on the condition variable w= ith + * a timeout. + */ +#ifndef smp_cond_load_acquire_timeout +#define smp_cond_load_acquire_timeout(ptr, cond_expr, \ + time_expr_ns, timeout_ns) \ +({ \ + __unqual_scalar_typeof(*(ptr)) VAL; \ + VAL =3D smp_cond_load_relaxed_timeout(ptr, cond_expr, \ + time_expr_ns, \ + timeout_ns); \ + /* \ + * We arrive here once the loop condition is hit, on timeout, \ + * or, if we hit both the timeout and the loop condition. \ + * \ + * For the first case, we come here having already evaluated \ + * the control dependency. \ + * In the last case -- low probability, possible in the last \ + * iteration, especially on architectures with waiting \ + * cpu_poll_relax() -- the control dependency has not been \ + * evaluated. \ + * \ + * So, force it to be re-evaluated before \ + * smp_acquire__after_ctrl_dep() to provide ACQUIRE ordering \ + * for both. \ + * \ + * The other case is of pure timeout, where again we don't have \ + * the advantage of having the control dependency. Given that \ + * this is the slowpath, we go with a full smp_load_acquire(). \ + */ \ + if (cond_expr) \ + smp_acquire__after_ctrl_dep(); \ + else \ + VAL =3D smp_load_acquire(ptr); \ + (typeof(*(ptr)))VAL; \ +}) +#endif + /* * pmem_wmb() ensures that all stores for which the modification * are written to persistent storage by preceding instructions have --=20 2.43.7 From nobody Sat Sep 26 13:47:35 2026 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (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 5FCFE397942; Mon, 31 Aug 2026 20:23:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788207829; cv=fail; b=boRg3QX0ZHzs36kOxvLW3h71ZU4fKeKdGf5eStwIG//dPkSePL5ubpsmosIXsajIS3RCAFSzl6+j1dxQNnCBnE0GKADC6OUbJBALnS7r1tg6UDJ1VO1UBSHTykGOuqVFpt1VD/JvNEeEuVh6K2E84m9S84T69V+A8qgyLz6LEZw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788207829; c=relaxed/simple; bh=rUMYliG4l8oZdUHHnMaHYXaPviR8pu5Oo2Ta5S4creA=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=KiVj7RorGM1/u6UVL8FPCq7IwNRYKtn1dfcTEE1iYQSVyAFz1vnJa8GvJ65DeRRSDhHw1z/pTDD9FMlrXubA3dIFKYrkrh0hW4adIU8qDLsSoDQksFE7PNU4o1Hh5AzhKwmTBXbLzEkFutihK7EOUP0V9//zjj/d4H6aYtFEF3o= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=kcZ0fSIe; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=sLoLzYRm; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="kcZ0fSIe"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="sLoLzYRm" Received: from pps.filterd (m0333520.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67VGBpSG3113680; Mon, 31 Aug 2026 20:23:19 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=QsHyDwbZDt14FavL1G1amq1dUCjoYT5O4o88+Pn2YyM=; b= kcZ0fSIe+XhF0jET81QAMfcMVQ5i7yEioSxofXLV4h4GMBDBEajmBpWXAXb1wZsX vBMEjEKqZZSnjP1KzTAs6LMEYVHBniUlv1h9oAVuXIQF6AXixcXT7STdTxOaBnro r/jKthKHx5xPGt9wdacNnuFv7F6SVvJMwRL1gimca7TcBOYrSurAlbHipBiWmgNp KUW57W8LjKNdb1544FXT1Tbw1H6F69JtT6ABb23WRwGn5tDq56NGnwPumfxKEoEb SnkQLLydnyD2d7jkkhYd6o+5Rlv52BM5QSW/Np+nDLaIB0Ocf5J18QZoxXAZQqJ+ NbxrS9U/uuspwyTIFLMwXg== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4gbqfc3cjs-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 31 Aug 2026 20:23:19 +0000 (GMT) Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.7/8.18.1.7) with ESMTP id 67VKFeoE032899; Mon, 31 Aug 2026 20:23:18 GMT Received: from dm1pr04cu001.outbound.protection.outlook.com (mail-centralusazon11010062.outbound.protection.outlook.com [52.101.61.62]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4gbnvpqtsv-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Mon, 31 Aug 2026 20:23:18 +0000 (GMT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=NcrXCNY6OACXE1Iy72QScjGZrmnoXMF0eSwHjrBaVFJPUmyfjSYxErxzpDy1Cy9fz1M6oatIJsSgo1077RBS7yfA6tT5OXfEZDPQxDxOrJELc5jtEvPyDj+GsNss5i61wyefWFBGNOJV4emVHQUCJUuubnm5EAf+nq/5vFbTEotQ5m6Qy+7UFt/y72rddM4mjTEe4y6cv2HMFoJSIcXDBWx+sDjD4ji9RFCIvHytd5u8A8RmYdUKB/LfjpSzvbta+wj4aHX1XD3ioBLa5CzRZHUIBxjKDUJn4CYFC87pDhQsuNGa/hOsLcud7xrsYe3/25+snGzDS8P3Yjtf4OR8cw== 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=QsHyDwbZDt14FavL1G1amq1dUCjoYT5O4o88+Pn2YyM=; b=PSOLSUQpELxYC5S7gEEajDDW/uQjkr88N5VQorNsLHd2yoMa9zIoFDLHY6P30Nf6Prk4zZOdFI6f13IdiEPD7CCXGnDrNypR7PhQZIUlHAdL1CDy9BSh1VlYVMkq+/oYPVriIvc2S+/k2Kfqw0Tej9VIV1OQeOmw9R7V6wOfjVJvDbSEkRkAKfZMae/GsHeOnJOfLcQUd+4wbPitCkHVdu6RbrpYmF5pzcX+poJHt6qsH31fcjQBWRkxe5//l9vukEY1o5t1HTbepksHu/5FW+MQ4qpTFWmW/tAtx3AayCCKS3RUWDrN5oEnyjLzhV8ArXOForddl37HUDfJg+RDvg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=QsHyDwbZDt14FavL1G1amq1dUCjoYT5O4o88+Pn2YyM=; b=sLoLzYRmFvsz3QyXCeAFzWsxOlE5khba3On8ptdZe+5yxYhmV03EzsJ1/zimOt8uFPkxPwYkDYkcZjx5+kGeUl/mYKQKtihw8+kaILjLEWnd1nWgwpeBLZCxRzF7BqXhvSGGhlt8+uJ0HlKGeTLSpmp8etMEHWVfMT0vpIfVY40= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by PH7PR10MB6179.namprd10.prod.outlook.com (2603:10b6:510:1f1::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.382.10; Mon, 31 Aug 2026 20:23:11 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574%6]) with mapi id 15.21.0382.007; Mon, 31 Aug 2026 20:23:11 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pm@vger.kernel.org, bpf@vger.kernel.org Cc: arnd@arndb.de, catalin.marinas@arm.com, will@kernel.org, peterz@infradead.org, akpm@linux-foundation.org, mark.rutland@arm.com, harisokn@amazon.com, cl@gentwo.org, ast@kernel.org, rafael@kernel.org, daniel.lezcano@linaro.org, memxor@gmail.com, zhenglifeng1@huawei.com, xueshuai@linux.alibaba.com, rdunlap@infradead.org, david.laight.linux@gmail.com, broonie@kernel.org, joao.m.martins@oracle.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ashok.bhat@arm.com, Ankur Arora , Boqun Feng Subject: [PATCH v15 07/16] atomic: Add atomic_cond_read_*_timeout() Date: Mon, 31 Aug 2026 13:22:42 -0700 Message-Id: <20260831202251.305046-8-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20260831202251.305046-1-ankur.a.arora@oracle.com> References: <20260831202251.305046-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0279.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:109::17) To CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO6PR10MB5409:EE_|PH7PR10MB6179:EE_ X-MS-Office365-Filtering-Correlation-Id: bea14d1e-8c99-4c15-bce7-08df079dad8f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|366016|7416014|376014|1800799024|56012099006|10067099003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: ni3I+CYyBAc4AioM8fgNCyO3WcxAVQpLFYV3BHuxLj1DAFXVidVrgRenTpJ4q3YcyOev3x4GaIXtYc0MRLt1BjTdur042cOityBC5MQ9W2v6EeorgkoFEk8wFaCbR4ZjiQoexzJousLSRugeemHc2EYS6Tz7AV29qZjvUviFdhRKokAbw0oUfaYwsdlCmRLBkDihYkNgFNH4ANfJ3d3TMkBoCL+ekd+2l1V0Gg+7+9NIG8K4K6dRkxhvK/u6PW/zJ6DkbdRKm1UeUho0BaVrPlAsYASJTefrvyEneDJQB8uJp4l5c9uUkaIIIz8ZB76ZOcXeHjzZrNXauO4H4AiTUqQfJMHyri5LQLTzE3Sej8JiHkGYsjFTJu0DewIZD6kiqeUPRZsTuPb6/EQy9I0WdC7to8WGvvnewHWTyn6y7wVYThrgedUcKgDXU1TejnOnDWxfXatFrvFiGctIYLHD4kdoYQuuVfBHfl8/2IsryRBXlH6hI8XP/iOdUBPZ++CQttVsF9UA2mM/P2U3y/e7dBUBty+3oZFK9oBwLkPZs8DLNgf9ee7xbM32ScXYS8OdP9MP9iZunbWYlpV+0nw5SOwrinbOMzzFU1gZZ4uU7JqEaIaSgrIqSlutiWx8Z528l5S02AIBaULwBPJSpPsyMgcKeVC0WYxZegcm2cUe8H0= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO6PR10MB5409.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(366016)(7416014)(376014)(1800799024)(56012099006)(10067099003)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?tOCFeKHO3nirDniGdY54zLkdaSo3Ju4o4nYXL7dy18PYgdQNlFXC/n3Guc+j?= =?us-ascii?Q?LIHoOyEM0+9vh2hbkzDGFBeKjpDvDpPYlmLf+w8xvw0oUxmJM1vPitSpYkX/?= =?us-ascii?Q?SANK4rs/nKyVWkEUdta3EZ2zjo1BCBs2R1/90M0Kt+hcaTpu5YiGNNZOI7/N?= =?us-ascii?Q?Ee/VS0kWJJ+GDhq5JfQsbBJB808+7BR/zmYnfeRjYVJHPfCQ/Gs34Ef0RmPY?= =?us-ascii?Q?Sm6D4RtK6F5H28CODVHqUkMT0uRM10qDm6R+LgDeVNTh6eqMy+jqRcy9la2n?= =?us-ascii?Q?20Zarz0sOldAgl/DE6rCP4XBFHJ2dTaXc2/jpoATrzFCX9ShJ37GW1MUHh6h?= =?us-ascii?Q?6cawv35jN0ZRQR6eEsN2TFJBWztjxg55ht44zpe3MIB0MqkBHetHRL9Cw8qU?= =?us-ascii?Q?LAv0qZDXrN2s/3gp0bHO3ZKircCoCTF7icOFWWe7Drp/0bkROwLELK+0ciAd?= =?us-ascii?Q?+BxNSLP7bfLZtOwo2c0e3kqNEU27lTD1tN0yOIpAaRXypC72scTwIWuqjYU2?= =?us-ascii?Q?MYMKiseAcou8L0E5f4OkZnV7Les41/hN7rD8EzrKiYdCiRwzW9Zu9MTKe6pG?= =?us-ascii?Q?HfTDl1ER/VWxrWymH/oIBV6g8YgOlJLwD9m6yHrcCwS1nlac2EblUJOWoUjV?= =?us-ascii?Q?i9o9EXTR27nafl79iAri+shJ+A0MSZonySCBwBBMPnEky7L6r6SnBerQgrLu?= =?us-ascii?Q?NjAn3QSLCYkVB6FTgjSw0rsqrIHf8XW9xH/wLz7+m0APUdPOarTbG3A7yeHk?= =?us-ascii?Q?sta22CAOR6OZSg7qtlkNqhem0CsQK9cA661mz5Y3z0S+Efrl3XTnxl3B5svy?= =?us-ascii?Q?S/5vbXTLQt9OJqa5rqN4RrL3eVE4WHFiHkylByMAQBaszlMKyBFFODhSgWAY?= =?us-ascii?Q?jqt5woa74hANoVq5mL1EG+RNNz9z4ZQ1rY1MK6v07Gi5Y0Tt12//XH7CdsD8?= =?us-ascii?Q?1gxh7Gvzrma+XA5WAJ97RQmrEsr0mZU2CYs645MK6GbOGuL7HU5kJhu/CfdX?= =?us-ascii?Q?Ew4f5MdiAKDd6kwVsxWEOo+1VeKvIIAHfG7UivQrI2rM8aEM1VGQxn9JSeLT?= =?us-ascii?Q?3iniLrMGrSxxO14E2svzYml4nhHo1XRYHteSM7zlP681mzu4puxaoxhO7QGH?= =?us-ascii?Q?2955h0aePECRpTsJzw1qlIuSpkz4tX9tpWXa8EQgWCGRw3ZygNXiLqdrIpt2?= =?us-ascii?Q?8/oeVPIdZOkPAt1CUrWuRRW3FRHm5UP4cdzAxN8pEX4cDcNeEierBVnOJK4E?= =?us-ascii?Q?L7CiAkJq16L1WVlysEsE8aIVYcy7XDMPoiXH2pcT8mEjxiKao5k9fxgnfoiK?= =?us-ascii?Q?+nJLf1MF/xfTSGj0krVtjHEaDQD14ILtNCE6gmyM0myP7wDmqwnZxhU0uRX0?= =?us-ascii?Q?HBnvcAnhtEQMa8v2Ta/Oh1k+Sna8BLWxzV51LyJReThXLvgREFNda5DfLCQw?= =?us-ascii?Q?l3JBtEarZv8zdn7ony5IfmT2eAvIUFcqZg7l7r5zjKTP6Cemx5za40ty0Zbq?= =?us-ascii?Q?vBi+DucksEujcQ3sUWUcrqFzEFrY6Qjlt/kj7D+VOftCuF2IaH3GPYfubhf2?= =?us-ascii?Q?X1FSSS/0hYLxWcpI2MdlwEODBqMFcl05h8h3ZfNuhcohpSgezrY/676nupS8?= =?us-ascii?Q?glEBiqaVIBuCYCG/PF+mpekVFRX4kPwzkv7soMpABEfTIslAA/LRyX/Hm76/?= =?us-ascii?Q?xarPraE2++86r+9JCj4t+TFYddQq9q8sPbg6R5YVOxC5zj7CKurQTbmkk7Bm?= =?us-ascii?Q?/WVJZbX6F15FeiwmO1iOLNQzMBWQQHs=3D?= X-Exchange-RoutingPolicyChecked: 2dK34IEhofkH+TlYMITppDjICOGVy/w1XOkxs4IEGM1/OfW9RSH5SzUO2D9/QE7ZTavDnw7aarKBLZF6zkM8M8xOPKESdvFye9OWhlOYsKStpWZyBmjoNrANWU/lDt8hEuhdszmcyw+xjLncng8a3UiEMxzjxu7l93KVbBkg72JUR0H71oAS/gFcF/AW1Sy6sV0NXmTc80LGYhHVJimceYi1K7CBtRzwi7S5Ji9CD3tQwP14XzyHLqKl6U2SGcQPlS02ifkbmnhfLrlDueNF6Uuo4jQ6dEMTDPovBcIkt8s0liqmdIK9OZfZOu0I41+QvovxVYbIw+J3iZE0OcnEKg== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: aNFgBDjIJI6GhU9dZhA38LGMPP0AwkP+SuHotLN+NgOb7+x0xTaTEZgse/fPxi1GCVsVOk/EGNW4bJeVH4UTK8HFjbuzqSZTBBPmhvazHkSti/38LoFA9na7Zl38niyfod51WUeUtQBQgr0mM+VqBvM+rfzJvdZInCYUGsS/d+DKY/ESJZQHj0BsUAVGXgFMP+lGT9lrZLvd8Sl/B2zpaDnGDn1qibBVmfG9wyNG7/SsP4oJ/cJcoU7lpCJR+pw9WFn9OMfa8qviA/87yj32M+Ul/HSHPrbgFaW+OGiOswX1zBtkA7KRZO6Cfd1TbnZUfqk+uRT1gPL/elEgL9Ce+OKUnBLcEhlk7nsCnGrMovhSkE13dq6nQCKFFm0+z0yWJJKXQm+ig1ux9G6qa3yVVSvkon/J3+PfQ+eNHYrqvHgKfXscfdcotVH3wjzI9lFm7SOPqZGsYDWISpv3mzeFlOrlXOLrnR7HXq2sBsXOetkSRPxl66UFHEb84ZdR5K+WYqU3iLzYlN8pEMVuQcX7V4Iq/v457pf0mAZ1VuLSprfAMBHCRoeLF/icUKyfCpIaiBahvFZYxpT8Rn6QCk5Q+yEz8Pqbs6LrT9XqeXRz7EE= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: bea14d1e-8c99-4c15-bce7-08df079dad8f X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Aug 2026 20:23:11.4401 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: f+X7wNRDyqbMB9KraJiK2SyPvcfw0VgG59dzuG4Nh3BxHAe5kRVo7NXPKs6nUIrfqn9buU72/a9fF55kMJiBUI9js+UyzvzwdRsnnYy0cy8= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR10MB6179 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-31_06,2026-08-31_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 bulkscore=0 mlxlogscore=999 lowpriorityscore=0 suspectscore=0 malwarescore=0 spamscore=0 phishscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2606160000 definitions=main-2608310175 X-Proofpoint-GUID: wuRfSfQrxJ6tdtU4R4U5z-L63G7gPsL1 X-Proofpoint-ORIG-GUID: wuRfSfQrxJ6tdtU4R4U5z-L63G7gPsL1 X-Proofpoint-Spam-Info: AW1haW4tMjYwODMxMDE3NiBTYWx0ZWRfX9+xZQ+74+aSb MVuCB1A49BzYiQNS8sCv/08SMxni6Peu4W9scApj5AukY31CHuF4ipwxhscHB3NWmyvMitNoTcR 6VYg0xXVzOarS4pfQJkywXyTfqeSrYb7IryKf71L8pBeflUZAHhN X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODMxMDE3NiBTYWx0ZWRfX1lo9WGkyyS3w i7XS5ewZ+CYy6fr8hSEjqjyldoJnJC9GBrGIIjEOjnJITM5rXRsxWihVvuaLveREP8z6aH3afbj XzYon16nB8vqGkAbdHu8X3eYTuvQufX9JhXSj1q2P393Rcoe9UsCj13krpC9f6bdXWppkvIpihC h6mvOr0t/gqV8aVQrWq2GZqaYPzn0+S/yhuilyAJirvXEFzIOi5+akATTDQpJQFTurFq8sbwwrs LLSuVwlDyFevb+6722se7skt73AGvKETeoG0e5vvDGMO/Sf+UiGUX8vELRH9fp++fakOXQZu7S0 hQmSYwZ21RisaB+gr+JvzssxM8hVMG5HNp8WRo5N9dDlcjA0daQsKnHNYc1AvrD7JSoFnixBLu9 3zCjVCwz7d5U0u/H6Gnhkak/6gsHkH/8IcVE3fcLLS2MHqjkG/QnMjjJ2zMdHaOLGHLcb0s6HY3 cLdMqaRmDgh/kgmNwJvb0VhIvQ5febLck9hbO2GE= X-Authority-Analysis: v=2.4 cv=a9gAM0SF c=1 sm=1 tr=0 ts=6a95e2b7 b=1 cx=c_pps a=e1sVV491RgrpLwSTMOnk8w==:117 a=e1sVV491RgrpLwSTMOnk8w==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=Sv0fKeRqtYgA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=jiCTI4zE5U7BLdzWsZGv:22 a=BqU2WV_vvsyTyxaotp0D:22 a=VwQbUJbxAAAA:8 a=JfrnYn6hAAAA:8 a=pGLkceISAAAA:8 a=7CQSdrXTAAAA:8 a=yPCof4ZbAAAA:8 a=RgR6v_fFY-8vhBXvnRcA:9 a=1CNFftbPRP8L7MoqJWF3:22 a=a-qgeE7W1pNrGK8U0ZQC:22 a=5yU3S35YU4bGjq-dph-N:22 a=Bho9c0fBagfJEIQBS7DQ:22 cc=ntf awl=host:13521 Content-Type: text/plain; charset="utf-8" Add atomic load wrappers, atomic_cond_read_*_timeout() and atomic64_cond_read_*_timeout() for the cond-load timeout interfaces. Also add a short description for the atomic_cond_read_{relaxed,acquire}(), and the atomic_cond_read_{relaxed,acquire}_timeout() interfaces. Cc: Will Deacon Cc: Peter Zijlstra Cc: Boqun Feng Acked-by: Catalin Marinas Signed-off-by: Ankur Arora --- Documentation/atomic_t.txt | 14 +++++++++----- include/linux/atomic.h | 10 ++++++++++ 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/Documentation/atomic_t.txt b/Documentation/atomic_t.txt index bee3b1bca9a7..0e53f6ccb558 100644 --- a/Documentation/atomic_t.txt +++ b/Documentation/atomic_t.txt @@ -16,6 +16,10 @@ Non-RMW ops: atomic_read(), atomic_set() atomic_read_acquire(), atomic_set_release() =20 +Non-RMW, non-atomic_t ops: + + atomic_cond_read_{relaxed,acquire}() + atomic_cond_read_{relaxed,acquire}_timeout() =20 RMW atomic operations: =20 @@ -79,11 +83,11 @@ SEMANTICS =20 Non-RMW ops: =20 -The non-RMW ops are (typically) regular LOADs and STOREs and are canonical= ly -implemented using READ_ONCE(), WRITE_ONCE(), smp_load_acquire() and -smp_store_release() respectively. Therefore, if you find yourself only usi= ng -the Non-RMW operations of atomic_t, you do not in fact need atomic_t at all -and are doing it wrong. +The non-RMW ops are (typically) regular, or conditional LOADs and STOREs a= nd +are canonically implemented using READ_ONCE(), WRITE_ONCE(), +smp_load_acquire() and smp_store_release() respectively. Therefore, if you +find yourself only using the Non-RMW operations of atomic_t, you do not in +fact need atomic_t at all and are doing it wrong. =20 A note for the implementation of atomic_set{}() is that it must not break = the atomicity of the RMW ops. That is: diff --git a/include/linux/atomic.h b/include/linux/atomic.h index 8dd57c3a99e9..5bcb86e07784 100644 --- a/include/linux/atomic.h +++ b/include/linux/atomic.h @@ -31,6 +31,16 @@ #define atomic64_cond_read_acquire(v, c) smp_cond_load_acquire(&(v)->count= er, (c)) #define atomic64_cond_read_relaxed(v, c) smp_cond_load_relaxed(&(v)->count= er, (c)) =20 +#define atomic_cond_read_acquire_timeout(v, c, e, t) \ + smp_cond_load_acquire_timeout(&(v)->counter, (c), (e), (t)) +#define atomic_cond_read_relaxed_timeout(v, c, e, t) \ + smp_cond_load_relaxed_timeout(&(v)->counter, (c), (e), (t)) + +#define atomic64_cond_read_acquire_timeout(v, c, e, t) \ + smp_cond_load_acquire_timeout(&(v)->counter, (c), (e), (t)) +#define atomic64_cond_read_relaxed_timeout(v, c, e, t) \ + smp_cond_load_relaxed_timeout(&(v)->counter, (c), (e), (t)) + /* * The idea here is to build acquire/release variants by adding explicit * barriers on top of the relaxed variant. In the case where the relaxed --=20 2.43.7 From nobody Sat Sep 26 13:47:35 2026 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (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 8FAB93845A9; Mon, 31 Aug 2026 20:23:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788207829; cv=fail; b=ZsIWe/uDwmjwsOWnszSgfBIxSkNeCZVNHUpz/SuqcQqykBQ0RwEw/ppTYuXBJNZZPp1X6xNNS4Lwb///F2h2P3VDcHTOXzwx3EVUWTdceb4nBv2hUVglmf+GjUT4An6xa3lilpBlJz2vCozR9vfX+hp2KAtoUXohJzuAF7e88Zc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788207829; c=relaxed/simple; bh=ojN6rotIbIAfJKlO1MyqmeOi1zWc2jY+tGVwNQ7lr28=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=lCgnAm1eaSPAgRE6KQOBB67CUssX3vSBl8pp0OW1xOYf73Kt2NIdMenKmtCNUi/P/cWYvas7KF3Vo3DxJpgnIQDg//4m8gcFlisEuqRvsz9QJ+6pwUVrW/eeoAf53uaCyxJEaJ0T8sPd8GqD8CTSJlzH/00DdHGK4JtEZKS4YRw= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=mhFdWEE3; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=hursHWJs; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="mhFdWEE3"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="hursHWJs" Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67VGBsIX1775888; Mon, 31 Aug 2026 20:23:21 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=S20dGHKKS4wRGthBkiO1JlrzyRBsuGiJ35trtoHHkDY=; b= mhFdWEE3n+vMVEi3GLEK6Bk0PAjfBJUKoP74MAcLX3U4+el9AEO+3so+JFGlGnCC zbpLMRRjshIedFSKPe/r5hBje9vDGLvNC0t0FO/xJQOdedsw4whzlFIiwDQer+z9 5BSk8GvRPYZusbyP3gpii1UVRPAsTHDPe64IdWGZ6xxTqN1hT4raOKN1YGiiALFE RLS5McBguEeJ9MWcgWKRDn0kwRI+d6wFzTQkrk8Kgo7dAx7EYlErMH7PfjZllTyk dKrMSnQc+RlpV2sC+O/oHlQOJ5NW7mEuoxmKr1r6uXOBTLrHHQ3Nb/qXlhQxA/ko 1+NSC+3XytG4d622m5xHBA== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4gbp72bbj9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 31 Aug 2026 20:23:21 +0000 (GMT) Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.7/8.18.1.7) with ESMTP id 67VKFg78032987; Mon, 31 Aug 2026 20:23:20 GMT Received: from sn4pr0501cu005.outbound.protection.outlook.com (mail-southcentralusazon11011051.outbound.protection.outlook.com [40.93.194.51]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4gbnvpqtth-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Mon, 31 Aug 2026 20:23:20 +0000 (GMT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=K8tVffNgKANasgEoapzGt9R3EWEZ4xjqjJUwQcAzM8QwACfba2ew7Ko7tl0SnSutsi0p2EinAL/HCTfnK71GNQOxX6tQ2gYIn7iITx9kbWhcC6sW09ziOvnBPzYUJ4Jge85U6b+G1g+TkC0+3sJZdlLKOEhI/yjneXz9QUbVIb/VtgWnm0466wSbmJ4yW51/3t7lbqHnQ3QT8THz4GKKb2We3sl43ga3kbBSC9nt5SfmHYEH8D6spSIbCgLq7xASxrquSCPVR2XpPgQsMb7We9RaPTLrFdBuIB/TqRk9Tx2NSteGCrwIXv8EhYAUkS4gtn0fKBYMgoslIUIKJgzJ0A== 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=S20dGHKKS4wRGthBkiO1JlrzyRBsuGiJ35trtoHHkDY=; b=iFCkugXa6YA4fQsCprolfeTFpM38bAPGAHzzs3uVoJkR1NdHuX+PvjYF1nCK2XHAQ+k4dOTaWJx8nnVZApovWyzevj72rhhgFL2G6olbbjhuwiaYu7G3BY4xK2t4MgObjmNL5EYLlFgdwz9kgjtXcvqRgRV75YtuYB1xqkyhc1QbPn0e7VKiZq1296XoylLi7W08hZ/niihufqUndcPNWoT4+80b8zJTOtot88HkWfnm/qGpie1J0gjLGMNEue6dgRtbBgo/khS7iK0Fsm17f7V9bHKPtQWXJVPjvPdE27wCrqxYzI4/VOBAIq+CYtrVQOWFLj5hLFXT79hbHFosSg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=S20dGHKKS4wRGthBkiO1JlrzyRBsuGiJ35trtoHHkDY=; b=hursHWJsWlVNW7DcNxhX+5BGy0mj92d0SJXIQjXwC+QojHPxPkEwIfUwNMQ08dc9bp0yvSQE4TFXJ0Nknu3OBHXTA85jLCZABifaeRfk9u/2M+Sghs9vRi++59bK3poBOcBAJ9ED++wmP2Lnb8akjys7DmT6+5STkHJPCQ3wR64= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by PH7PR10MB6179.namprd10.prod.outlook.com (2603:10b6:510:1f1::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.382.10; Mon, 31 Aug 2026 20:23:16 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574%6]) with mapi id 15.21.0382.007; Mon, 31 Aug 2026 20:23:14 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pm@vger.kernel.org, bpf@vger.kernel.org Cc: arnd@arndb.de, catalin.marinas@arm.com, will@kernel.org, peterz@infradead.org, akpm@linux-foundation.org, mark.rutland@arm.com, harisokn@amazon.com, cl@gentwo.org, ast@kernel.org, rafael@kernel.org, daniel.lezcano@linaro.org, memxor@gmail.com, zhenglifeng1@huawei.com, xueshuai@linux.alibaba.com, rdunlap@infradead.org, david.laight.linux@gmail.com, broonie@kernel.org, joao.m.martins@oracle.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ashok.bhat@arm.com, Ankur Arora , Boqun Feng Subject: [PATCH v15 08/16] locking/atomic: scripts: build atomic_long_cond_read_*_timeout() Date: Mon, 31 Aug 2026 13:22:43 -0700 Message-Id: <20260831202251.305046-9-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20260831202251.305046-1-ankur.a.arora@oracle.com> References: <20260831202251.305046-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0160.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:ac::24) To CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO6PR10MB5409:EE_|PH7PR10MB6179:EE_ X-MS-Office365-Filtering-Correlation-Id: 750f7ef7-e699-4832-22a1-08df079daf57 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|366016|7416014|376014|1800799024|56012099006|10067099003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: BUmqseN4hGBccqeA8cHXGeJ9FFOVRE+FlxQ/sNCzMbE00i7qhnGSVxTSoidb/Ln1VH3jYOEUeHjwuaXi3EhllIJnilbSs4lWrKnDu/1d/iSPs1tmmTzc6f+sYKR0Zn60xNV7CozJaMOPZf759ty7d46QXmkZSAP2bb35cCm9MJQBbPUfrIkma8gLMsmHfSw4Bxu+nBpXbOFYLXLWq5mgZkTwI9FAMqXvggTpbIEw5VXWGY0YOWwskFytJ0U8ZGShC0tocRtS9IfSOwjekz5gqa/fiR2xB4V9imva+kiMO/t4GEl6lJ7gfHRiaOHDSjAezyRu7Opll4069gN2v5I77vt+iaJ5k2LgpwOTQIBRc8J7T7NNhCIzouTdn+3lwrgBzS8kSj4BJpm5bP9VJ5yAtstiL1r5UCC3wHkA7QaShn+Zhn7ZFZXTDHqXvABPBe0PCxlk1U0SPHgiYoH78KH9uCu6PiBC3xC0P70yNkYCOod9dJ4Vq6B+g+uzhuSccBxmdRi2nJ1HHqJhicCy8DueYqF2uKVK6VJXsVJwAZLbIOw37ldXOU/Zfh0TQELppVZjE8m9yvaB2bMA3kJUp5xKWgvAP2qdlOOyRweT+UKbcU87JvqL1nKaQekqDiC4WO1FKG9K/PenZr+7bqy8hRx/pAmLx9VIaJbdh4gHzvoKwh0= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO6PR10MB5409.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(366016)(7416014)(376014)(1800799024)(56012099006)(10067099003)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?EUXJg6NeohRvujTHyCL12yuSjrF549sVSfAgtwncuYOOiZZlhOpJ5N3MTLze?= =?us-ascii?Q?607JWw2/zCBQTnZ4hoqMboGGxR5wOO4Ys23d1ujDwr15czE9khugQQY6eWn/?= =?us-ascii?Q?+3SmvJ5mffTzjolxW6GqYFOVUHHBlQuZsZNhDC/xf1uw5rPgErXdcpOzY/UT?= =?us-ascii?Q?yIZxUOv0+gfttebI+6hZtwpXm3x6bv/I8VExHblQYs95FtoDtvkkmBNZJcS8?= =?us-ascii?Q?F6/b49/5cHgF2VfO7iGQ3w0OSDznrumEqT8KEf1kOGeO8kCVzdGZHC5kPfsu?= =?us-ascii?Q?kEfowFUdDpG/H32pymZG+X2BZCk3Aebbtr8jnOP6YRgBpzfYVeMac8ctKwGp?= =?us-ascii?Q?SiUt0MTAkeyOCcu9KBgxJlvyuEztXjjmUSlXH0TpqJi7OWkBi2zXVejHoJM3?= =?us-ascii?Q?4xU/PPwz/Jr/4qnVJZdrExI4bRQ+OZp4zDF9PfoF3YeDbqmSAylojd8S1umx?= =?us-ascii?Q?/SRHM+/4hZtq8An1MB9CC+iOP/cZBQTHz9wpxanpenKvm0uZ+M51dUxLO4Bf?= =?us-ascii?Q?kIwk3+Rj1maPHv3hGO6goP/75/G/K3fH3FZieAj0cUhDHYL57dbrsC2lOzGu?= =?us-ascii?Q?zbnKEVgmQCa3lH4rFFWElM5vwA6FUEbDAAv3z39GM7wZ4hLl1Cbqd31tFFYm?= =?us-ascii?Q?1dieE3qCM95xGaaLaAm4/1JZLiQss3yJxni0Rlx5YFgKsNkpeM6GnVigI2wk?= =?us-ascii?Q?vVPvas+0AdWE4i+6qZUAsoLIBuwZNUeyx6sV8UiSKhsmlkAEYC04tO9uV8oK?= =?us-ascii?Q?0AIwmbNPm9JbjD6AwpYowH++X2SEa586nV6FOeIfbqpXhr5ymmFa7SJmpatQ?= =?us-ascii?Q?XWKsTJ9lx+ZUiVqic8X+uRb09FX4ZC5+JKKh9Yz/AcIn1mHKDZEygSCsFBDT?= =?us-ascii?Q?HHEvhtaHoMa1g4nOrs1zMGoylVjna/bhidgypXJCxLNNYF7g6E0dokO3Y3On?= =?us-ascii?Q?LBdNZ9pUl8yBfkQkQTkW63L0qcyXcjFm/vGvhf+NvozRt5tNJhXXnbzFS7zf?= =?us-ascii?Q?i6MLP3vyC+NMd7siblnksrt0ieT+wvH3Xdl2g4Shi+CePrdZES9Mjkvl4iA2?= =?us-ascii?Q?GjvezER+yZzjy0tyb7qXH2e2H4/eLTkwsek06Nb5fpej69W9YMAmceUgzalN?= =?us-ascii?Q?qn6C2S6Cr4feRJ8qZxzASAqnODjR6YIsrS5iTmVL8rBIKheRMU1SHHxoeh7j?= =?us-ascii?Q?7SS/kLz7UuIwREhrQMaOrOkXx9CQwqyPEbxStPNofoxu9zlIa7brpkcK9SEH?= =?us-ascii?Q?cAO2GrO1ePdCiBa+bN9m+oiuIFcg1tyV+1BkqfeIQOjDJeq9mtrT7OmaP4rB?= =?us-ascii?Q?ildfyyqvwVv1ntWk1wXPSAKouCHoF6dwE2XF1x3TzIy5DFG1Tho3NtpWV+6F?= =?us-ascii?Q?KKeU6e+MiMeAkk79lc76iJMTIPA9gcHhVKYXFyVZ6P8BBiqBbvSQ4RDi/hCk?= =?us-ascii?Q?JS9P0N+jBq8vGtIcWeQ1egtZEjjKB8NbU/duaq4L9H45X9p2UPgykqpSQbcU?= =?us-ascii?Q?b6nmb09fSEkVwBCpNZLCQKXeEt5mlAanG1CcJqSJGEkC0xaoC6r6AhDtVamq?= =?us-ascii?Q?eRdIAJUouzvpScv7OwcAv/cJHXr5b/N9QFlPO/pVGCIzBzkLjlvRoOGKeywv?= =?us-ascii?Q?CU4lx5gPL3kPLC6f2xpjGeIllM8WI+t0mGGHFuystSMxxPAxE1My51hblB5y?= =?us-ascii?Q?/IC9NMwymA2rxDOM83qyr3QfyOG771oofO1l/ApWvXSZy6BTU5sFNGZo9L/W?= =?us-ascii?Q?o5F29rqFHz8scR/3bZ8PH/6VMvw5yiQ=3D?= X-Exchange-RoutingPolicyChecked: r8V+1Ur9QLhH5xJrodUqgz7SeQTP3SBdWPZYS5dVUIfgmCp6Klh/wuuD0mForMMt+dR6b3t3Fwz9Th7UKODu+lWUsM+KJF73tX7nTlLD69v24M7WR7tYs2rfLd/9FeIt6+IiDaU7JCFEdi8wu5KI/fZEYmBHCMwPVQdabUmry/rvKzoqzbe6lMZ3uCBwUlOoCfaUciUkjAIElM/WFplRNzK1wMQTixcGGZRWFSpbz0SyO8gVyOxQe59KufTMaAibNkKLG785yQzdQf7Blv7PQ3EWdXg4RCqLzFg3XZMYv3aCGeGDaTseu2rIfDyXPdKfOgCQBZ2pS1iL+c62woT5Ng== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: M6cfWqYSlTy7V5bmBG+35ObzHjUbN0Cha0BsrodX8JRfHJIsSAS8MpOLsUxf9czcSj3rLkENoJ7hjldz5PXcFDnL2fL019RM/KHuiOgOEaxx29GNLcs9QEUkGJrb4yNSVPwcjzymQyQjRd1T8ESXJECP5gxdqIpeLY+kRx3mIMEZWCyEmWCxSw1t3bjBjYZA5/HJvpzV4IxS85ffxbRWYurE+fyqwDg7LiWlhFQOA6HFByOQXdz7oMxSnihe7/Y06lW4xieuHJFAgM6wjuihA7SLrn2qy7eVn+OIF/WBBrjiaJgC2wY+cjr/IZuCY+XDhRi/2OkhH0y9IcLh+7EXjJ2WvepVcrg4W3iDtXcy6f8WSzTr/IrUY+AWVus5nNxixYFa5JqinnMd29IE0P5pdwkrUkhbjOdNoDsMki3FPsaF8jBM4t05siAptBw4vnukzme06gHffaRkoCcss4UNzcwDFxltqLeatgFZa6jc1AerSgPp8wWT0zZxfjjOVCnLUd8d2VWUMeVpuNQUd6xZDLbnWBWzv8Mvl5o4BI61OV9q/IihXcV8F8XSCUwI135es8YaSlDIysLID9iYw0/0Js2rLn3Ay5s+wGkPwMiPc9Y= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 750f7ef7-e699-4832-22a1-08df079daf57 X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Aug 2026 20:23:14.4352 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 87F8WtEzyvlHDJDlGer1xGYR7bn1lSgBUrBbtsVzb2Wp4wZkdVtK16Lw7N85u3oEPNDNbDfgtxyg3GcFR7/QmoHJ4XLxUq/F8Dj5EY7wd00= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR10MB6179 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-31_06,2026-08-31_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 bulkscore=0 mlxlogscore=999 lowpriorityscore=0 suspectscore=0 malwarescore=0 spamscore=0 phishscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2606160000 definitions=main-2608310175 X-Proofpoint-Spam-Info: AW1haW4tMjYwODMxMDE3NiBTYWx0ZWRfXx27kVLs+hOpw /ovWkXlUF8Fz92FXQDfxcZPlbUALoxSe8VEf6/9w5lNlkGa2Nj2FsrxViDbJSF+afCOLGa0XYCG Vhl4Cuvo8uaq+JlX5fDC6Dub+srxTva7nn+olhcL2y5omgRdznLu X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODMxMDE3NiBTYWx0ZWRfX6tdFocUIwdb8 Ny7EsyKEL+Z3ihhUpUliG+0PE209y3btoZw1BaBHQCcUtoyzWLBYuYZy+cVHkG/BVDBxmB+wNr5 ejOsZW/Cx5EpK+DwgENh3F4zLp3129DBiTGxBu31mSYYDUNTqrSzPUJ+6igxKYuQPOccT4b5MG0 ErsSteJ9Etjzh7B2B72r2GwaCyYV5EPdO7FO2MEs2O3cMfyBuOZWmlVDNW541xqzAEmXUPr4MdP ktMoHdwCWPtkMXjPJc73BMKQO8Vpb0hl7lzdm38df8uoK/kWWvf/WawnI5TziTnEaV5xBYxFOQ3 hJBQ2pezAD/59Ne35b6wssqpQNb9vArbXylPpzDpp8NV8YG7m6C0rXaECuHmJuSkbFwxWy8DB1T X5bBNYMfO8BZPBtw145wCLIDfNXNWMW6/oILrX4nClZEUT2HVFfwnjJ5AlIiJkVBeEOPmi1tvZw bTWloREM7m+HcG2QZt/TlE2Ygh3PgXJsan2v+LMM= X-Authority-Analysis: v=2.4 cv=G7os1dk5 c=1 sm=1 tr=0 ts=6a95e2b9 b=1 cx=c_pps a=e1sVV491RgrpLwSTMOnk8w==:117 a=e1sVV491RgrpLwSTMOnk8w==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=Sv0fKeRqtYgA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=jiCTI4zE5U7BLdzWsZGv:22 a=o5oIOnhZENCTenyL_yNV:22 a=VwQbUJbxAAAA:8 a=JfrnYn6hAAAA:8 a=pGLkceISAAAA:8 a=7CQSdrXTAAAA:8 a=yPCof4ZbAAAA:8 a=LKnZA62imwlViN-40TMA:9 a=1CNFftbPRP8L7MoqJWF3:22 a=a-qgeE7W1pNrGK8U0ZQC:22 a=5yU3S35YU4bGjq-dph-N:22 a=Bho9c0fBagfJEIQBS7DQ:22 cc=ntf awl=host:13521 X-Proofpoint-GUID: R4VJBAxKaYccmmAcz4l6QkILg-DiStit X-Proofpoint-ORIG-GUID: R4VJBAxKaYccmmAcz4l6QkILg-DiStit Content-Type: text/plain; charset="utf-8" Add the atomic long wrappers for the cond-load timeout interfaces. Cc: Will Deacon Cc: Peter Zijlstra Cc: Boqun Feng Acked-by: Catalin Marinas Signed-off-by: Ankur Arora --- include/linux/atomic/atomic-long.h | 18 +++++++++++------- scripts/atomic/gen-atomic-long.sh | 16 ++++++++++------ 2 files changed, 21 insertions(+), 13 deletions(-) diff --git a/include/linux/atomic/atomic-long.h b/include/linux/atomic/atom= ic-long.h index 6a4e47d2db35..553b6b0e0258 100644 --- a/include/linux/atomic/atomic-long.h +++ b/include/linux/atomic/atomic-long.h @@ -11,14 +11,18 @@ =20 #ifdef CONFIG_64BIT typedef atomic64_t atomic_long_t; -#define ATOMIC_LONG_INIT(i) ATOMIC64_INIT(i) -#define atomic_long_cond_read_acquire atomic64_cond_read_acquire -#define atomic_long_cond_read_relaxed atomic64_cond_read_relaxed +#define ATOMIC_LONG_INIT(i) ATOMIC64_INIT(i) +#define atomic_long_cond_read_acquire atomic64_cond_read_acquire +#define atomic_long_cond_read_relaxed atomic64_cond_read_relaxed +#define atomic_long_cond_read_acquire_timeout atomic64_cond_read_acquire_t= imeout +#define atomic_long_cond_read_relaxed_timeout atomic64_cond_read_relaxed_t= imeout #else typedef atomic_t atomic_long_t; -#define ATOMIC_LONG_INIT(i) ATOMIC_INIT(i) -#define atomic_long_cond_read_acquire atomic_cond_read_acquire -#define atomic_long_cond_read_relaxed atomic_cond_read_relaxed +#define ATOMIC_LONG_INIT(i) ATOMIC_INIT(i) +#define atomic_long_cond_read_acquire atomic_cond_read_acquire +#define atomic_long_cond_read_relaxed atomic_cond_read_relaxed +#define atomic_long_cond_read_acquire_timeout atomic_cond_read_acquire_tim= eout +#define atomic_long_cond_read_relaxed_timeout atomic_cond_read_relaxed_tim= eout #endif =20 /** @@ -1809,4 +1813,4 @@ raw_atomic_long_dec_if_positive(atomic_long_t *v) } =20 #endif /* _LINUX_ATOMIC_LONG_H */ -// 4b882bf19018602c10816c52f8b4ae280adc887b +// 79c1f4acb5774376ceed559843d5d9ed1348df99 diff --git a/scripts/atomic/gen-atomic-long.sh b/scripts/atomic/gen-atomic-= long.sh index 9826be3ba986..874643dc74bd 100755 --- a/scripts/atomic/gen-atomic-long.sh +++ b/scripts/atomic/gen-atomic-long.sh @@ -79,14 +79,18 @@ cat << EOF =20 #ifdef CONFIG_64BIT typedef atomic64_t atomic_long_t; -#define ATOMIC_LONG_INIT(i) ATOMIC64_INIT(i) -#define atomic_long_cond_read_acquire atomic64_cond_read_acquire -#define atomic_long_cond_read_relaxed atomic64_cond_read_relaxed +#define ATOMIC_LONG_INIT(i) ATOMIC64_INIT(i) +#define atomic_long_cond_read_acquire atomic64_cond_read_acquire +#define atomic_long_cond_read_relaxed atomic64_cond_read_relaxed +#define atomic_long_cond_read_acquire_timeout atomic64_cond_read_acquire_t= imeout +#define atomic_long_cond_read_relaxed_timeout atomic64_cond_read_relaxed_t= imeout #else typedef atomic_t atomic_long_t; -#define ATOMIC_LONG_INIT(i) ATOMIC_INIT(i) -#define atomic_long_cond_read_acquire atomic_cond_read_acquire -#define atomic_long_cond_read_relaxed atomic_cond_read_relaxed +#define ATOMIC_LONG_INIT(i) ATOMIC_INIT(i) +#define atomic_long_cond_read_acquire atomic_cond_read_acquire +#define atomic_long_cond_read_relaxed atomic_cond_read_relaxed +#define atomic_long_cond_read_acquire_timeout atomic_cond_read_acquire_tim= eout +#define atomic_long_cond_read_relaxed_timeout atomic_cond_read_relaxed_tim= eout #endif =20 EOF --=20 2.43.7 From nobody Sat Sep 26 13:47:35 2026 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (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 439AE396562; Mon, 31 Aug 2026 20:23:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788207832; cv=fail; b=kLVQLZkBACmKEQCs1GNVrCUV5xJZWc/1Eew/aRkxrEWGD4B6vONSWEOyog6UzY5KhbG4d8V3eBbiBIfPkVrKYOkXaU8QvfppauEVDMHYpJzb057ENwtNUBzgWdRc9eG62CekXG+x93cpmHR69SoyB535MTLSSTFTPSubbd3aJzo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788207832; c=relaxed/simple; bh=JsCeTIBiyQaQFX5gS1FnXO70lc5QbiOSm9Vha1G1Od8=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=hgEHQmT8CLDn5DPPOnrSFwUbK1QOAQ8JZpMiz408ifD1P9NpY26eL0FTUBzjB1I9Jn7pAsJc53k7TrYtcqkrxt9X5Cf23U83xfuDVj4xuyDRYLONBoq+L5lWl/ORnraKHedo4Gzh35jKpcNq0+Xg6KnNZvuhyJBEzgyycfsIsOM= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=FSajAyj7; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=UUylGkmH; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="FSajAyj7"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="UUylGkmH" Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67VGBpWU1799641; Mon, 31 Aug 2026 20:23:22 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=5Uky4nup1PUr2N4RqDxNphYdeI4VFHFKuRHo2tseFYk=; b= FSajAyj7CWpuAFJWI4jlSUL1EULIZaolyBDdKrAFYMGtmLJtZZnKNmi0k3prdKC8 1gRp2q2o1t2hynyrokqdcfJw+KM1OEliRIyPR4D3tYVHr01eoNflU7ulwrjraRoL P/JvEgY+y+LY8GHZJsxS1xVzKFHKaEm9I4L+n7Mr9VcETrombat6h1HDLD0VHIkM /MF7AA3JH0cH/Va0+ynROi2ZQK6Malk1EPmJgjPMxv7KOT8gkUurSDa1g38c5HRr MHMCd1vzSS0lg4YblczAjD/RVu9tRzXgBHl1zUARWy0yr55V678Hl2Rlzughu0bF FD3swGW4oFpk2pqVTNCPAA== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4gbq1skb3f-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 31 Aug 2026 20:23:22 +0000 (GMT) Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.7/8.18.1.7) with ESMTP id 67VKFWr7002916; Mon, 31 Aug 2026 20:23:21 GMT Received: from ch4pr04cu002.outbound.protection.outlook.com (mail-northcentralusazon11013052.outbound.protection.outlook.com [40.107.201.52]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4gbnvpkddw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Mon, 31 Aug 2026 20:23:21 +0000 (GMT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=s2QEuSoGbAjY8ngOORZZpRXAreVj9+KhOUNE8HLnAf/W92H81b7tp50hcZSduAZx28VEq/kCiuz51ARwB58wgVwS7KGu4Iz4tC3EeDdcS87lI/tW6H/+UbT/K7wqC33JW3lyeIJ4E6LNfr0CJayCMsQyot84hhT0rlIdJ1r3/Ov/hoY5ouaA3NVr8r2RqU98XRYSeLUP/VxO5LyIUw+PGPJdwK2DzoHo2U5N7Q7c9aF4Gwmo642v0Suc21geBHKcG8Hama/d7WCxBX9NOf/zpBTIOxfR/FiKjMfyRMyzj5ap1DJ8Mv+3M5tuOjax/rF4cGL3AtBNwlt1fle3Jhg3Cg== 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=5Uky4nup1PUr2N4RqDxNphYdeI4VFHFKuRHo2tseFYk=; b=x3SNhTr1r8J2eJ0UgiwDd8luA2xqRmDYyDc42LeJGI8ahcSst6lYA7iTQCzEhZ9Q+TqWsmfrf66ZyELVwIgF2jocaEjpEg+AMgHVanYWK2LIA93TLTPW1ynb/vAJMuc8GfR+uS2T1A7ESGpGYnukvQFBT6K4kXj4IE3eTvsIFJnkanajj+8xv8CBzz1kKxMET8pDYr8d0MZgt9+tSeOeRMRvcwRIPItZDiZU9OP4dn5V7JRREt9uXPRaw8x8W2y4UwAUIznhNYQzerWerzzPoF2v5ncAlCbgb7ZWVZlYCTPXO4fEjYd8NBUUD3IpBm4IY2WIK3C60jFp0Lt8ZYj35Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=5Uky4nup1PUr2N4RqDxNphYdeI4VFHFKuRHo2tseFYk=; b=UUylGkmH+YBIcjZPgTdGxIpTQoLBYr57UfDR8WGkdOUrsMNiLotdN5yD3u/CmZH7Ui7A1SH4tqznalsmRWxq6t40AtfhGcgsi5Q11+TN7SG1hWc9KETfB+Trv7RTlH/P3EiMwVJhIjIm2b8iMlY1pRyYsmaYlh5gukuCE7PlCvc= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by IA1PR10MB964822.namprd10.prod.outlook.com (2603:10b6:208:5ac::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.382.10; Mon, 31 Aug 2026 20:23:18 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574%6]) with mapi id 15.21.0382.007; Mon, 31 Aug 2026 20:23:18 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pm@vger.kernel.org, bpf@vger.kernel.org Cc: arnd@arndb.de, catalin.marinas@arm.com, will@kernel.org, peterz@infradead.org, akpm@linux-foundation.org, mark.rutland@arm.com, harisokn@amazon.com, cl@gentwo.org, ast@kernel.org, rafael@kernel.org, daniel.lezcano@linaro.org, memxor@gmail.com, zhenglifeng1@huawei.com, xueshuai@linux.alibaba.com, rdunlap@infradead.org, david.laight.linux@gmail.com, broonie@kernel.org, joao.m.martins@oracle.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ashok.bhat@arm.com, Ankur Arora Subject: [PATCH v15 09/16] bpf/rqspinlock: switch check_timeout() to a clock interface Date: Mon, 31 Aug 2026 13:22:44 -0700 Message-Id: <20260831202251.305046-10-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20260831202251.305046-1-ankur.a.arora@oracle.com> References: <20260831202251.305046-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4PR04CA0139.namprd04.prod.outlook.com (2603:10b6:303:84::24) To CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO6PR10MB5409:EE_|IA1PR10MB964822:EE_ X-MS-Office365-Filtering-Correlation-Id: e37a1556-6fdb-462a-fb09-08df079db1f1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|23010399003|366016|56012099006|10067099003|6133799003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: j86VMZmSjx6c5JFKFqoDoQBhZdiJ7pf3/RpIA/9rqVyt+4oSHiDzrTxj9ve5TlZYzJ4R9dg18P9Q5oeIPz4Pc8VWN4H6+GhNe0eVb7IsJFXw+JGH6tmfyNf9JNqk4zWYFENrPDdmtZFxvojgTz5TiE9nmsneuwS92S+/3tulICzEr7xaM8nF/TrJHqU12PC4HmzpjQJlZ8yTVue0SrSeLP1778/PYyRLZt/ac8mBe3mBfZPYncCCL/AFsARkKuYydf3BabE7YpgJA7NJUDF0q9PxhAiYRXLepkQFbVSiKsJjrwvvl9A302eh79sEudE1IehwItk+x1jJXjIcC66C/skcE8TySKzXbWw6DeUwisEkw5wQrOrfBIF4tMHKzlCHxox9TMNYTTam/bvoTXHAcpf3QkhwLJKv9YdmTTYQ3sehAfDpEdNz0C2gpXYHyhGeQ9fjB23NTMWdbIgejZqISe0ORiVcPErMP8S3UXarkspNqwcdZnXglNXgBCH67K8q7Meiw3ufgMqTxz4bdvTZ7xVH2SPMfkPc/O41Xq236cK4jOhWtikc6HkgqsvL1/nqm8uoaiLDTU6c4Xvq59+GSiVXe3kSmnG09c70gNpsaBMKzznbmh4Ewi4S8AKYbOrSW+zcatkOTcjTaHRh+We3Y267qdLVZzElBw7aD7LHoQw= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO6PR10MB5409.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(23010399003)(366016)(56012099006)(10067099003)(6133799003)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?GWeubgj9yRwirRcz5x6bBw6YK+YzoVHXfaOSyWL3ij6xM7cmNU4gaOL9V9q8?= =?us-ascii?Q?uzzS5b1tcpwvVTacbjsniYCCx8N9VElm4o6V3gKy1kMpvADmT9xzrqqHG+S4?= =?us-ascii?Q?HUvBZGf1m/c2r8DNf9AHiz/pxHSWjG/g4oLIkm9ANRl/aKqyQdg9Bc8EGTeT?= =?us-ascii?Q?+Y0pGbw1KtcsDg1DjZp2JYLbAG+kflh+HfKMMAOSAmWA+Qtf0SI8q6eqxBnJ?= =?us-ascii?Q?u4hfRrNqdM4t60mhKDOxfMaQmnSaDCOTL8WUxRYyALLIM24HHuCfNDlmfTD6?= =?us-ascii?Q?rXRzBio2DUX7i7pmKO2+Mx2DZVJHC13kGnhNu+BCuLvPINlcLc77qEYMGoq6?= =?us-ascii?Q?C+6mQcSNApN/dMaD3bP+QmIiJ3Wt1xDQJWqq5mNJ6lnfvNP3EYiFt6bRnQKq?= =?us-ascii?Q?Lv3gUtwkPFjEL8SzuSFgKEcXIpHYtf7/TXyW1S2bLzhi590NQygCfPl/jAi4?= =?us-ascii?Q?h/eZlf62O6uvqjLU9fqRh71yW0pzx7o7sjUwVTx6d1RhNzPQ02ZDvRSkzSuY?= =?us-ascii?Q?OSG81P3zxcqwL6bimYjBQuUHRZ1TAmzB+Xs+SkfKeixbKBLcbVoF/qnKZUp5?= =?us-ascii?Q?cS61VQXfQQw9cYKCW1D8uR8ipNqAL7WvjM6r5pv4Vr6hyaGb7V92bB1NY7gx?= =?us-ascii?Q?Z0/G0Vtim9V7eMOmE9iY6kgiipCA31iMfBw7j4SCiCEZ8GzFoGIrdFF/59cA?= =?us-ascii?Q?i33pHQ1+dDYbMP+PLmfgo9hEqh1nc9qmjyxIBBzW+iNhbpivdcbS7+YhnCAu?= =?us-ascii?Q?ldFTJvd/7U/Icjk/wri7tNznm/VHtufDlMVEZDv9DL2bdC1rUZgxQGLC3qEp?= =?us-ascii?Q?ym4R51CjozpGTAH1m3NNNViWGghiNvlzpvYK83ggk0I5RjVvus2XoSGsJ3mW?= =?us-ascii?Q?l5BP8X1o/FBnqRQ4mx6ilh7iXxgMqu0sHMGY8lI1/helLqeyHqmgx7zxCvcX?= =?us-ascii?Q?kQo6RrSJ1sli4uR2uDCG2i+sXQpZ8m0uddZ2L0HMcU0r13NsLutC4b1vtAwZ?= =?us-ascii?Q?CCYzhnVRtt/K6QH+R8rXllJ88mmFuyfS8zlmpA1Ua8RF57g7cUU9/bMTiS+b?= =?us-ascii?Q?Zpy+iCGY/R22gkkipBF470Ciw6x6jLMq8cpTiAJ7ORMHXJ4H0s7KZ7Rie8eW?= =?us-ascii?Q?4PeQmneP/Nab4+RvysHNDly+nIgO6JnRCrsne1qjhKz9T38doco2xAwrm5MP?= =?us-ascii?Q?T2NXAOlMb5JEW3whU56eJJDADyuzLcneghF8Sku5zhqKv35M420fwOSPIDug?= =?us-ascii?Q?ivXs9odjBCSMmH5oqgCMoEVtV7CjUZr+0xlJ0q1HUZHPOUiaoLJRRSexAhkw?= =?us-ascii?Q?oRFeOmWnZyEFw+yrlZjJV72lLJvA/sfALKS7FWgz0f56vD7eqJAK2owvvpTx?= =?us-ascii?Q?OR3LaKrBW+v7u9S7hPXrfEGgNrLSZKb5zI97OG8GgPPeisx1pQQ5BSB+FBIr?= =?us-ascii?Q?wW7jAeTA1jU1bMpZs/Nub4UVPFUo7o3tj5504fw5szK9DMeFl/gd2m9o6hJd?= =?us-ascii?Q?3BLBhE0pjSKXlfO0CLehprW89iWhZHoHY/PEdKlcAbOY8U4HtiisLGOdPqPw?= =?us-ascii?Q?/yvCECxocC1yl1o52yojY7wxVIEKYx8IS3sJhPCgWr4oJP2SCGn9FXomm6DV?= =?us-ascii?Q?Sz9HJIHskjdqbJFul5sf4BS9tqLEL0HXabZqJ7cQfmPiYlLpLwdjIWtgE9H9?= =?us-ascii?Q?ILBzc67fzYtiFLaHpNZTWTSJayvJRAJx8y3vK8+479u4dscO+qN2i3d5dd5x?= =?us-ascii?Q?jEP/U3Ay90Iz6z9zItP4LSjNfN1lVtM=3D?= X-Exchange-RoutingPolicyChecked: 0P/YAngWXkv5HoDLGlwVgJOi7bk9fZX0zztekSKlILxgHtaEutU2Dlv2aCyCaMEmbE7rOB+hZn56lmmTrh7LUYM+8hhpY6VDa4hBThWkKEJ320Q5la9BvtMOH14tYVo+JAfCHGqpGGI/EqAeo81hcpn03xdSEh7o+jY/SriDUtkQ7Q+Ay+W9n4nfnXkpRCn2w8gNyPpeftfepJj7ccBW+i/lADMvEjJQ+KORvz5ecC9AvkqCWWiVEUM7ySiO/zmDiutsXsQq5mKX9s0qNnSr6xU778vu0KpOzB2pJFm6gJMyrnonOpYTGOmEQd9ffuKy1s6JqvtqirMdoacXM29GOw== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: K2XuQE93owzJ4T99EO+7ZFpzip37tuLKThvUkfkooXWCGkdy73U0GDYz6ssASDCPzr4vugFllaz2wY6YfpbYuTD0WpVftwL7Ag7WDKrUHM4fk28kBeBDX8/qS5zLzNVLt8m+gCIjXaDaiPBFSkdEDPoZSSZOcqcEvZiRsJlPP1pFLt55yqsZ5j8MsOWHPpqYsOHJQjymWMrIfIK7Q+JOcsWAUjpRaopRueGh13I4TJ5z/0mjubmB2VhSsjwXe8eL4b+HC3MOdRiXv4p59vWCjtPacP6ZDeeENQz3Q0cX01qSAOEjNL+CBK5B+C7yxA8zFVSqREqunM8M57nHIpu4NJNzB/SzYv5At4FySa8oMaafLwR50u8T/IHmJ40M10HwsZUw/7Nm3vP6AfA+NrMNr9vu7yXVMx5jU2xZbhzLMy8uXXaHyKCWbK6DAT9WVh3U5kHmmQLCCkzEGVqzPY8Tv/Dz3LOuJAMeup2JS8uJBlAWE3DLznWWJlzpeaQC0X6oZzlTfRgmahonFdUBV49TjzpQ07P58595Ar7uf6ftPmQ0Ra+1r0QhpnJcnJcqwUEkP+giMapVKNmoqpV84ZUAwbiWjfed7S3MeQhbICbCX/Y= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: e37a1556-6fdb-462a-fb09-08df079db1f1 X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Aug 2026 20:23:18.7633 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: ooH0bQEAJW+Q/0S9efN6KUEVLSyPXWA6GYnU5ziLNxOVp/5dPv8u0W5mWhQPIL+tmbsosfOSfkGJfBhQhQQ6wq2whM/187c+BD/S/asQ/hk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR10MB964822 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-31_06,2026-08-31_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 malwarescore=0 mlxlogscore=999 mlxscore=0 spamscore=0 adultscore=0 lowpriorityscore=0 phishscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2606160000 definitions=main-2608310175 X-Authority-Analysis: v=2.4 cv=Vp0Txe2n c=1 sm=1 tr=0 ts=6a95e2ba b=1 cx=c_pps a=qoll8+KPOyaMroiJ2sR5sw==:117 a=qoll8+KPOyaMroiJ2sR5sw==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=Sv0fKeRqtYgA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=jiCTI4zE5U7BLdzWsZGv:22 a=3I1J8UUJPc9JN9BFgKH3:22 a=VwQbUJbxAAAA:8 a=pGLkceISAAAA:8 a=yPCof4ZbAAAA:8 a=LqkqbBbWekfmbT-3qckA:9 a=5yU3S35YU4bGjq-dph-N:22 a=Bho9c0fBagfJEIQBS7DQ:22 cc=ntf awl=host:12102 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODMxMDE3NiBTYWx0ZWRfX1dInFC/6RY0s xwLUtlvPwih9tLMDooIg86oPcGjHzmqJCrx5fALrOOKMCSf2UVlHZFwexDIGD0QJF6taTb6KL9c NBgkozcXMP/ImEF/QEW6aEyVR/tYdphHN/YoJ7/V22KdqpIU/7A21Tck2cZ3jK6mL80Bh54esnq tkY82zir8so7aktqXuqF3FlwVm70baWUqqvOr3x4tdGj/xyHOgFAyfDvmlAPgFCHf0DJ5z5/6rn V3kP2rM6APAFeJfKujf0tIrpcrh8iPJmY+VNL7jF/L9etFn3fHIcLYooqSilnT4gEqTajGFptj5 cqUIr5R08MsqVPID+n3wnSNLEvvRxvm0+m55gtuIcoGLzfl8L+wB893AknMKZyzJG6jXL5ClqCZ VWSAcT+6v4Q+BOts1HQ7qJUOoPsH3UJ79K0T3v8GEcPFQirgMgfl+xqCMa/JlfhGNPJKe+3QWRi atbET9SVUaCu5ZFybnZruN7MI1uCEW1HdgYutMp4= X-Proofpoint-Spam-Info: AW1haW4tMjYwODMxMDE3NiBTYWx0ZWRfXwxNeYLUSLfme FJDPwPLJd3dMYlvXz8CEI0zP+wcBEU9/RG2NjlXKtMk4rXsfr8OAVJF7SrCFQlJXPYPUV2HePrI OKIpQ9W5fl7uMzgRxezjGHs4ltBI8Lpgn/kv9vbH16YMZQmZDRu5 X-Proofpoint-ORIG-GUID: dP_K53jZxJc3ShcvmGO-ls5yXLOsuwWf X-Proofpoint-GUID: dP_K53jZxJc3ShcvmGO-ls5yXLOsuwWf Content-Type: text/plain; charset="utf-8" check_timeout() gets the current time value and depending on how much time has passed, checks for deadlock or times out, returning 0 or -errno on deadlock or timeout. Switch this out to a clock style interface, where it functions as a clock in the "lock-domain", returning the current time until a deadlock or timeout occurs. Once a deadlock or timeout has occurred, it stops functioning as a clock and returns error. Also adjust the RES_CHECK_TIMEOUT macro to discard the clock value when updating the explicit return status. Cc: bpf@vger.kernel.org Cc: Kumar Kartikeya Dwivedi Cc: Alexei Starovoitov Acked-by: Kumar Kartikeya Dwivedi Signed-off-by: Ankur Arora --- kernel/bpf/rqspinlock.c | 45 +++++++++++++++++++++++++++-------------- 1 file changed, 30 insertions(+), 15 deletions(-) diff --git a/kernel/bpf/rqspinlock.c b/kernel/bpf/rqspinlock.c index 111ec80ea958..1b249c6f0674 100644 --- a/kernel/bpf/rqspinlock.c +++ b/kernel/bpf/rqspinlock.c @@ -196,8 +196,12 @@ static noinline int check_deadlock_ABBA(rqspinlock_t *= lock, u32 mask) return 0; } =20 -static noinline int check_timeout(rqspinlock_t *lock, u32 mask, - struct rqspinlock_timeout *ts) +/* + * Returns current monotonic time in ns on success or, negative errno + * value on failure due to timeout expiration or detection of deadlock. + */ +static noinline s64 clock_deadlock(rqspinlock_t *lock, u32 mask, + struct rqspinlock_timeout *ts) { u64 prev =3D ts->cur; u64 time; @@ -207,7 +211,7 @@ static noinline int check_timeout(rqspinlock_t *lock, u= 32 mask, return -EDEADLK; ts->cur =3D ktime_get_mono_fast_ns(); ts->timeout_end =3D ts->cur + ts->duration; - return 0; + return (s64)ts->cur; } =20 time =3D ktime_get_mono_fast_ns(); @@ -219,11 +223,15 @@ static noinline int check_timeout(rqspinlock_t *lock,= u32 mask, * checks. */ if (prev + NSEC_PER_MSEC < time) { + int ret; ts->cur =3D time; - return check_deadlock_ABBA(lock, mask); + ret =3D check_deadlock_ABBA(lock, mask); + if (ret) + return ret; + } =20 - return 0; + return (s64)time; } =20 /* @@ -231,15 +239,22 @@ static noinline int check_timeout(rqspinlock_t *lock,= u32 mask, * as the macro does internal amortization for us. */ #ifndef res_smp_cond_load_acquire -#define RES_CHECK_TIMEOUT(ts, ret, mask) \ - ({ \ - if (!(ts).spin++) \ - (ret) =3D check_timeout((lock), (mask), &(ts)); \ - (ret); \ +#define RES_CHECK_TIMEOUT(ts, ret, mask) \ + ({ \ + s64 __timeval_err =3D 0; \ + if (!(ts).spin++) \ + __timeval_err =3D clock_deadlock((lock), (mask), &(ts)); \ + (ret) =3D __timeval_err < 0 ? __timeval_err : 0; \ + __timeval_err; \ }) #else -#define RES_CHECK_TIMEOUT(ts, ret, mask) \ - ({ (ret) =3D check_timeout((lock), (mask), &(ts)); }) +#define RES_CHECK_TIMEOUT(ts, ret, mask) \ + ({ \ + s64 __timeval_err; \ + __timeval_err =3D clock_deadlock((lock), (mask), &(ts)); \ + (ret) =3D __timeval_err < 0 ? __timeval_err : 0; \ + __timeval_err; \ + }) #endif =20 /* @@ -281,7 +296,7 @@ int __lockfunc resilient_tas_spin_lock(rqspinlock_t *lo= ck) val =3D atomic_read(&lock->val); =20 if (val || !atomic_try_cmpxchg(&lock->val, &val, 1)) { - if (RES_CHECK_TIMEOUT(ts, ret, ~0u)) + if (RES_CHECK_TIMEOUT(ts, ret, ~0u) < 0) goto out; cpu_relax(); goto retry; @@ -406,7 +421,7 @@ int __lockfunc resilient_queued_spin_lock_slowpath(rqsp= inlock_t *lock, u32 val) */ if (val & _Q_LOCKED_MASK) { RES_RESET_TIMEOUT(ts, RES_DEF_TIMEOUT); - res_smp_cond_load_acquire(&lock->locked, !VAL || RES_CHECK_TIMEOUT(ts, r= et, _Q_LOCKED_MASK)); + res_smp_cond_load_acquire(&lock->locked, !VAL || RES_CHECK_TIMEOUT(ts, r= et, _Q_LOCKED_MASK) < 0); } =20 if (ret) { @@ -568,7 +583,7 @@ int __lockfunc resilient_queued_spin_lock_slowpath(rqsp= inlock_t *lock, u32 val) */ RES_RESET_TIMEOUT(ts, RES_DEF_TIMEOUT * 2); val =3D res_atomic_cond_read_acquire(&lock->val, !(VAL & _Q_LOCKED_PENDIN= G_MASK) || - RES_CHECK_TIMEOUT(ts, ret, _Q_LOCKED_PENDING_MASK)); + RES_CHECK_TIMEOUT(ts, ret, _Q_LOCKED_PENDING_MASK) < 0); =20 /* Disable queue destruction when we detect deadlocks. */ if (ret =3D=3D -EDEADLK) { --=20 2.43.7 From nobody Sat Sep 26 13:47:35 2026 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (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 78F653B813D; Mon, 31 Aug 2026 20:23:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788207837; cv=fail; b=JvKlOL6dM/Ewvjfq1odxArekflkUS1hHhl96NTJVAIHwl5O88mwTJoucPcdG73CyF6cjJU3Ib9OK2dj2U+APKFTJR0kQ73nz6d08105lP/+Zaz9ZieWcSqUD2KdBQSid6ANfdM8V3zXX1TaiGa0EzHW1ZeqzCUNhINcVAm9+AMM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788207837; c=relaxed/simple; bh=/RmLj2rsEqNqE53Z65zqEUnrW7ZYL54iQA+x4EOH+Vo=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=LsXG6U4bpsG1Wm+jyd83XDwluzQrJERhO0jWB9g3KRn/Ive1uW3lYcYvmesfgb8BfIRSQzfW0PFjgRkGjobgp7uDeNDq33MtAOs6RifwxR0lvUUWWoE8/NnpUkEPKKScU2aT4Ut/9MMNQDD5jhiXZoqI6i6N42OuT3PYshTHJUM= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=bkssnKx/; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=bwEixmXg; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="bkssnKx/"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="bwEixmXg" Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67VGBhKP1799373; Mon, 31 Aug 2026 20:23:26 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=d0AtsFZrrW2zUrwyO1RIKoPj5qmFKDCDI96yDNbbACM=; b= bkssnKx/YxlwbDGRR/3aDtZjBWmLamYcohBbHwI7haP4s5HhXnBjFnVtFPk0ytq+ KJKP59Xk8vbCtpFNcz0zwqHsWvh8MES/qHkZAf4iZwc6m+f7LapU3tUJYISu7R/H B/tPiUSzatFReuFCXJqz2BWulN7x3PJllql+3U0g+B9X04UV0O6ihitfdBaWRoYZ ewqJFd2zX2lMVipWV4ebrSuHozCA6VdLNXprg4blwmk5k1eYaF0clQhQTnZQtIFH 5CspyQYuyFUhQSSVtdf6sQJ37//aLIM/Jzxzhhjbfqrrukkc/VvJpkRECInESJd7 bgAfhiezTjiQuMsOvJC19w== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4gbq1skb3h-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 31 Aug 2026 20:23:25 +0000 (GMT) Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.7/8.18.1.7) with ESMTP id 67VKK569033202; Mon, 31 Aug 2026 20:23:24 GMT Received: from ph8pr06cu001.outbound.protection.outlook.com (mail-westus3azon11012049.outbound.protection.outlook.com [40.107.209.49]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4gbnvdc4s7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Mon, 31 Aug 2026 20:23:24 +0000 (GMT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=G5trtmEqebMM4KW1DJoZjqRKJwJgJ1+oddOULAMf8xR9i1F+J3/qPudwFUF0eFPQk2cdn72+BSkCTUrdzuqKnWOBxHSS07soqnypHYXuz1pCdoswv/0azVb2eonbm6qsa7jVaXynDt0bgDq8Jc/XPvZbgE4+V7tY0+ezjCurSa24UO57xTemBMjcgGHAdZogVGrs21WuHSFsiZwRiofUR0C169catdgyHVl3QPnkKqKPYmNaTzoBBNicqh2bSbU9Td2Z1AnBDb62FB30KD8yew5QIX2LFaEzjGPPsaIp+QDXB7TDTqbjkVsVJdVdukKmB1cnEMfbCfI/V/aRtsUPLA== 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=d0AtsFZrrW2zUrwyO1RIKoPj5qmFKDCDI96yDNbbACM=; b=JY4nvfdioeljEsEVsfhI834RtNR533QGyl7oUzzV6OOi/01VLOY2D6I9v+yjfjnWjM8QrFhJBJyt2FhSAkyHRvxfudrV2lUDHmhRTEl3am2G4nFyrQl4FC0fbmFJoANG4u3T2tBmgGymzNhEICl2fohkctGWjFp1wVFZ0w6AewlMGNvOFgchrEIFa+vzaafzfsoDVhZRq3vsJ+ucOddQ4DMjNITNhGDtrrnPWHISkFZX5UvzY0waO6C9Vd6Rl/coyQVvbP9xMCOD085OWQJDeNqe/IRAt1xUNaeEIQUfA/nPZM4N6q+FM2pSXbJ22cbXlTgDv3g7ALVHsJhQWcioSQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=d0AtsFZrrW2zUrwyO1RIKoPj5qmFKDCDI96yDNbbACM=; b=bwEixmXgvRXp6wVb2/r1L5t3OkTa+pBtB3DDhXyOE8k2/Bet1ee1zkummV/lq3pSm56f2TILnTS76RFMnRoVOcE6+UyiH5HjogEHorSWGPZjZkpJDw6mwR5ty27oPiaJo/+DNnLVq2DNzPKFElqkwnYGaxkhd/w1K5WupkZxkWw= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by IA1PR10MB964822.namprd10.prod.outlook.com (2603:10b6:208:5ac::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.382.10; Mon, 31 Aug 2026 20:23:20 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574%6]) with mapi id 15.21.0382.007; Mon, 31 Aug 2026 20:23:20 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pm@vger.kernel.org, bpf@vger.kernel.org Cc: arnd@arndb.de, catalin.marinas@arm.com, will@kernel.org, peterz@infradead.org, akpm@linux-foundation.org, mark.rutland@arm.com, harisokn@amazon.com, cl@gentwo.org, ast@kernel.org, rafael@kernel.org, daniel.lezcano@linaro.org, memxor@gmail.com, zhenglifeng1@huawei.com, xueshuai@linux.alibaba.com, rdunlap@infradead.org, david.laight.linux@gmail.com, broonie@kernel.org, joao.m.martins@oracle.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ashok.bhat@arm.com, Ankur Arora Subject: [PATCH v15 10/16] bpf/rqspinlock: Use smp_cond_load_acquire_timeout() Date: Mon, 31 Aug 2026 13:22:45 -0700 Message-Id: <20260831202251.305046-11-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20260831202251.305046-1-ankur.a.arora@oracle.com> References: <20260831202251.305046-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4PR04CA0172.namprd04.prod.outlook.com (2603:10b6:303:85::27) To CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO6PR10MB5409:EE_|IA1PR10MB964822:EE_ X-MS-Office365-Filtering-Correlation-Id: b5d9e06e-c580-420e-6364-08df079db2d0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|23010399003|366016|56012099006|10067099003|5023799004|6133799003|3023799007|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: MYM1PpgdtPvLPx22+nSM20Zge1EToDr+Wh3oaUlOSvtP1uR0cPmJ51DAYagXmeL4y/y0ZbMRmmBmvkVGNc4trHvISBBgf7G5qOA/p7nYHDQfSAn7JgCBsuy21fFHmERUIP76YIa5tF4ceL6BFkgb/JqY4GJObTeXF7JAw9Vco5GEwoN6sawqZmGE9HBXGtgcpXBcpf3hRA2Tp4/x9jXzrLicf8J9JA9FMaBUNhUipKOPo/kvQXyyrnc7lHVNmKcfOr10cnXI1eZzB6pSzvxMKmjCs49FhujUPPw7MVYUlO1+7hNhaoTvVCG1mzZr28ycj7UUD7XSNOAghsFtDEYpA9qWHn7e27FKLE3xaFp7IFTaggw705VlTxJmXRMzRq/t8fozxrwl/i8LNDsXJVJ3VWBK6Nkshk5K6/EIzcSD9dws5u9K/ybSiI5vvk6Po0IpANJE0HQx1MGXMEx7lCXRF9EtdqXORT5Po0bI83x8D4A7tmWwGZAxYCrT96mMMqDJdtOM8vnpKLHAtP2HTzppsEv3BN08rhHhQ0PifyzAEUgBteS9+GDCh4KkgvFPdkpFFOakb54FfbybtoX7UKpUC0jo1zwvxsAmAU5HNohkIv89L9SdDZnII4JYJBrBxYO4ZWesRrT3gCq2Wih9B3+bbcQ+Ot9EbdnoxVNYHLY7Hgw= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO6PR10MB5409.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(23010399003)(366016)(56012099006)(10067099003)(5023799004)(6133799003)(3023799007)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?WjlJKDTX8xZ0+a3YrXNKyOjLLNAQ+7r0+CVhFQ3Xn+FjA/ttnBJY9PoZg5Hg?= =?us-ascii?Q?tgg0mlSqLyca09Pe0UYnfs45HQU38IHfBxQQL2iS716Gh46QvDNjvNyAQTBN?= =?us-ascii?Q?Fv8+1Er05pkquAnIK6dtbwXNjBJGnqrjlEu9JCK3Q91xWAPwVIJ0BWz9QE4g?= =?us-ascii?Q?f3QfmwEvz9+iYEA11m+st52AE6EZhePLP9maNhOAfXE6mMDoPxx3SiqJmIyb?= =?us-ascii?Q?jLCm+c7F9MUp68CABxMbVWiE3mg9drlPnprOoIfXtgkDaHE6y4YzT+NJVfb7?= =?us-ascii?Q?Grjw3BEvb7lwYbRHUAdo6KZ8EH0obFNdFiNWthxHjj8Z6HeVvTQ8qLJCkxfW?= =?us-ascii?Q?xcnuq55PwZn7ar9WY+3A41LlBLTPz+r4xZg+YqxTvihB5GTcJ5J8qCF5oo6y?= =?us-ascii?Q?C9xs4CZIjPQ8BZxr5e47DFV5+OPWFm2HEfHzOSmFa8MZO7e0lTPnJ/hZw6i7?= =?us-ascii?Q?g33a7JtaLjCk0XaCSPl4Hg5AzWywA2QYer5cqBOPoBADeAjbapYLWK9js7/1?= =?us-ascii?Q?ThVf1IO1lL9noBYOGWSzXJojY0fV1OV5ydXB/sbl5H+AIn5m2ICIRklRddLD?= =?us-ascii?Q?YvlYIeMFoWpZ76SfhLJIgErhk4jU8J+TMhul4iGcNy+hqb/OG9cDnWf4DXWc?= =?us-ascii?Q?XZYGL07G8p4i8l2EbWfjR4hRFPH4dyJsp1Tj7FtLLtCLGOI6dKSN3xb2Pl6P?= =?us-ascii?Q?ogo/GGwpkkUmxhNYRdLp5Uk0CTvCkvlQJeFR7LrbdXj6G0YUOdycH0NFscF3?= =?us-ascii?Q?FpBD49A6bbbBJrhaJl1moP1jHaHezVhWwpeeheLl9SFOE6FNacj0Gz6Nmb2y?= =?us-ascii?Q?FU0WInJVRUNUNx0cFwH6JEzv3NAPmMpLDN6zPxDwX6YYgKxSafhyJhj/7qa+?= =?us-ascii?Q?9Nm8odGaYCGmPlbMt+TdDd78THpvbCfpE8LvR9XX8HjiiWK4vlv57BMT9Aql?= =?us-ascii?Q?hUu25Hy2TGbL7cZeidy4P7b0nmUEaAAjW/WXrXRcnNaHW9udkjyfTPa355/c?= =?us-ascii?Q?baqD6/hgnorWLffdh9ygGAgZEa8ys37NZz7QRiJBbBwyCm5dlQAAlp+zo7w3?= =?us-ascii?Q?6stA3Zo/z5i7Di7Glo7tlXkvyKAfGrWRtsOPEEbh3HQD7p0F3z8Vb11h/GtE?= =?us-ascii?Q?XYbxnhTBGumPvS6fuEzh9ZOrhFbC9Dqoym/Gdy/Ocm4NP1+hmoT+OkWh0BtX?= =?us-ascii?Q?f8PYbDRXxZWswJb4jUeLT+etxcEQJTyZb0GmLaQzHvLpE9j5Vdv3ruEcnihu?= =?us-ascii?Q?X5vE8a0ZWhuyzgLcDAHozYf39dq3Dgfjjv/yBL6dkVFz/sbSe0r22G3f4Th3?= =?us-ascii?Q?BPT3EYTqxoq2r0Z7n0Pq/YrFdtJObIQYP8GAbkLRJKPTibiHWTTkASgmhs0m?= =?us-ascii?Q?uRk45QF3tQXYiXmg/p48tc1RTLT24+MVv/lFo7XsdvHEIbktcgxKg55SD9Mo?= =?us-ascii?Q?2Q0FMeXNA5eVhFMgtM5iEaqxYQ3YVvEaYfGlDrmAXkJjMOEQgVJtgAPKjUfv?= =?us-ascii?Q?6v4C6w94YWvbBmw3I8sXcVA7XVcpDAq0WR1gAAlysGnpdDj67anWIAa3C1Sv?= =?us-ascii?Q?hUCLDvaoe2jAAc3VlxBn7F0RKthqzqbx7CFVrPi4s/l5Y/QoAaubGtOe+bOV?= =?us-ascii?Q?7GRrNF4zM2S+/vKo5Tv8OP1gkEcyEM9uCIdkE5Uo9n1QC6LWgTKzA4YvPKIj?= =?us-ascii?Q?rRZf5a8vmYJv9zGHQv4ANzmE1nhpW5lbb2JxGkg3CRL0mFPb2NMyiuSBO5Wu?= =?us-ascii?Q?/pDSfkso2vukTmxQWGnkQdQhdZcU7F4=3D?= X-Exchange-RoutingPolicyChecked: teLRqXN4etZq9Y7LO2TCXp0uPqnED1NZQx1A4AHHL2snO1MyOOgKnSWV8lV7o1xMu/F1bHnKm+7aW0ENZFESE20gQZC9U4JbfB3IOe5+wZvgnoNzu4aqJ/pmJPNhXpJbIAVjROtqlo1eHEtyHZGNTizMIfh6ZUQ9vbCUkgipJjg37YJ/7DNX/MVj46IDI7NdzqCTx5ryk0Zqq1O6MR9fqwWB92/gtgeDSSshZMQ2Ur+RnGfqqoyFQfIarwaKWtSiVf/iistLlSBHYLLNLqeqwd3sktY1c+Tm39J/vliW9gp3kUpwcNR5OFVJ08wPgFwi4pgKBcqHYwGQ+fKyBcoLMg== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: Pbf7TOFnwllijwdyIKxqS7uU6JaqEpssZEcfZtxAA54h/YMJis5BLMr65R8PRzYpHTrDAGnCvXu+BKfyK+6MosNYQThsfngG3yrW7OH+pAvwTEK0o2Xzo2OT9gdNui6Q7C2gDuCDQXaMRtrxBhdYcjl37BBZ1VwPtGleRgn24+9ciJQrpbIoc/ltxAN7acHbvWi/oWMgCebwnmOE0jbXk8DK0dS+AMOfdJZrOreJwRDTXTlCHmuxdwLDva6d26SKoah3klyDI4b/gU4V4Sc5wk5UJkJMYLObhtICtqPIvfgtw1tDuk1kOq1ypBks1J5LHX+YUjnUmbAzEpi2mJ/9uuUfdLXVjaW1Dd+7Bzp1VfJuIgEQW97O29MdlcJf0T/T+8BKCcpOtPghocPWAVg+0R/1/QxW88XXsmyTpBnsi9L5tRCIBEwbRloCwBrqTkjrFW0+sl3sPLfA2fa4szitmmLdwmrk/RsNFmC6j0bpXDso1ujkEST0BZRZX7ke43V427/mM7ABzP9RTZvcKY4enVn3ZvMm7B6EvQm18q+Fdq7Zw5VgnX4Qiu8e5qUgcJTtYSwDwdcZM/9JJ06hX/R512LyhFSwcQ4RXE2SIpTcRsw= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: b5d9e06e-c580-420e-6364-08df079db2d0 X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Aug 2026 20:23:20.2160 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 4KUBLB9MhfHnNTmfB7n/WVeo64vKZ82wbRBLBPa1cFfgCNntPJyNsfIDqGonn1tE3IN0ycowA/D2LdwotodExqqqbCLilALDGj9htD5ckCs= X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR10MB964822 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-31_06,2026-08-31_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 lowpriorityscore=0 adultscore=0 mlxscore=0 spamscore=0 mlxlogscore=999 suspectscore=0 phishscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2606160000 definitions=main-2608310176 X-Authority-Analysis: v=2.4 cv=Vp0Txe2n c=1 sm=1 tr=0 ts=6a95e2bd b=1 cx=c_pps a=WeWmnZmh0fydH62SvGsd2A==:117 a=WeWmnZmh0fydH62SvGsd2A==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=Sv0fKeRqtYgA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=jiCTI4zE5U7BLdzWsZGv:22 a=3I1J8UUJPc9JN9BFgKH3:22 a=VwQbUJbxAAAA:8 a=pGLkceISAAAA:8 a=yPCof4ZbAAAA:8 a=Ru_WXoCZngTtvYUXGSoA:9 a=WmVTiCyuxqgg3mnwYu6p:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODMxMDE3NiBTYWx0ZWRfX/v+kqaGd030v Q35A1JOnzYfl+3c0WRueGcg8eBjG9YxNPR+0TBSsTfCHzkkWCvq9qJcm3wY6tLS40hdG+KtCYni 0Nw2TjpI9Oytaz7uXqWcMfc3r17mfQhTRNYm8sWQxLTD+58977QOKfinGNrAPo8ny1x9CZquvTI 2YelH7Z+M5OAtyBykAsm/U5OS8nGvLzfpK1jXhMlfU2bZoPF14yySdGOCq0CiPdCf6LtJhHmD6i CF3QlKsNqKpqBTB0oI3YTDI8CuSJB0+aNiiTu5FETEVBOlN1UGABO+yjYHeFcG9NSZVMtl5SMe9 xwLTI3nY4qiT0TOIiKHGXYcAGqw58EEiJIIjfr1KzgN0ggUO350ku8gUfSs7fomEgeb7ZeMgK2H FbONQy79XsxxIcZeDFFrX3FolBPp3BKsfw+1Wzjxc5co72M3zVV/4HFWQlyASCA1e8VkjnErLnt yWMZGo9vY5nm3WlysiQ== X-Proofpoint-Spam-Info: AW1haW4tMjYwODMxMDE3NiBTYWx0ZWRfX6xCZIZyDDzRG i0gYEF7yfrFsegnu5mcBLK8PR2FXROGlDtitF0A5qL2hJ8q3fk1RXpRm/rZnSQDsbYFmR4l+AV9 JR+CXL/tomeRcq8tAgO+if0/dQh5q8ikyTBlyDnJhVeE9Awo6LLH X-Proofpoint-ORIG-GUID: xEKx6AEQr7jMpppIYoXOUT1RPzTRwPEX X-Proofpoint-GUID: xEKx6AEQr7jMpppIYoXOUT1RPzTRwPEX Content-Type: text/plain; charset="utf-8" Switch out the conditional load interfaces used by rqspinlock to smp_cond_load_acquire_timeout() and its wrapper, atomic_cond_read_acquire_timeout(). Both these handle the timeout and amortize as needed, so use the non-amortized RES_CHECK_TIMEOUT. RES_CHECK_TIMEOUT does double duty here -- presenting the current clock value, the timeout/deadlock error from clock_deadlock() to the cond-load and, returning the error value via ret. For correctness, we need to ensure that the error case of the cond-load interface always agrees with that in clock_deadlock(). For the most part, this is fine because there's no independent clock, or double reads from the clock in cond-load -- either of which could lead to its internal state going out of sync from that of clock_deadlock(). There is, however, an edge case where clock_deadlock() checks for: if (time > ts->timeout_end) return -ETIMEDOUT; while smp_cond_load_acquire_timeout() checks for: __time_now =3D (time_expr_ns); if (__time_now <=3D 0 || __time_now >=3D __time_end) { VAL =3D READ_ONCE(*__PTR); break; } This runs into a problem when (__time_now =3D=3D __time_end) since clock_deadlock() does not treat it as a timeout condition but the second clause in the conditional above does. So, add an equality check in clock_deadlock(). Finally, redefine SMP_TIMEOUT_POLL_COUNT to be 16k to be similar to the spin-count used in the amortized version. We only do this for architectures lacking a waiting implementation of cpu_poll_relax(). Cc: bpf@vger.kernel.org Cc: Kumar Kartikeya Dwivedi Cc: Alexei Starovoitov Acked-by: Kumar Kartikeya Dwivedi Signed-off-by: Ankur Arora Note: - when overriding the SMP_TIMEOUT_POLL_COUNT value check for CPU_POLL_RELAX_WAITS instead of directly checking for CONFIG_ARM64. --- kernel/bpf/rqspinlock.c | 41 ++++++++++++++++++++++++----------------- 1 file changed, 24 insertions(+), 17 deletions(-) diff --git a/kernel/bpf/rqspinlock.c b/kernel/bpf/rqspinlock.c index 1b249c6f0674..9e8f19afd7b0 100644 --- a/kernel/bpf/rqspinlock.c +++ b/kernel/bpf/rqspinlock.c @@ -215,7 +215,7 @@ static noinline s64 clock_deadlock(rqspinlock_t *lock, = u32 mask, } =20 time =3D ktime_get_mono_fast_ns(); - if (time > ts->timeout_end) + if (time >=3D ts->timeout_end) return -ETIMEDOUT; =20 /* @@ -235,11 +235,10 @@ static noinline s64 clock_deadlock(rqspinlock_t *lock= , u32 mask, } =20 /* - * Do not amortize with spins when res_smp_cond_load_acquire is defined, - * as the macro does internal amortization for us. + * Spin amortized version of RES_CHECK_TIMEOUT. Used when busy-waiting in + * atomic_try_cmpxchg(). */ -#ifndef res_smp_cond_load_acquire -#define RES_CHECK_TIMEOUT(ts, ret, mask) \ +#define RES_CHECK_TIMEOUT_AMORTIZED(ts, ret, mask) \ ({ \ s64 __timeval_err =3D 0; \ if (!(ts).spin++) \ @@ -247,7 +246,7 @@ static noinline s64 clock_deadlock(rqspinlock_t *lock, = u32 mask, (ret) =3D __timeval_err < 0 ? __timeval_err : 0; \ __timeval_err; \ }) -#else + #define RES_CHECK_TIMEOUT(ts, ret, mask) \ ({ \ s64 __timeval_err; \ @@ -255,7 +254,6 @@ static noinline s64 clock_deadlock(rqspinlock_t *lock, = u32 mask, (ret) =3D __timeval_err < 0 ? __timeval_err : 0; \ __timeval_err; \ }) -#endif =20 /* * Initialize the 'spin' member. @@ -269,6 +267,18 @@ static noinline s64 clock_deadlock(rqspinlock_t *lock,= u32 mask, */ #define RES_RESET_TIMEOUT(ts, _duration) ({ (ts).timeout_end =3D 0; (ts).d= uration =3D _duration; }) =20 +/* + * Limit how often we invoke clock_deadlock() while spin-waiting in + * smp_cond_load_acquire_timeout() or atomic_cond_read_acquire_timeout(). + * + * We only override the default value for architectures without a waiting + * implementation. + */ +#ifndef CPU_POLL_RELAX_WAITS +#undef SMP_TIMEOUT_POLL_COUNT +#define SMP_TIMEOUT_POLL_COUNT (16*1024) +#endif + /* * Provide a test-and-set fallback for cases when queued spin lock support= is * absent from the architecture. @@ -296,7 +306,7 @@ int __lockfunc resilient_tas_spin_lock(rqspinlock_t *lo= ck) val =3D atomic_read(&lock->val); =20 if (val || !atomic_try_cmpxchg(&lock->val, &val, 1)) { - if (RES_CHECK_TIMEOUT(ts, ret, ~0u) < 0) + if (RES_CHECK_TIMEOUT_AMORTIZED(ts, ret, ~0u) < 0) goto out; cpu_relax(); goto retry; @@ -319,12 +329,6 @@ EXPORT_SYMBOL_GPL(resilient_tas_spin_lock); */ static DEFINE_PER_CPU_ALIGNED(struct qnode, rqnodes[_Q_MAX_NODES]); =20 -#ifndef res_smp_cond_load_acquire -#define res_smp_cond_load_acquire(v, c) smp_cond_load_acquire(v, c) -#endif - -#define res_atomic_cond_read_acquire(v, c) res_smp_cond_load_acquire(&(v)-= >counter, (c)) - /** * resilient_queued_spin_lock_slowpath - acquire the queued spinlock * @lock: Pointer to queued spinlock structure @@ -421,7 +425,9 @@ int __lockfunc resilient_queued_spin_lock_slowpath(rqsp= inlock_t *lock, u32 val) */ if (val & _Q_LOCKED_MASK) { RES_RESET_TIMEOUT(ts, RES_DEF_TIMEOUT); - res_smp_cond_load_acquire(&lock->locked, !VAL || RES_CHECK_TIMEOUT(ts, r= et, _Q_LOCKED_MASK) < 0); + smp_cond_load_acquire_timeout(&lock->locked, !VAL, + RES_CHECK_TIMEOUT(ts, ret, _Q_LOCKED_MASK), + ts.duration); } =20 if (ret) { @@ -582,8 +588,9 @@ int __lockfunc resilient_queued_spin_lock_slowpath(rqsp= inlock_t *lock, u32 val) * us. */ RES_RESET_TIMEOUT(ts, RES_DEF_TIMEOUT * 2); - val =3D res_atomic_cond_read_acquire(&lock->val, !(VAL & _Q_LOCKED_PENDIN= G_MASK) || - RES_CHECK_TIMEOUT(ts, ret, _Q_LOCKED_PENDING_MASK) < 0); + val =3D atomic_cond_read_acquire_timeout(&lock->val, !(VAL & _Q_LOCKED_PE= NDING_MASK), + RES_CHECK_TIMEOUT(ts, ret, _Q_LOCKED_PENDING_MASK), + ts.duration); =20 /* Disable queue destruction when we detect deadlocks. */ if (ret =3D=3D -EDEADLK) { --=20 2.43.7 From nobody Sat Sep 26 13:47:35 2026 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (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 6499C39A7FD; Mon, 31 Aug 2026 20:23:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788207833; cv=fail; b=M4ma3GrGgyP0Dw/qEnxsHoyxu63P6Uc3T2TvZR1i6yRhcLh2snvo2x1Uxoj41fSZ/uNCMt+JjJZBw4r1OvlqbSHUMQ0rqzNrpkQiRG9sBIMO1uaSHPLkCcEdGRuXlI1mjM82ug0nxmJc2/1IP/j0A5w+r8mFAQv4z9GFf87AS+M= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788207833; c=relaxed/simple; bh=5X9U02aS4T8loT3H8XpIbPonFBPvCzFQej/Dq2yztC8=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=T3ZpSAxlRXTfMZ+Lmrniw+FAggrxAdRLh1YINyVWrfB5OKnJPtiM3poPcZuPF2MmRq8KqQhKiId7v872HrVp9WZF6XYfl3974+KEXqOnchkergkHhxORjrGvXsNGKWFiY2rc1um/6mrdSU9XCnLJflaDDboATe9Q4ZQeYspLXiY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=rvabvwIR; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=wg2c6ooh; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="rvabvwIR"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="wg2c6ooh" Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67VGBo602165320; Mon, 31 Aug 2026 20:23:26 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=5Urzdw0yqkCzs1wDL5pmAGbiBV1x7SWWrwo4lrMKHUE=; b= rvabvwIR3biTgjH7cZITlXJQzWkXEQ+pY6N8ojld2SIcbsJ8Opn3kcBml2MBj53d 7gM1UmPGQ4ashTQ34izgLwmJWZSp0xoKEh8tpw1EwiPwpJCk5flacmq5Ry0n96Os v+S1QTFURKeg3/hkYimZoeR2yLGV+LHBVofU7PZ4AkdnapWLbbFdPgA+gRNGU3CP vOM3/gSdOoOcrnzM5c1VDZNTRnVTnCqLdeJdjMzc0IC44VR9oKMHZ69ATXtN2SIR rwzDd+xsIOygHhff1+BFnUfvNypkDcTqGN8vi/GfmlYQy49tuWrWbNn/pkMmOj+q KksWi993sVX8wBdq71quGg== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4gbqa7kbkn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 31 Aug 2026 20:23:25 +0000 (GMT) Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.7/8.18.1.7) with ESMTP id 67VKK56A033202; Mon, 31 Aug 2026 20:23:25 GMT Received: from ph8pr06cu001.outbound.protection.outlook.com (mail-westus3azon11012049.outbound.protection.outlook.com [40.107.209.49]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4gbnvdc4s7-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Mon, 31 Aug 2026 20:23:25 +0000 (GMT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=MOoI8PTtgxlQnY72HWqyJeFCKYdx8iK8dbPn9EgjfTIv8Ikb6RUQPOn09pnjT0BsJGOU8v1JmLo00x0m2Cti1PhL1nt4Kp0ywDGDXfKFap4sYCOv0mT9dCPIHs4H/U0JcuyppXNzLOfH1DZE/6ceWWyNraptrY4vLCgCdr15lx0/GvLqm4REpbsTCo7RwvpK69kyrN2MWv7ZmSC14mzO/aG05AjeHIlBnBHbyqKe95anKQzijFMjYgHcZwsQ96LjkANlHg80W00nxEKRZcdajHonrMEqgfTMV2aA3EarGf0ka/2a+XbKIfy8TxPFDkd75Z/TFxvrJcPlHTpTSbSefQ== 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=5Urzdw0yqkCzs1wDL5pmAGbiBV1x7SWWrwo4lrMKHUE=; b=rc1Ms98LYvI/ZnasLmqozu/7cCVGUETHMe2rAdbctXop5Vq2K4HVSB/9xUmnmON/qmWejz8ihCQc43rNO/bXpeHt7TTrOk2x5lp3kMEg0tK6fp9x9FnuPcRkbB8JgMcYUcpweADZyIOY0ruLXhlt2s56GTyLfw7UXZdRAfEuZNSZnY9+jb4mCTsUi5+Sby1ry0nozwcsgeNCoy6zliGGQIVW8RCiPBBibq2R5nLtfhtUTXAB0dsCQbrVP5Vss3DxD+ZUbGIf/a1y7QwGzwxibLO18mYt6LeNobjqkyEmQ0Jv5Z/c8YCciT1LETIQihuogE+5uGQzRFOKNacyk2z4zw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=5Urzdw0yqkCzs1wDL5pmAGbiBV1x7SWWrwo4lrMKHUE=; b=wg2c6ooh7XEwRFKOR3ph6ImQtqRM9sX5ySpcGUp34rt8C9uAPpAjSw8aj1cfHnwnC2oPo0wONVGoxq/2o6tHS1loNPe4cqq+0UNi3XVx+ksyTMk/ZLZUbemYR2z4P92ZpfGmoYvg+wZnHeK1Tni3sN1pqkScJ+cBZbmDfiYxccE= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by IA1PR10MB964822.namprd10.prod.outlook.com (2603:10b6:208:5ac::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.382.10; Mon, 31 Aug 2026 20:23:22 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574%6]) with mapi id 15.21.0382.007; Mon, 31 Aug 2026 20:23:21 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pm@vger.kernel.org, bpf@vger.kernel.org Cc: arnd@arndb.de, catalin.marinas@arm.com, will@kernel.org, peterz@infradead.org, akpm@linux-foundation.org, mark.rutland@arm.com, harisokn@amazon.com, cl@gentwo.org, ast@kernel.org, rafael@kernel.org, daniel.lezcano@linaro.org, memxor@gmail.com, zhenglifeng1@huawei.com, xueshuai@linux.alibaba.com, rdunlap@infradead.org, david.laight.linux@gmail.com, broonie@kernel.org, joao.m.martins@oracle.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ashok.bhat@arm.com, Ankur Arora , Ingo Molnar Subject: [PATCH v15 11/16] sched: add need-resched timed wait interface Date: Mon, 31 Aug 2026 13:22:46 -0700 Message-Id: <20260831202251.305046-12-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20260831202251.305046-1-ankur.a.arora@oracle.com> References: <20260831202251.305046-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4PR04CA0179.namprd04.prod.outlook.com (2603:10b6:303:85::34) To CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO6PR10MB5409:EE_|IA1PR10MB964822:EE_ X-MS-Office365-Filtering-Correlation-Id: d76f881c-9ea1-4936-e8cc-08df079db3bd X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|23010399003|366016|56012099006|10067099003|3023799007|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: l3pFoc0B4H2v001Q8upudyFx+hbVNvh1UWOUZedPFagdURdhbr2/BsUyXswJC8clQ/VSy/CL9I8GEqg8DkDnxHht1uOMKAKhxALD0PV9xRlI+C1XdKKqDl2LscKZx+asmGfGvkdMxVTWM8LYroCGFc5IAOjs55WvsbLxX63W/NLy2HzoqWggPHmu+1t7xU/h4mb0M9+6NNu0++urtSzOZRDozvvNgfKy/PMcjtMe/k8MtmvTNz/QjmhfglFl8lectj86+vBXuR2OzbzynvE4YYrkBq1/K/lF1CAlgP977Ac0p46Viyb5Z7dCvrliHqMuFWE6B8IOJbImXvQxOrgmKTIEQh55mmunCwtX+iDlu22/IHLuLn0R4ePS47udtIBYhhFPiLUGtobgG955dNXkt9dUFAilYCsBDTDu46Jbd9klWAYTuySUioqLsLm2IyFgSEkn92CGqTnCfwFdAnLCg0eBcB0rYtDm1E7a8I0Wbau2iK+8uY66Ze7ln6JFWD1oNTOLV08Z0jpwHpuYul1G2wRSTF+XAz9Ql/9Jj3W2j+JhoHqYwSYDX80YjiroSRGgk/hko4OF6RMbMiodDNl8lwOumi5m9BijO3ix6C+BizzMD3mVoU2MAo46aHYt4cH7WxCKK9C6Z3FSZPYwHrH6re2VwOK/s6vpAKGpePn0ikI= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO6PR10MB5409.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(23010399003)(366016)(56012099006)(10067099003)(3023799007)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?ELBz3n0eCFL2OCJgEFjpe8gzqRSglHQYLEyQoS+S/MtqV/YhZfgIbyYcLLYw?= =?us-ascii?Q?5iRvNDnkBV77Cg7nvGJifSt165m+tC7jDtyLdJdRlEKo5o8MfLsglfzSdcz4?= =?us-ascii?Q?cIMgRy5P5LZsUyFDYR27LIFPNN6Bbf+AgbfWyBIdc3r7LHpLwuFJYrtkU1Gy?= =?us-ascii?Q?J5ThW68W882mL/YZe0Leqz5HHThc0D102uLgYlhpFP9kuE8IGlg2V6aYWrnT?= =?us-ascii?Q?gPT87/hKYQA5cFX3/aPLBe4eXGnPHBZpC040lpNQ1/pE5e3283GykcgMNHtF?= =?us-ascii?Q?2JYawS8yTDBZ7oGYo93K9Adff6A4xOlNsgzUHn5d5IV2dgm3kZgKZGWVCbXA?= =?us-ascii?Q?YQZkMftOUbvC7MAUarlpjjgBT++9u3AvIKCXlCAuRrIGLoDJGKHbWlOE0Pl5?= =?us-ascii?Q?t+yu1HdHLQiAm3GSd63+Suq1zYPra92t55Y83Jg83RkFX3fhkEGT6jVow5j/?= =?us-ascii?Q?kuZJu6G9R3GJcAAW+BsCfdQ6xux2C75Y7vjFLOcGNJSIbnRlMcBeh10xKiOs?= =?us-ascii?Q?FCjtdkgyM/DBckSQ/eTTROHv/qAT9s9zZI3DxL0txH1UkzvDOWbWCUtYtprO?= =?us-ascii?Q?nExuOZnD7rSMEgveiOo4zVWB4NNYeo2TGF8BaPIRd8jhZi1bgp6UBA1lWpsv?= =?us-ascii?Q?M0Hoe3cYh0vlvTzXX+vDDAgpyjk/asBEJN3+QEeKQetkI7vEw+Od446b1SIf?= =?us-ascii?Q?xbrFaDQuVlgJ+/bsSkiuz3SQBvLdagqVYsRDK1W6wWKxYq15LMvFGbBdNaWq?= =?us-ascii?Q?g5kTPu/MnXAxxB4qFESRW+t3iRK2psSnxPFJSHMetIfM1FgHHLi6xqgA1Ukt?= =?us-ascii?Q?Ml0RuWflpli+3qczE0Jskfj7KgEn8/LyKOnVnPO9G0X4djNU5Lbu0SbZ5h3/?= =?us-ascii?Q?0oGfEg+Fz4KROLmtXRlKzxYJE0jtrIhH2sl82Yyl8p0anKVz1BhzAeUfEdJu?= =?us-ascii?Q?CaW4uQJQchmut0HI4UWr4jx2Y7D7uPG1IIjlGCxO/GqBZ4qLgLQ7xy1ihN6k?= =?us-ascii?Q?vkXJbR0OzF8dr9/fzgFl4wWp1oN2AtkfVsWhiYzOkNxGjzvymy5VC1rt7dBc?= =?us-ascii?Q?DvwTLAiXfOUosHAOEax3DiS0ZOeZ6VXxxNwPt/W0dTg/xSMSNvHFT+7cLyJX?= =?us-ascii?Q?/8jkSdlJnWVY7tGvAsmv5P7Bhb2VIyz8NhF+u5lQJGLlGP/Secj1nPw3vc1i?= =?us-ascii?Q?1WmPuJlmysHYYpMvQ533TiOXMWQhgAVW78U96i7pf//QzxMV0NH1hKYOeGjY?= =?us-ascii?Q?k5lpL+/pfaD0gwsqWy6rU0zI6rQXvAD7kBp6ZO0lO54otq9ko3EwQXDKZh2L?= =?us-ascii?Q?lsG7B3a+8SGLvunSpTdKvLAANMRFguijwrU7eYRqu6ESj4UL3ScOPKwLIYE0?= =?us-ascii?Q?OOxlvhwdWwfOtWpU1Y21hZlhAccpCUA453EhAfga0zixS26ACCOFhQPd29Xe?= =?us-ascii?Q?w6a3gzfn54gyU9QxHHMJtISu1eFZpO8q6r2QpUq18dBMTbrGK98yI/DDetgj?= =?us-ascii?Q?JMDBO1en6CtDSYZikkOFWVGoz6VC73Kk1SxOPF7AS5pYNzfSzo6q1DzzXhBg?= =?us-ascii?Q?V5u5VVO8JPxuHHjnYi41rEjTzKFH2H78ZTFe6VbxDGxGuQEM/UEwqurQmO2c?= =?us-ascii?Q?C5EsmFe29wtln7xPA1PKghDMK5uMJG5nr//jx6O68J1bfo15lT/hPAbX8XuO?= =?us-ascii?Q?OgYIIjXW/TghpHEQbJdKd9Ps2y69oHNCmEjfJ5gfnHH5lhjKP0DfOGceESbk?= =?us-ascii?Q?7TBy6JJMwg8IjX9tSU1VMQW+f2zfLJM=3D?= X-Exchange-RoutingPolicyChecked: gx/F6J0lmTSPVt2PlU0H7TdndRAeoK5qVm3KDLEgnbtjLEROIozU06Fzn88qSBzRXpCXjNXHMK0Jb3dK+0PmsfcNFmoJwsk8vkc8a2ifniUo86/ciihyFRi/qL/+pp2p1HRzFQB9JIs0FWMzcYXdjuPELl91gFB6FYgpZ2/GPhzAEcOLBqEj2Y0ueTMsvVsSqRFJ0z2oJujs6sfW1NiPgYkqiI7K9bPZJW0oBjxNuDIQK0cKcveeIy2i5jdSMwgeM74rvi1ebhW0AwN6unAaLdxUvsOZ8y42sYoCE7Q7EgEgw0falo4F+cIUWJav29d2ENjprO5M8/zceikJMITeXg== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: OxV9FfcfcaxzKO9xUm7crpHRA94nQC7U5LcJywnHy4Hlt0v6AcnWfNVP1J6TgMKo/RVofsshdww8aBl4e3+f/3E0T/BCLn5mqWuRCQ0wlg32Y+NVcf6amxEeViE/vV/rm4YQRRwqV0i0uPWRB5c+SI6iYgs7D+1AklGqkUKauaGwIsMgdONpsIPB+QW9mg6jiFqPDG0vCSmebKCUHC2I/eYtXgMTqkk7EZYwsZmbosKP+RTPyHaTzCWj9zaatA9Yp/U3BexipOSlnYGkID4LHfmadFh1KiU2J0o0aWWThw4kSA5x/BxcOpA6xCA9pOooVINuV4opMgSNvofR4ImLol3lhqE2Ckj81/v77XFba3LG4RJIMK+gwXFnWLmIptY8O/ZhUaouLh9cQdP04h8ccHIkGHnZWTNWtxaY+mcvryqxRz1SuTgMSyfKs5qUdHIsTtl2JOgo85dsD0/LC7YF3/Y1tNp37qRAtpCTN8cBgy3QPMoWQ1F8o19K/Ji7qMMKOR7dfgbAighO/h26It3aXe+cWgkQjylFQFTIjh0gd6fnXRbVsDCp4OWQj7Rg+UNXLot4p/QenzXWVUHJngP6PbKhPR3S2+yhmyS2i3gmIok= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: d76f881c-9ea1-4936-e8cc-08df079db3bd X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Aug 2026 20:23:21.7669 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: nupX2+OEWF6PrQdY2BrpNp4AlgZSoHFs80+EWoOiqD0EYuVv2UChKtlEiZtWuPqxDD2dGbOktVZ+B03IMQ0Q4ppQp868Db57cMMonOg2CdU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR10MB964822 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-31_06,2026-08-31_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 lowpriorityscore=0 adultscore=0 mlxscore=0 spamscore=0 mlxlogscore=999 suspectscore=0 phishscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2606160000 definitions=main-2608310176 X-Proofpoint-Spam-Info: AW1haW4tMjYwODMxMDE3NiBTYWx0ZWRfX4i0B7zbhJA+k 83wytf7TmIJwar2YjpbVTMz+7a50jcm4cjMzzs9OLgo5rQ12sMQ/6mMNFN+Z0/SC9J0ae9qoqMK Sf3DzHBoL3g3Ga8OEoK4zEX6Ml0r6e8N8pUDXguid5fkpm3hJFE1 X-Proofpoint-GUID: lSm9UUT7yFIMLDJPhtcv_018-mLywfkY X-Authority-Analysis: v=2.4 cv=DPu/JSNb c=1 sm=1 tr=0 ts=6a95e2bd b=1 cx=c_pps a=WeWmnZmh0fydH62SvGsd2A==:117 a=WeWmnZmh0fydH62SvGsd2A==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=Sv0fKeRqtYgA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=jiCTI4zE5U7BLdzWsZGv:22 a=EIcjfB9IiI4px24ztqRk:22 a=VwQbUJbxAAAA:8 a=JfrnYn6hAAAA:8 a=KKAkSRfTAAAA:8 a=yPCof4ZbAAAA:8 a=DC2jtUcBNbVnd9lHvZoA:9 a=WmVTiCyuxqgg3mnwYu6p:22 a=1CNFftbPRP8L7MoqJWF3:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-ORIG-GUID: lSm9UUT7yFIMLDJPhtcv_018-mLywfkY X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODMxMDE3NiBTYWx0ZWRfXzaKjrb1/zkOZ LEhQIsDJdbKVJwk8oScOuPFOR6pIAYoArLWMFXDvVs8hnCZE3BHw4utdynvo5pK0V78XbEF5lZR 6U8JmNnoyvFPKzpnAqjDy1vRzh8I+cq0MogJpNqRvRaxBnyupGnRTxj0dzzoNcaNIT61GRM+CFh Q2Nc25wl4kCNcRzOjO9MOLMC+83dnVvUdkWTxiAD+YLlJ1SSSPAjsg052qxy4FLDyV+6Nvfv5wN 59mButah+U0Ydv8aA/8D4L7tZW8o4/A3vQ2Q/0qwxK0Y5Wsv/bhk4MgcpV7pk8aDWEH91gM8BjL dOZA5MRy8sk93+nlOXo9fviRNTEIkIjaG2hiJUMDteQarefNSiUrKTq66x1bJ9nmFrlbUzuIVaL VNGpA91kX4njPOJ2n9tT9WHHYUn4favicSjzMfTAnTi/wus66UWLdfysXrSaHHwbW8e0ZWgyXM5 k0RttIixqIQXihM6iOA== Content-Type: text/plain; charset="utf-8" Add tif_bitset_relaxed_wait() (and tif_need_resched_relaxed_wait() which wraps it) which takes the thread_info bit and timeout duration as parameters and waits until the bit is set or for the expiration of the timeout. The wait is implemented via smp_cond_load_relaxed_timeout(). smp_cond_load_relaxed_timeout() essentially provides the pattern used in poll_idle() where we spin in a loop waiting for the flag to change until a timeout occurs. tif_need_resched_relaxed_wait() allows us to abstract out the internals of waiting, scheduler specific details etc. Placed in linux/sched/idle.h instead of linux/thread_info.h to work around recursive include hell. Cc: Ingo Molnar Cc: Peter Zijlstra Cc: Rafael J. Wysocki Cc: Daniel Lezcano Cc: linux-pm@vger.kernel.org Signed-off-by: Ankur Arora --- include/linux/sched/idle.h | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/include/linux/sched/idle.h b/include/linux/sched/idle.h index 8465ff1f20d1..ddee9b019895 100644 --- a/include/linux/sched/idle.h +++ b/include/linux/sched/idle.h @@ -3,6 +3,7 @@ #define _LINUX_SCHED_IDLE_H =20 #include +#include =20 enum cpu_idle_type { __CPU_NOT_IDLE =3D 0, @@ -113,4 +114,32 @@ static __always_inline void current_clr_polling(void) } #endif =20 +/* + * Caller needs to make sure that the thread context cannot be preempted + * or migrated, so current_thread_info() cannot change from under us. + * + * This also allows us to safely stay in the local_clock domain. + */ +static __always_inline bool tif_bitset_relaxed_wait(int tif, u64 timeout_n= s) +{ + unsigned long flags; + + flags =3D smp_cond_load_relaxed_timeout(¤t_thread_info()->flags, + (VAL & BIT(tif)), + local_clock_noinstr(), + timeout_ns); + return flags & BIT(tif); +} + +/** + * tif_need_resched_relaxed_wait() - Wait for need-resched being set + * with no ordering guarantees until a timeout expires. + * + * @timeout_ns: timeout value. + */ +static __always_inline bool tif_need_resched_relaxed_wait(u64 timeout_ns) +{ + return tif_bitset_relaxed_wait(TIF_NEED_RESCHED, timeout_ns); +} + #endif /* _LINUX_SCHED_IDLE_H */ --=20 2.43.7 From nobody Sat Sep 26 13:47:35 2026 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (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 DE212396B96; Mon, 31 Aug 2026 20:23:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788207834; cv=fail; b=uwDoSd/A/sBIgxeuzTf6LqiBHhAVoWlOtWksiTdhS62QToOjSXd96yDQwtht+qOzYwZDKbp1gzbvvdpwnu8u1+Y3PVOG0VdYNfP67L+gMvPOKRgvAPrlYzUB9wqzmC3ZiXvsijEKJ0GKJIo0FqCmjFKr4rUmdiT3wL9ecCqlzNM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788207834; c=relaxed/simple; bh=Z510VhTG0QMC0ztp4hVhqLPdusKvEceFRuNqCDZn8NY=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=JCyT5rwP8y03vWCVoXdu4jOo/EKxLukykuW/Q+lhJS30oj8Jk1jk0WOQUxf8AbB114U8qn+/Y7TFto829Kx4/8TPo0yNJPVKeRXosMkeKETFbu0tzXD0OXkGz/cmVDRE/2JUZZRpPSmYgXb9/+MNDoShgNIPwGwdf11R9hMb188= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=VQyE4Kk9; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=UmRrjHCG; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="VQyE4Kk9"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="UmRrjHCG" Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67VGBo622165320; Mon, 31 Aug 2026 20:23:29 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=5e5DGnlTUUm5bqIzdpftnmcC+Hjskr8o+zCI/SxdWQs=; b= VQyE4Kk9fKCHlZkOsLYzwg61wPzPEslw1KtVUmFeYAPVWHDrK/gDDMdGboRDAWcr 3l4pIJuDQ296iaiC14sRdOKuxIOPqRx6kxiJ6fnw+COwcCfGwnqCXD0BympZ7vCP zRjjI1JBvh+bR4opSv0xB3IRmG/WcKbBZKFzjsnybLQZoaQ8NvaH92LWkHIQ5gu/ SzzQ9YpFoRSj2o6EvwdmY3aWaisHqK8FEO5HRfkIPvBh40U5A1ofHZwfXPcMB/RR VUicFCwEN4kxVgpdSyfVgz79E7T6RtI0qJkt7S2wr+zjJE9lw9GyNYxBPDPHPJp2 6TXLlmJyCIHuNoH//RyCKw== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4gbqa7kbkt-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 31 Aug 2026 20:23:29 +0000 (GMT) Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.7/8.18.1.7) with ESMTP id 67VKK5W4033249; Mon, 31 Aug 2026 20:23:28 GMT Received: from ph8pr06cu001.outbound.protection.outlook.com (mail-westus3azon11012017.outbound.protection.outlook.com [40.107.209.17]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4gbnvdc4u1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Mon, 31 Aug 2026 20:23:28 +0000 (GMT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=DaLxv96OTQeTrVJhGSzVa4VaKBmMqZhbSSBVGrsLlbCKZHbT39o1cg7h96VotVob4DwMly662geK+1OiZ8fmKUBOi/IdHOtMI/kqyuFisfhogz2bzXrVR/49ov7YZKE1KXsefO/MvsDU/Lr4CZo7YEEHIWKYh2OfXgY8i/8xALyIvVlNjxRN4dWRhqS8Ea2WnZSXxRX26aD9f06dV6MmVHJ/FGyt0FKVMQxkDZxfVSpDsbT5cRdacL7iuIlgqI7MjePN/Dq0VWnmqryekNo4FZSOd+azdtAbhK/jb9OP8p3dSLr8vYwORa58Bp1Vw8JjZpMnceROkvAv+WoPt5xnkA== 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=5e5DGnlTUUm5bqIzdpftnmcC+Hjskr8o+zCI/SxdWQs=; b=nvpHMasqpN0qmEpOEvgRJwzfQqXtUijdNcYVg0Nel+J2xQXRB5dzi9x85QRSjdm5dpJSdRzEVBbmxcCrXYRl1ng7y5IiEe4UHCZiwOypmZmofsjcD7HpQohuXgx6c10RVyPf/sEvwmVZB6Iw4HcWdP0E6LsjocwcwbYZw4dq2GufopHiOkYTaymy72vPqsax40Ge0ZuR2IJQyUkYk3FWfy1uO4qorLGo9QvhEwl+nvpIqiTV4JBMORDI2BsFhEuIBrKE4LQ0MHFDFVlCGucfSbx+ryErERU8E/QitofIEiNdMWz7r91KRJHk4T+eZZM0oYNDDCHL86dUaIW0KPjyQw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=5e5DGnlTUUm5bqIzdpftnmcC+Hjskr8o+zCI/SxdWQs=; b=UmRrjHCGMT16QVNMynDQiLcfKjUUM5Ie12EKmVOJN0ps6PALBDFXBWKRoCCE3jWNMZt0Rs+IgC1CN6pafBPjrQQeltI/5X2DN4aMbdBQZOmvvZF+qz95QWD4n7t3Lr4WG9r2MJ7kPKpw3EcNBbT4i/fWgMDVKNT84lBdj3kBGWo= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by IA1PR10MB964822.namprd10.prod.outlook.com (2603:10b6:208:5ac::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.382.10; Mon, 31 Aug 2026 20:23:26 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574%6]) with mapi id 15.21.0382.007; Mon, 31 Aug 2026 20:23:26 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pm@vger.kernel.org, bpf@vger.kernel.org Cc: arnd@arndb.de, catalin.marinas@arm.com, will@kernel.org, peterz@infradead.org, akpm@linux-foundation.org, mark.rutland@arm.com, harisokn@amazon.com, cl@gentwo.org, ast@kernel.org, rafael@kernel.org, daniel.lezcano@linaro.org, memxor@gmail.com, zhenglifeng1@huawei.com, xueshuai@linux.alibaba.com, rdunlap@infradead.org, david.laight.linux@gmail.com, broonie@kernel.org, joao.m.martins@oracle.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ashok.bhat@arm.com, Ankur Arora Subject: [PATCH v15 12/16] cpuidle/poll_state: Wait for need-resched via tif_need_resched_relaxed_wait() Date: Mon, 31 Aug 2026 13:22:47 -0700 Message-Id: <20260831202251.305046-13-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20260831202251.305046-1-ankur.a.arora@oracle.com> References: <20260831202251.305046-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4PR02CA0004.namprd02.prod.outlook.com (2603:10b6:303:16d::19) To CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO6PR10MB5409:EE_|IA1PR10MB964822:EE_ X-MS-Office365-Filtering-Correlation-Id: 4441a611-54f1-4aab-163d-08df079db638 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|23010399003|366016|56012099006|10067099003|6133799003|3023799007|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: xJ4/0Qrmvm0wSW0jz4uRkJcnikmxsmLedgCWHokpBXmAAzVhd+GFiPfrq+Kijcx/+SQzYtkoFpL1xnrEvbmKWEbiYxqZOAss/lvIHwevl8k0uCaZwprwtCbaiLa3tW6P5ValbvgJqOVVkYuAwj+2DuuNeJmPFIEEOJkkrBxyTBO5Uw6SURwDsL/VguPSrzLE7uuuWkQRYmHpsW7LqaysJMHa8/3JYTUJLq6TE1KHimVi/7Akmgp/9XrpYBuUpGjWY8iehcPmeO7z1BBLqtFfaCX6V9ZMv+mxq14ZOFga1q+3/apLLgvQZcjXEJgLK9zlvR13/KPZ3JSI2S+uE5MlMzgyJ1N2agQenXZ52Hvzzi9D7fseBNermljWTX5mgOR/jEMVJyDZj5PhK7DKV4rLh0NZ9E43zTo2aJdmRapd70jkmfR61gAGPYDthItQzT55765OSr3xS5Den4jeg3BXbLxU6zN/WbIT4srWF4fJFi9xc4WymB3kDF30nkIBt/oBj/HbNojrAy55D6Er2XY7IoV6TFeiL6xxGiyPMHij1kKSs+5216IcjHG9vUyChwPAZ3zvjJB3DUWahHNlSMofuQyHlrlxOE+0F+pRMGJEDQCibsKx4+xqS23eFFO7bh3Oc9vn20Uiw5fOuNK66FzQGf+wcXFUPuE4xr6/fiTpNhA= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO6PR10MB5409.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(23010399003)(366016)(56012099006)(10067099003)(6133799003)(3023799007)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?+ASF/y7jJBAUDA8Nw3rWjqSOIuxZY7Tt0aPaGx8800/hG8VIpye+in5HS8G0?= =?us-ascii?Q?3f3lCdMIFQJ0Sq6hvCLttqiCy3KE3+a7adAD5sossGuLU5bVadDnDUVZJXAb?= =?us-ascii?Q?5HsI4GFPWFz/1VNj3FBWAJ9p2G7bjTSC7uDU3mg+uosll86XBWa5UE9oo+BH?= =?us-ascii?Q?/LoI3qTLTxMGpLt7Ya5F0Dp4jR8QD0hIIa0UHG4BF4C8mRNjd8n6N2VDCFAK?= =?us-ascii?Q?EXQwrowNX0QXxbqUBHRa4y9XQr90F43EmZPO+NM0gzacWjWK3qFrOwLTXwOD?= =?us-ascii?Q?6N+q1PphwXqewpW8u/VvGAu5TGeqgjnEwmxSBmBsIeo42Heh+9RrTxtSfa7M?= =?us-ascii?Q?NHv/frnUre8CMBJdJkOK4e3RoLhH/NeDV2OqDhFIaw82RKDfGYe6NzP5S6Sz?= =?us-ascii?Q?g4cEgLbrzY29DQIh4f3E5Z52tOdgXrixuK3jkenj2w6LlFUX795uuOSqLOAP?= =?us-ascii?Q?at8WgMTqTvMmolH1857H7Su9n6B5JKYXu7jlTxEZIZ6/WU5IoOHhJCPVC1IX?= =?us-ascii?Q?Z+zuhfyTSs83Fr1Q7a/5pXmJO7tAr6/245IgMiUd3MVJxWUeJESI3aTf7him?= =?us-ascii?Q?LBMBg/66z5RPDbRNSGNga3Xb4MIVpfxuAs4f0DZ85DLmRQkrEYdTAY1qvW58?= =?us-ascii?Q?GkcpSoqeDq8O31hf5KZ2ERgODMpYZ6b+vqDnSJ5d9eI+FZ/5cZ12ejvyC993?= =?us-ascii?Q?XWuzH9jO2Mmfxs2TIa2to/lbc7a8Dn8M4KTveUgNcGSW7cSP6U44/7W1Ju7T?= =?us-ascii?Q?ybyeopg8Rp4KFZw5byLhGjeH9faIgfSLsmQudqDCKAbHEhs3N4wVP+tbVP7w?= =?us-ascii?Q?wSWbwK0dholMjbdIX+36Vu/YcUGRBQ+itICs850TJ/tRCIGg9TEZINEeVyyv?= =?us-ascii?Q?YZhIhRk9IkcKQiZkVJR0XghyaYdquCEvBLFXQCGBd9ceCUpIEr+s3LlyJZdx?= =?us-ascii?Q?pQ/giUv7Vd6SCnlYqZh4sGL/S1G+21KN+xxSs+Y/CvWHEbySn9zS1T7KrXOM?= =?us-ascii?Q?gSsg7rzcmnCTUzWstZfzkHiet8EqtJ3A4p/qk9bXGXONhbtdl9H8ApqXeFAO?= =?us-ascii?Q?TOcWdKYRhU5ve9z4qrhPDiYj2nQwXBYQd+1p5j/05WILebOmhAtokVfKU/OO?= =?us-ascii?Q?lryA9dFnkf6bFJOxoVrEQRmNsLTnZKp0mJOfWP3OsebSBBaqw7NgH1XED9mQ?= =?us-ascii?Q?SsG3zlG7Sco6KU68/sFt1i/6CXTmpc0xZrvkqb5e7CekGzfNhxGezjtspVGf?= =?us-ascii?Q?rDnsJBo2hchpVH+SYLPkQR9soEoJys2b6c8It4IsnFJrh7g7/E6d7NyUptrF?= =?us-ascii?Q?Xwvbii8YmSNo8oYCj03JuB6Wk5xPnK46/Dcm0FRJDSn0TtbFS9Up8a//tRjl?= =?us-ascii?Q?U+jU6Wkbj6SQVNLIb+3bHopdLnq1LBstDuDLWxXYTF+y9i0vUGcyLgbyfvM1?= =?us-ascii?Q?UBQp6HOWqEOhzUwZFVoTe5PveTkAfUBBdQUKvpfdF3rxIXzVxrGOHoY7AM0o?= =?us-ascii?Q?tGKHHyYaus4h6XyZHVYle59zOqKHuGhu+X/xUW97gagBVIlCTSr43JYhRrrH?= =?us-ascii?Q?6UiU/4gP/EczhavaVts9ZhsFo5t6GFYXx4RuxGa2oOSW96rIbowsQiRd7Pq2?= =?us-ascii?Q?3/0BJX/9dr0qRdayjQZ4lfz3rGytKZ0QZa1cw8udJzbywLwmNX8HhewnEkQq?= =?us-ascii?Q?jrJHD/lAgMtnKQ4pOVBRi2APPSUZj5GMDxI6ZnNJHX6p4BLRiBLNIvSIjy+V?= =?us-ascii?Q?IXlNrrbJOXVq6woA/wzGKSwY0Pt3WX0=3D?= X-Exchange-RoutingPolicyChecked: nUhNXsbtX82ZFvCH1pdUVyPMtZLdCC6WW6zyHld2ZPgKlgu98BKFQy4o0TJGm5kB3RTS8xjtqOfczknI50qxSdTpRyipEd01EbfMapB+knlmbhIXHYkJSDEUfAXOrvSFvrzSZ0n/NYsAaKHBbZ9czWHvpg3uVJBXpJXO97SFlna0b1ruEWkrt3veE/PEQANWRvqF0s1f4S57iCJu/a2aW9J7+/d8dizltbw6HtuI6uNS9tJ+tOhbRcxe6jKuI8I+F9ZpO0o6XpM0ZjHM9fXKkE83Sf9CMFjDgR95e7/uoxjPlEpFxPAhMHDUWrN7c3acSETahWtQqUwaZo/V6v2/QQ== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: xFtG0JPUrAhcnMgnt08P0J4rgti/PdFC4YwSrMaicmV76rNtD7LyasWlPyWZ+Bqkm0Y9gkHCKdDQDa1O8v9haFAiKRiwnZ69pyu2UkgHARZKHJ91Y/v1sJbuK/aFtZsipGI0vVSY7LBgX+7Dckwbi4j6qBuFj1ogkqfSJA9CW4rH9xFgX4x0RjGkwNehHpxiXvsWL0uXcwhQ5ZzF+4EQWcrd+JDV4+lSwcoWo1qgXX9vk9FYWyk7cEfAmcqKclBPPAxOr4gsZcp1IfliPA8sqIg2T6FYEs/WbUcUoRpduUo1MNLVsiCOPqVP/ZBpuMfrwUP/cmRc7UMIzYd8H0qFJYtrGRYQEUkDFkoHTCnIzGUM5cXgVd9kw9qyvC7QjsoNku+WJWocgmkTBsowQK+U6IsuyFKZ3qtBJX117D92iHuwZkM/aufQhSUcGsWOLvX+DQ6D/qB7ZUZhw6t7PlymFBTKeKcIMO0B1giWod6UOayhGBGEmSDq0hrebWa8H0wYKnL4VCqL4vOua5cdk95e1ipqapDgKmOcuRzAQfWyU3BlcC8bxSs2DPH+8rXK7Tm4RZOYVYJSI7TeEAO2CnRJh4dGM2uVlRfXCjRXQIGOTk4= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4441a611-54f1-4aab-163d-08df079db638 X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Aug 2026 20:23:25.9528 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Sme+Q9xEUWaPMSuAtjEJQUr0UUJwQOAJ7iWgfpGAxADMYTW+7/4mXuBj2kShmJ2e4gorMbbI6uJhxa0tkvbVAvNUa/HafGtmObJKyDZCwog= X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR10MB964822 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-31_06,2026-08-31_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 lowpriorityscore=0 adultscore=0 mlxscore=0 spamscore=0 mlxlogscore=999 suspectscore=0 phishscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2606160000 definitions=main-2608310176 X-Proofpoint-Spam-Info: AW1haW4tMjYwODMxMDE3NiBTYWx0ZWRfX5sei1LcfTZZ9 MCpzC5aFzcnKWuMqKo6lPGUDi9YPykI8AMsggns/TkjCz01eId806gD8039GaJLd31bnc9UNjYq lK4ubaor3v7pqisTpo7oKzMsdKhZPyMV3Yk8ui3ubmkZMpQM25l/ X-Proofpoint-GUID: lcrJFGYVBzDGYNsDrBj0VZk36hGvb6LT X-Authority-Analysis: v=2.4 cv=DPu/JSNb c=1 sm=1 tr=0 ts=6a95e2c1 b=1 cx=c_pps a=WeWmnZmh0fydH62SvGsd2A==:117 a=WeWmnZmh0fydH62SvGsd2A==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=Sv0fKeRqtYgA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=jiCTI4zE5U7BLdzWsZGv:22 a=EIcjfB9IiI4px24ztqRk:22 a=VwQbUJbxAAAA:8 a=KKAkSRfTAAAA:8 a=vggBfdFIAAAA:8 a=yPCof4ZbAAAA:8 a=7gr8-LgUhGOHEYCj_R8A:9 a=WmVTiCyuxqgg3mnwYu6p:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-ORIG-GUID: lcrJFGYVBzDGYNsDrBj0VZk36hGvb6LT X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODMxMDE3NiBTYWx0ZWRfXwsFPbB4uxENt kkxYKZUyKZW8JP9UxnjW5Y8bnDyPl2nEdrOaXh/LbrJyLkW3RtK9IQ/YtPiFzSETqGmG+Fl+xCI f9E+T0c2QjwPCy/PmseFN8pnoqBwJPsD7ZTfqZ9XKizwDQVY0s40so/0H+qwHHXkgCaMOBytPz9 LqU3wx/lPGMgzW5MbIaeP2jUz3qIg/faoITRuufI6KvRo7Vl1awCjBdoirSTt3m2Wcmar+vEP/0 3OanlZM7ezMHHagPE0aLc7qonvFMce04JonwWs/cjxrjDIsZytumiw4mqDt7KecoOk0WdoYjV2+ R8u1Hm72bGtOKB8FqMC6+e2k5iVPPo50WaYMA4/RWeQ3BeglJQxAPscLDJz1pK9q+mC+HUD561h ZOqLzbKqfxJI665tUIUkf8V2ZfttOTrvXnq92RAS6BPAzSm6BiJDDbMN+jnJGNTaw33D3vYKu6D nd6kJsVerl9fNURfx7A== Content-Type: text/plain; charset="utf-8" The inner loop in poll_idle() polls over the thread_info flags, waiting to see if the thread has TIF_NEED_RESCHED set. The loop exits once the condition is met, or if the poll time limit has been exceeded. To minimize the number of instructions executed in each iteration, the time check is rate-limited. In addition, each loop iteration executes cpu_relax() which on certain platforms provides a hint to the pipeline that the loop busy-waits, allowing the processor to reduce power consumption. Switch over to tif_need_resched_relaxed_wait() instead, since that provides exactly that. However, since we want to minimize power consumption in idle, building of cpuidle/poll_state.c continues to depend on CONFIG_ARCH_HAS_CPU_RELAX as that serves as an indicator that the platform supports an optimized version of tif_need_resched_relaxed_wait() (via smp_cond_load_relaxed_timeout()). Cc: Rafael J. Wysocki Cc: Daniel Lezcano Cc: linux-pm@vger.kernel.org Suggested-by: Rafael J. Wysocki Acked-by: Rafael J. Wysocki (Intel) Tested-by: Haris Okanovic Signed-off-by: Ankur Arora --- drivers/cpuidle/poll_state.c | 21 +-------------------- 1 file changed, 1 insertion(+), 20 deletions(-) diff --git a/drivers/cpuidle/poll_state.c b/drivers/cpuidle/poll_state.c index c7524e4c522a..7443b3e971ba 100644 --- a/drivers/cpuidle/poll_state.c +++ b/drivers/cpuidle/poll_state.c @@ -6,41 +6,22 @@ #include #include #include -#include -#include #include #include #include =20 -#define POLL_IDLE_RELAX_COUNT 200 - static int __cpuidle poll_idle(struct cpuidle_device *dev, struct cpuidle_driver *drv, int index) { - u64 time_start; - - time_start =3D local_clock_noinstr(); - dev->poll_time_limit =3D false; =20 raw_local_irq_enable(); if (!current_set_polling_and_test()) { - unsigned int loop_count =3D 0; u64 limit; =20 limit =3D cpuidle_poll_time(drv, dev); =20 - while (!need_resched()) { - cpu_relax(); - if (loop_count++ < POLL_IDLE_RELAX_COUNT) - continue; - - loop_count =3D 0; - if (local_clock_noinstr() - time_start > limit) { - dev->poll_time_limit =3D true; - break; - } - } + dev->poll_time_limit =3D !tif_need_resched_relaxed_wait(limit); } raw_local_irq_disable(); =20 --=20 2.43.7 From nobody Sat Sep 26 13:47:35 2026 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (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 210B43B058F; Mon, 31 Aug 2026 20:23:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788207837; cv=fail; b=Jb8BwemHHWchKSX7PbUzPNCiDa13Jevooke+OplND/l2ImkonPvcXjbmXMnm2NTtuLZ3p1Nm6hTI+3kjMOwGewwn31RUIQGrJxqNwvfe8OJYL/q5CUN02/TRzThlmpBvCbgaIdhzP8JtaWqr7NYUXPbnJFT1XBWLuu2aAQzaujA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788207837; c=relaxed/simple; bh=bWIMRAw4aFCddKERQNaX0CMa1naekBt+H1NtmwuV+gE=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=uIyZuXMgVZUHJdAwlweh1uLIi8Gd0W+/fd/dxhTCtjDAWbfLbR/U1FCSOGziU2U4GjqQSZtLI2atAtz1pEM7e79zHDQA6mhtp/HbSZFU8pCob80esVKgVTZ76SjUXM87hfcv/H6nmIm2udYzuL42/AWBWrw9G5lUJ0jgr/PpXnw= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=XNRMgQw6; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=VCcTpZMU; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="XNRMgQw6"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="VCcTpZMU" Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67VGBlmi1783774; Mon, 31 Aug 2026 20:23:31 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=bV8N2QIoA6qFMdyMFwvqedStsZzwALk+PcXU/i+ExoA=; b= XNRMgQw6NJnLBak9SfX7CDEOsZBE8t28mjPI19GHKIr5xIzYuWPSB4+KE09vTAxX LQgQfOwAslkQxjRcsY0N6qlXBynSe2QkF0klFwkxTgDmTKO2+UXgDx1xG/vtugXU BCAZqjd5s7+EOGt2gL6klQhjZUi3gLXQs90A/MyjdEEtcJ7VA+DTBH+LrRUuTtdE llneK38EApEZArDLGy5KGwTOc5e6dYxoviF1o9s9LW+YhHusGpPw2bK2ABspqIRM hRsdqbddNZTS3hB4Hif0ZcYMeBW4ctmAldbrSNn1WdYyDCf3wkfggbzgGP7WQ44B Uiu8N+D4MaeXFTNulcMflQ== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4gbp0xud5m-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 31 Aug 2026 20:23:30 +0000 (GMT) Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.7/8.18.1.7) with ESMTP id 67VKK5f8033203; Mon, 31 Aug 2026 20:23:30 GMT Received: from ph8pr06cu001.outbound.protection.outlook.com (mail-westus3azon11012008.outbound.protection.outlook.com [40.107.209.8]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4gbnvdc4um-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Mon, 31 Aug 2026 20:23:30 +0000 (GMT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Aqex925sh4F23PJjvQ4Rt3yURn653hiCfTovJFFIn/dvowWOkdKPmGz9v3v6dih+PD4Duenl8s/B1xZlCayMjLtdxOFQB3dI2SqZHMobaXaQfUimF0JN99SfpDqB2IAE3qidRHwuj0XxHzihcJVGLZboapoSX9kOBX7JbdOh8LL9rjOjreTqa2aAM5+X3ZZMRcXix8TpudMdbmJht6UekHX/Dzv1Q3sea878JnPRjB0lkFVpgIaoCyyZEIjhZjeYWCc6BIQwXR16Kag+MkJDRY2Zp+iHJhbMsSi1rK5DQgF5FkksPdOv/EgxGc9ORQ1Y09I1JOWnn5TSEEHL39ERWw== 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=bV8N2QIoA6qFMdyMFwvqedStsZzwALk+PcXU/i+ExoA=; b=oYzQfkk1nwY0HGnS8AMj50INRDd1FivZK1B7GRGh/N/4efs2vAh/c5JgzULy8YjyddgByuZ3Qf/VGMtBQF3eloMxNp6WuYLfghddSHpYw5aZ6asHlI3Uf61cXhFTA4iHoJ66kgnLjfpYtZL82P3kxc9K70iyjdeIOjhM4dPwejurSiRYsUM+jjEuuzdA8IrIb/CR3oZ6Ea2qzHzH8UotVfHSL5/cMJsiki20FtihAP3l0+l3kxm6kGP2H6ExzGxLeOmMmCB1lUOyPlkFwMk+cYAzOBnzWb7dw9Hr5+Ba8ftz8sK+j8Gf12rMUvV832YQrKNJygasIJu71lsr2WJnVA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=bV8N2QIoA6qFMdyMFwvqedStsZzwALk+PcXU/i+ExoA=; b=VCcTpZMUuPhWfENxFzNZligDV6JZxTBh5Pp0SS4UVRQ15QuNEc8vA8TCZv3sjzuQM9utL0JHibu8CHTlXBRiS3O1MYkQWun9nuhIYFifSXhcFB1fYwmm8NbTgXM6+djnOpSNslL30mfjrFqbNGg4JG9Bden3eg3DGR94UIG4ehk= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by IA1PR10MB964822.namprd10.prod.outlook.com (2603:10b6:208:5ac::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.382.10; Mon, 31 Aug 2026 20:23:27 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574%6]) with mapi id 15.21.0382.007; Mon, 31 Aug 2026 20:23:27 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pm@vger.kernel.org, bpf@vger.kernel.org Cc: arnd@arndb.de, catalin.marinas@arm.com, will@kernel.org, peterz@infradead.org, akpm@linux-foundation.org, mark.rutland@arm.com, harisokn@amazon.com, cl@gentwo.org, ast@kernel.org, rafael@kernel.org, daniel.lezcano@linaro.org, memxor@gmail.com, zhenglifeng1@huawei.com, xueshuai@linux.alibaba.com, rdunlap@infradead.org, david.laight.linux@gmail.com, broonie@kernel.org, joao.m.martins@oracle.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ashok.bhat@arm.com, Ankur Arora Subject: [PATCH v15 13/16] arm64/delay: enable testing smp_cond_load_relaxed_timeout() Date: Mon, 31 Aug 2026 13:22:48 -0700 Message-Id: <20260831202251.305046-14-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20260831202251.305046-1-ankur.a.arora@oracle.com> References: <20260831202251.305046-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW3PR05CA0002.namprd05.prod.outlook.com (2603:10b6:303:2b::7) To CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO6PR10MB5409:EE_|IA1PR10MB964822:EE_ X-MS-Office365-Filtering-Correlation-Id: 8515c1db-6664-4003-7911-08df079db715 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|23010399003|366016|56012099006|10067099003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: ciDJ167O4dlA2GUnlr4AgMKkBnJQEHTDvmNd8NlZky43IeNmxSB6T5HzD6nDzHoSmG05YPhfhc7ZA6o+wVXEDtkCASI7YQkGPjkTMNSZtl3z/1pL563w0EMwpIvnQ+y9n82oZ1/4pO7jorWTH+7H2Y/EhZYKICXeCvFC8XT6Z+6qMirStoc+UJVHQ2dGGqHFexiQjHFBnb0zz9r7Q02VexNUjJsXkQSgzm0GeJbCAbpR72R845RHvBvJ/YY8fH56+Dt4UlyAQUXznEYU5hf9NLQaXtSe6JfWIyxWVIaec1LEU9/XuMt5k5bzOVNLcD+XY7jrsQpZ2sxLt9Jo6zE29EgZR5YJAr4fi50OnICYUXncWFpIOpYT1iqgWfzo43+39yf3mhRWc7QAmrqWsdg8pzkMlCeZ5JFBE1JY+M/eXEOWPAF5WQ7Z+tClcFc1pUcp9iglZwSj6a4tm6r82UVQf7Lau5ITQOuPsl+s8rAR3/bheDKJOR6gDsc9sTwTJTnyuR41OcC56UOXt6uO6f4oZBJBEKdxX1fNYrryr6R+6/Lmf7OTroEpfOFybg4XXAoD2MusUkasKaa+E5KrjCAs4bq6M+K0X7T8Amy7BgLm6+4parSlYXEz65jUe0zMuXe7I4mfXQaM0MTAUVvjhRr3c57QIIICoMBOkHqyWtuhRAM= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO6PR10MB5409.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(23010399003)(366016)(56012099006)(10067099003)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?JPlaavy3hEIAEWsCX94RDlVlUeqb9lXHxu1RqA3WPsTkG9z+zzjRev47MpAE?= =?us-ascii?Q?Rd4XyzVSdzCb4dvJ+AXa81hgcoa/GMhPGJve8Bhj6SjCztho8UYjeMtUY25F?= =?us-ascii?Q?CGA1GUaDLZhfezirtXoFkcrxjkpsmsuOZxGXYhsqnWiBeMoXnUj1/0mx2Gdz?= =?us-ascii?Q?Spm9aXRDxgZkfe+r28kJOFksFsuD2dnlr1LsBxu4VB9R0xD32nz1t0IAaCHc?= =?us-ascii?Q?nUCCCnWZOl/x1h405lVmri3ssIuLXehfc/+ZxNJXR6zhkaRDrJeB/WbVwZL1?= =?us-ascii?Q?ONYZ4jDD8yRb9/CNZ2P4LYS/Wim79RZAnUKqpD9gqkDZNYzlQMTJm6TtgOy7?= =?us-ascii?Q?HuGL6fWBJ4ziEDjqJAZnAJAWSYevlOtJqKIcusTUoN5o9yI+a2XaWqLZwuva?= =?us-ascii?Q?NLgGjZKbV0F60ycBxledg1wnnWFwIvNIw/r86Xownd43yymXC7Vxw4dUPMMW?= =?us-ascii?Q?qFn66uPbgAYUukomNQj9tj5cS/YMMmMP3InHEcnMQ8wM6z80PQ7FpJKIIjPb?= =?us-ascii?Q?oHuuqGVaa4zrh+/e761s9lmDu+tGvlcy6lJdbLcL0dAbfva8iwtRTGjIJyxQ?= =?us-ascii?Q?vsDRvXfbUc+CVKCxn82fYUuuPNTIEio1ZHex806hW3q4O7LeLn/OOCHSdEtL?= =?us-ascii?Q?jtyypYIAoqofUK4Ed1CUmxcdv5qgDb8MAPdrhpPf7bUmo/QeHxJkPD8u1AEE?= =?us-ascii?Q?srxfy6MQsMdu65BRrFzJ/+bLVlYbpBRnhepVvKGKKz/Wh9lih3O2BZeIeADl?= =?us-ascii?Q?ta8GJekS+si6FMQvEg/rc2nPJZ+1mH2rDGye4qVwgbl8mKYejKmBmD2Oann2?= =?us-ascii?Q?Jog46JJnqlPdhRCZ/gV1mrjIXbruJbUMNsHM8orINt+mb7cBF1EOCMcKtRKs?= =?us-ascii?Q?A6d+HH8eySdhtC14iJq7wdVKFvdYkPEBX3ymW4m7WNJEmYI0zWiSMyhXc71y?= =?us-ascii?Q?CWyvkfW4WglvVBO58B1wwRxFJueCO6Q9mTYuQaNcG+MwixxCyazuY7YaYPCj?= =?us-ascii?Q?RxcyjLVnR3p/oEm1LOV0uzFg3HOHg72pl1/CsHWo1bkSimF+UsUlGWE9VmYu?= =?us-ascii?Q?fugVgTMcGkeLknntk8Okn4Az6ENKaTplkC01M1xFVSHfrXlgmkMCDGAEfOc9?= =?us-ascii?Q?Ox3W3NpUO/QCGxAO0RyEoNqGEQLx/7TCYq5oHzaaBomDmVAlBldhxrub0+DQ?= =?us-ascii?Q?WkpyCAizpBtU72+h+g6O40TEbl//orM4SAMZURKRv34Tt0OjrsgjUB1GoKQj?= =?us-ascii?Q?npR8iyvEAtyHuk+QvrXTXQl3LHeOrtLz65WtcT/lpvjItpEmXQL42wL1dMe0?= =?us-ascii?Q?yY2pu7Jcc9FnoZuMguVhjRc0PyG8CHNOEXwCrCoHqDDjCfHllcOt0k3Ka9tc?= =?us-ascii?Q?0pqTu77VH1yO4vQooVkvoSGY40Tg3rog/FtfTUEaNj9JTxkpAdToblS/o6oG?= =?us-ascii?Q?t4a5Dkuz3pvc11N7zu3cxw0gwPW+5P7AOh8Ho2JyPhEIC0ioIPi+ZOIgMiMu?= =?us-ascii?Q?OvK/UbSD2WqBG75d+il9zU1VpYU6i3OqfR8V5CWqnAcyfXKbCrwFQw5n2OSt?= =?us-ascii?Q?FHv0PNPJ7xK+u0IQ53noOoEClZWCSJ8YRVAJsq+JaUSRoaFJL9/6FvafEhRd?= =?us-ascii?Q?00CSY26+/0S5LDlpIXrIDDGa03qBlYqfTCB4DU7X54U436r1aWXnLeVYK/x2?= =?us-ascii?Q?IU9qv1j3hvIV1hjLNQsJh6naeYMnKx86xWfl5peiAe3mUqHt7cD87+p+hnEC?= =?us-ascii?Q?U8PMRDY8LapbBEbDu3O5GuQ4oVTfKY4=3D?= X-Exchange-RoutingPolicyChecked: WS/x8E2o6PjTN2HZYkHQsqzVsEwYv1FTQgwy1cA7VnZZc9yKu3JhWrIXBl50nKyMmTNpViHAUMYDp2qMrgEuEFP0Qewp10zqLc0dAT2918g4O6vqxmhDSM6no7bTApBfatGOU4MtenWb+Zy4wk19Kr8kkHerOTcIyXSLGcBCjFTNFVDtxSUNKx+tnwJp03hkhQnqbyb0XU+4FAddKJyUo9kbZZHKdgf99qcVBQM2D5tW87Ans2bnRE5qGgcGCbtlXnjWRfswJp5l6oswipPCDN7b+lJTfCdW5MjWrzmWmiLWIj/YCRLs9STIC8kS2fSrLweS7YSWoZnWIU1NwAWzVA== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 5LjbLlRVkQW+WaBVK0bjAIPYRGS6q/rMaPbEw+eVppTYLYMpGcuzLPS4tI/V5nrZWijvoSP1o4lGzX7eIxgalJuTS7DL6JWR6pWDcYAs6hgHN7eMk/vXdF/6VYYtgFJTgqsvdPyhbCw7vSsNcQh6dVzNgXiplOHWdNQg52p+NOyl+137/HkixvXrYmMN81dXnx23swXdbsA6hD2gAfbPZNq1Zl+g/jvIgbXtnUNaHr5rf3ww7E4p4TmIPH8f+zoxJNrYbLa2GJYnof6ckdd/CMzcsm4TIpHzPMdqV4Uxghfh7vZLOBvG2cG8/kDABj4+WG+829j3ZYaBjwUkxHJI4VhrY9gmD6NxGSsQ3bNK4WreHhyBj0JRu+/1ff1mU3OHi4H3WZciliLa+WGcI0pkol+bYDZaDjNuVS0VlC4ky6jJfMw1XO7gbHkasEzctZR1+fQhnOR2aLMdiexugfN1Lq4Vl19nIa1cgBvwVaBSu6UGSapViKdUOMprbsFlowQmUGMmTJjL1xZLwOY8NW0tY91UvFjM0LayrRa9xbrWfJs01uILc8g7KdZ4SussoHGJLlsBY6sp4J0sAUBqDjRuw1iZgZQz3rKCdm5cJ7xR3cU= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8515c1db-6664-4003-7911-08df079db715 X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Aug 2026 20:23:27.3528 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Fb+7nv5zvJG1XuNY1KQh8+NTWwP7Hy/usOFO1QZr98MmHrAjCMNn8pqdsupyCziRcvG4pspqNTXCe33nmHMMCNZquxr3Uc/1L7P/+M/8ZtY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR10MB964822 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-31_06,2026-08-31_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 lowpriorityscore=0 adultscore=0 mlxscore=0 spamscore=0 mlxlogscore=999 suspectscore=0 phishscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2606160000 definitions=main-2608310176 X-Proofpoint-ORIG-GUID: ZGfTdVIO4mhaVkD77sCJKimBfOPh7vbE X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODMxMDE3NiBTYWx0ZWRfX6mtFmma/rQNr S6mjqIL7hdzrm8X15vH62dTXD91uyEDDh0Ed0jei9K0+Pf/khOiHazh+4c0AE/YeXC2QT+gIEIf E3QKE/2Uo8TL6pURziwo3wCB+IB3pNk3ovpPOuJ1gyKHYgorX6uvKS8iBkwHxiYlCtEg95Sn+m7 QPbyYRJWYM5KBRA425rLrBpzHaGJVj+Pxu5NRq4rRMnUxb/YB4haMg3uGqQTspsJZv37pgkpJV6 U2F2N3vP5fy2XaYa7IbHLlUBgG244ckMnQzpmbs233/KJxOK7YKjeCYCimMYm8ie5O03+1BlpkF RIOZBDXsyPa9jSb6petYdcdP18QtTG0geMfyfmjVTL0QQR97KGmG3e9MuvmV+jn617lEnzHOWP8 hvIx8h4sz6soMR5kveGRXacR1p+PSgS85lxkwhHxAvun9F3Fvk7pifUgy2DP8JqIal+UU83g4OH hJ/CxlwJa45tjnV0siQ== X-Authority-Analysis: v=2.4 cv=Ebb4hvmC c=1 sm=1 tr=0 ts=6a95e2c2 b=1 cx=c_pps a=WeWmnZmh0fydH62SvGsd2A==:117 a=WeWmnZmh0fydH62SvGsd2A==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=Sv0fKeRqtYgA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=jiCTI4zE5U7BLdzWsZGv:22 a=RD47p0oAkeU5bO7t-o6f:22 a=7CQSdrXTAAAA:8 a=VwQbUJbxAAAA:8 a=yPCof4ZbAAAA:8 a=bb9Fw_vXVJAL2FTmegcA:9 a=WmVTiCyuxqgg3mnwYu6p:22 a=a-qgeE7W1pNrGK8U0ZQC:22 X-Proofpoint-GUID: ZGfTdVIO4mhaVkD77sCJKimBfOPh7vbE X-Proofpoint-Spam-Info: AW1haW4tMjYwODMxMDE3NiBTYWx0ZWRfX371mii0v0jnL MVeR0mGihgMrWJZsmePeUmHj8TftEgDdcQ8oqDrJijyg1MR/VfM6ERABsy2y4zyaeBQbAv3E5pf dpbu7iMvygF0rW3glLKPFbKjUzYlZusAoSYOBFCaComSbIa2KGMO Content-Type: text/plain; charset="utf-8" This enables the barrier tests to be built as a module. Cc: Catalin Marinas Cc: Will Deacon Acked-by: Will Deacon Signed-off-by: Ankur Arora --- arch/arm64/lib/delay.c | 2 ++ drivers/clocksource/arm_arch_timer.c | 2 ++ 2 files changed, 4 insertions(+) diff --git a/arch/arm64/lib/delay.c b/arch/arm64/lib/delay.c index f08eacef2f0a..20bc2894b65b 100644 --- a/arch/arm64/lib/delay.c +++ b/arch/arm64/lib/delay.c @@ -12,6 +12,7 @@ #include #include #include +#include #include =20 #include @@ -30,6 +31,7 @@ u64 notrace __delay_cycles(void) guard(preempt_notrace)(); return __arch_counter_get_cntvct_stable(); } +EXPORT_SYMBOL_IF_KUNIT(__delay_cycles); =20 void __delay(unsigned long cycles) { diff --git a/drivers/clocksource/arm_arch_timer.c b/drivers/clocksource/arm= _arch_timer.c index cc9a8b399004..227447b19b14 100644 --- a/drivers/clocksource/arm_arch_timer.c +++ b/drivers/clocksource/arm_arch_timer.c @@ -28,6 +28,7 @@ #include #include #include +#include =20 #include #include @@ -893,6 +894,7 @@ bool arch_timer_evtstrm_available(void) */ return cpumask_test_cpu(raw_smp_processor_id(), &evtstrm_available); } +EXPORT_SYMBOL_IF_KUNIT(arch_timer_evtstrm_available); =20 static struct arch_timer_kvm_info arch_timer_kvm_info; =20 --=20 2.43.7 From nobody Sat Sep 26 13:47:35 2026 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (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 5977B3BC673; Mon, 31 Aug 2026 20:23:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788207838; cv=fail; b=R2ZceX/gAeWGqI1gBHNF5I4prdJqXsqmZUE9w67cvN5njFKcazckcb1zotEYoOGuwXwRTCRiRrwJhGFcNt1d02uDy6VWn4l7YyWL1IS1Mo4rcfRrFXLbKQBZbNajJJQd3EpNG7bjaGtVhQz+yZtTatmdY/CjgM8JgCKiK/t6gXQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788207838; c=relaxed/simple; bh=ilb2S2/siR2BPVjdInXeZmOhaQDJRujS2yUk1C1zIPQ=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=VO+TIYjf6tGdLpfUL8Gg37/QpzejRBjOtIeyfkxlaRqVDpicDZmp6+ptvp0fbo5aDEruNsyf+JlNspw8xS22vKsK8l/z6sueEkxeFda6zE2upXYfY82dx8aUxuluQbUhhuW2Y/a8Sx/ESMZkw3ZoZ1IOzjKcXQISlPnCj4mkE58= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=IfqIG6C6; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=fB5WQwx9; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="IfqIG6C6"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="fB5WQwx9" Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67VGBmRr1783787; Mon, 31 Aug 2026 20:23:33 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=NvAPWkFws0xttWoNUFocoBjnCK70udKzyncjMmMa7Ww=; b= IfqIG6C6lwZxGq2K73p/2hZmNW2FgETfssugBwrcpLFQSryJ1hg3Z/3euLZA/3Fg NwHJig3gGeZ01i1p4ttN9EVbd9IPKmMcpYNmnvYxVyWxIelNfefYiPaINpsG1Zif ObrN8WdKDDpVpNou6o2gTX9Imr3eLzHaQKaUXLPx1FnG1U3AeJIwBTd1vpAUTfho Ier28SI92943BfPGAfZXYYxHZbbzsF3LnNa+L5rweJ6DerN4j4NGksy6ntxNDder EM/2/5lf9UFv7sho4Zui8Jr84IdUheozMB+nFfrats1sCcl3vJW7yjU0Xi62qXOV 1cFiwtYi6mZyMyZB1lyhgg== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4gbp0xud5n-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 31 Aug 2026 20:23:33 +0000 (GMT) Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.7/8.18.1.7) with ESMTP id 67VKK6mi033292; Mon, 31 Aug 2026 20:23:32 GMT Received: from ph8pr06cu001.outbound.protection.outlook.com (mail-westus3azon11012054.outbound.protection.outlook.com [40.107.209.54]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4gbnvdc4ve-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Mon, 31 Aug 2026 20:23:32 +0000 (GMT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=hYEBXtif2CG3heaL4U6DB2cERPTSgFhjntw+661Sn59g6aLpqk1O3tWjfzxC9I8NTN9h0J0dGE0sx/7jdLKcH7r9moqBZDIaXddU4V4TN48cggUS8hdReDrAvMAz97zl0iw9VCnR3TtCqyV7+EkidzydI5hfJiS8EhLXof4HkZ6wwEMoGJYPsDG3PXR1VYcyM90jfJhOJy/dnLLlIVLnRljmHQzu0adjscPzMPstuQ3pKZuOjD4GaJ8rVN3jXWaZVejqFqFje9NZlL0p0YoKvcS3WMNcf3FiGU34knmJX1VxI1E7VWxQh4r2yV4uYoTH/uc/DaHVidLRYVFkayTqIw== 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=NvAPWkFws0xttWoNUFocoBjnCK70udKzyncjMmMa7Ww=; b=zPVR2b80qc4DV+ybWoiKrobd3H4ZIcgOyykDjLsvnGNj4u8O79eEpHEn4L9ayHSdajteXjly+zhJ7Rjtrtbmy2bas8coxqk7cAa/Pt9qBeUNxr+z9zTN2/Dri7sN8WQt8QcGycJ5+mSfJL1jgK8ddBXzeM7jl3H8xGlT9+WdhDRnkY8LSitZicKRtD8xAhzGQ4fHRths2+BMTwZ/9FYnwFa4gG7Rncvm2FS+C3T973fmRI4eAn8UYfFgOIlPObkziLwG6cngOdjRJHepp6Vi0gOnJ7xYcZSH1V5+tDIVWVxZqy5S5mK6NTWqnogIfuoToNXBC2m9QU2XoTduV2/3KA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=NvAPWkFws0xttWoNUFocoBjnCK70udKzyncjMmMa7Ww=; b=fB5WQwx97zuiuN3dlKnutnCNhbyo2Ln/oJm9ns9WDPpeQEd1U1TaSLXIBEol2Hjxr3JfkfiEa0BovCWHFvIOeQ5UDTvRsv2gROTwhn1FFXefirgqfdHhCYPijUPyqX6qgQ3d90jzBvFWuks0rcFp3goPO6ASx9nl34BcjrJiJ6Q= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by IA1PR10MB964822.namprd10.prod.outlook.com (2603:10b6:208:5ac::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.382.10; Mon, 31 Aug 2026 20:23:30 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574%6]) with mapi id 15.21.0382.007; Mon, 31 Aug 2026 20:23:29 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pm@vger.kernel.org, bpf@vger.kernel.org Cc: arnd@arndb.de, catalin.marinas@arm.com, will@kernel.org, peterz@infradead.org, akpm@linux-foundation.org, mark.rutland@arm.com, harisokn@amazon.com, cl@gentwo.org, ast@kernel.org, rafael@kernel.org, daniel.lezcano@linaro.org, memxor@gmail.com, zhenglifeng1@huawei.com, xueshuai@linux.alibaba.com, rdunlap@infradead.org, david.laight.linux@gmail.com, broonie@kernel.org, joao.m.martins@oracle.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ashok.bhat@arm.com, Ankur Arora , Julian Braha Subject: [PATCH v15 14/16] barrier: add tests for smp_cond_load_*_timeout() Date: Mon, 31 Aug 2026 13:22:49 -0700 Message-Id: <20260831202251.305046-15-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20260831202251.305046-1-ankur.a.arora@oracle.com> References: <20260831202251.305046-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW3PR05CA0030.namprd05.prod.outlook.com (2603:10b6:303:2b::35) To CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO6PR10MB5409:EE_|IA1PR10MB964822:EE_ X-MS-Office365-Filtering-Correlation-Id: 195ab031-01a1-4b3c-32e9-08df079db7d1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|23010399003|366016|56012099006|10067099003|6133799003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: l+juq5Y06xuplaBSRvCzyfTIyjEJ28lOM0AAHqd6lbVrtU/PJY1T1E2HRKEnWXu0K9obNLiZdRYrNU2/R/l2tUw7TDf765xDrUEuarntv4hShFHSgziUsWlQ3WjJPAySxqlMNuIbp1kAVieux2UE0q8bxGEAuTnbEfyN7Dm/kqFf9hNtmogafrBibFSJLg67vQMhmzNJIBkrxs+P276Wz/NqdCigyd/+IDXAtq5Pq93T2hAVRjb2H8+a/fUGB0LAvJIXfozjDptZEQjm52g4c4j1LSvHwCNtTFc/5saWJ/oCqbT646jSHVqqz48vipr6/Ux0wKyCxWq4I2N0Hps0gP+YTbOik/1XaCLIOmvPLnRFW7dTLgUhW4eQNfyqaFiVv1fEMt1BCQmzg3PEejz7gZyPiYmpnVI3u84LmU599ft9gHFGRK1eQvKuG9UcYrQJwAYxFFaYGnLAJZWZ4Qx+m7N54VXmq8PIhC2VCwdXsqHF9OzBONqd7jqt423h4xBE9Id8oL/NeRi7hOc+jSG8nMaQb/IQx3tCr4x19G026AxnuI2PG4iQ9Z35Jwm3LC12GUTqzkkQ92e3UkUGWZSQQ9ebBVwxJf6ZPt6hJmw/pYPdwBBjCIagGMPujJ1OXXJoBEwmDGzYun/qwBzJrQxzdepxweT4VTfzLF2evKBcUos= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO6PR10MB5409.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(23010399003)(366016)(56012099006)(10067099003)(6133799003)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?sec+FPrLU2BWcQJswQ9hvZlaLk++RURE2sJUx0y4AgszhqWsz1XtcdBrv6zZ?= =?us-ascii?Q?J1BNJieiRIsWEq3uXA4SFU1DZ2kHDMGQWVUr1yfvRRubu8pZ/TOpX1X1BrBQ?= =?us-ascii?Q?A4W9vNbsI25GdIwWRZo+hG4VZGj1huG+JdP64fSE4g1BrDjcbD4EAd3cZpA2?= =?us-ascii?Q?VYVatleM70bOGiXD0ECKcGeV2WyWayfx4Qy6EPjOyuRKQrqLqdtFw1AvNPcZ?= =?us-ascii?Q?CofdKPyXeECW0oPkkdg97zVudgMV9OYmYp7GPI22EaabFyuDcbQ4zLk+zMgO?= =?us-ascii?Q?TSmDxSJPxEVKd0+DeVXNu2PV/y/INZsBy20/bXM7rsYg7dQBGunE2neYUVX6?= =?us-ascii?Q?e2kXV0wfciti8gXGnz5oGL9M8rLButwEFP2300g+zB9GKJNfpIMVSvvcTPhF?= =?us-ascii?Q?PlAnKaWsL7cIPK7Dzq+EDZJW4f08zHhwLB1IXnKdIQs5LAvMsxXSCYDjWAYs?= =?us-ascii?Q?EssiackC/iAbzRRwgTdrNY75v/UVR/Aj4qt67dUS5RF9gmHWE1bv2x91/6uT?= =?us-ascii?Q?/GfKOwGywuu/ssVXu1+sj/n0uy8Ezcz8bI56a+Dx1BReCtCDHvR/YVxpiJ27?= =?us-ascii?Q?9BZyJ8eHUx8yEF2mDEbLmuEgyE0llW03/5IK4jLyw560us6kgyMs3u5WD05L?= =?us-ascii?Q?Zb5RdfMeXL6QZhHKPeMX/qQ72K7VaX1JeG3oJpdRtwLTJxWhsBeRvoskShIW?= =?us-ascii?Q?aoReoIkBqnlqgqzqyT3O6Z4JJ/bMlyq2Lz0dOfsLM3RUER7PMjVXuaZDYSjS?= =?us-ascii?Q?6ma5ipyccXq1i9nOuzJ+HIDVoYkubF8GwShnesmpnKoxsSDL2/l1YD++Bx1Z?= =?us-ascii?Q?dl4kDxLCtf8+hbrgHhcjcQBr4fekG/lxo4kped9LsYAHA0ljn9cCJTIBpTgn?= =?us-ascii?Q?rhBEXtKw+ZGiSgRvC10YJMhiinjC1wKALVvOxa0aaLL01pG3B9Mv8Tx9DybS?= =?us-ascii?Q?K74gAbe2DHPH1YcX1ohTFkMaG4JIz/YasxVD08+pQyFJOz361atzzMBIaGus?= =?us-ascii?Q?LHbolOR4OTUd7gsYparJV+6jrqAuKCB7bbhjWuAPKXCGaTu9Fa1qIuzmGU/j?= =?us-ascii?Q?z56nnTmAa6FK0HQP5CSvOvwmPPDdyr+YBIP/4qaJ78KV3273wACQS9Ph8aYb?= =?us-ascii?Q?CHZWg2klzBaX272DSanEfXlJsWLegtiiDqUJmOd1aBPFTs/A5BgvieHMddbf?= =?us-ascii?Q?k+eFxDbw3uSs2nsJpc7nbtSZeC1RdiuvNQ2rRVNPGnDj1DYcq+J89tAKp+RH?= =?us-ascii?Q?scqajdyeHLMk1Gdk6B812sJFxaOj/v7UdpL361TnTQyq6s54yiqPNabVnP+B?= =?us-ascii?Q?WfBDw4mUuoK5DlRE0ZMlUOiDk9iZf7+DPc/7KKowpFuNSwsXQO6gVweOagC/?= =?us-ascii?Q?SsdKMFSCSK87bbBhZGE2z1Ne5z26nuIYgQbhOQzMMb5B6pBOFQytOdkKt8mt?= =?us-ascii?Q?pFHbxn0RWQxuNFeKqEl1Fk7NqhH4JnEZso9ju7Dj3OxEZPdSXIf8lJ8BZ00Z?= =?us-ascii?Q?PuBPk9z5JMmNpsXELs7CpxAqoxll7cQ03BpvlYTTHShrANYF1h+aT0C5MH2r?= =?us-ascii?Q?EZsJmdLP+JmOcfvCEHPBHUYKXvOAbFiHgl3z8LJl9KRlRIQkVmb9uIHPzP7H?= =?us-ascii?Q?o7EXvS0kxIxqoWXboZRthB0ZtF+mQRLidlNUf0CrskWpJhRl2h3+aMcRe3Qi?= =?us-ascii?Q?Y+GzIUoWXnCT/7tmVqjL7FtJlAWLuLvMhSVjwe3lJwUkfgz6qYjYn5lNBMOi?= =?us-ascii?Q?V5mMOIlLvP69b8a8tnmNQVXKUOU/Wig=3D?= X-Exchange-RoutingPolicyChecked: FW4o07Q3o5Xq0ayMFMFEpKtmIHFhG0u7OH807ZvyevrI9r5ngs0+qUbytVEuNCYetdklvEmDiIkqDwRDneKJRXjBpguTifhpvdABFy8FSBsZvDUr813ZrOHyY3MkGvkox3Yz8pCK/S2KyxnH8bpzDMJklXordvk+J5pxB5FXpcUss52tgB98DRxbvH3+3Ns7KcFB/u8RzDrDb2CfXfbeq/BH8gu59Lr28eRE7DEvWGvt8F15NA+tFZigXMcNHfiAknwp8famDcy7E9pTpw3s9aK3VZCNO9cHpT9ylz+n31WFD4RLzHVyNOn+dzejlnZqRWY49PoR398RnFiRwntSzA== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: LbuCL/Ys/tAhyROxTf0LPp0ZW1/q1vSMrIWjpLHowQe/uan0fZpeMk+RrJCdormKiu0MMd8xPyPGKgWpDnj4bG32XYaD+eAByhOBZG1VjyiUmuvD7p6Q3wXwO2rO+wrENm+uIxMQGj1Nuv18nF+JhJTiUjSEV6pFo+0FLznK5MdscvS+4e4v8Dqns+MZnAQH1QTSxMlGHEDsMA52KHJ0UrNlp359Tv9Usttdoxd5l+pQIOeNNhrUAVgIC+S2+OvaCO6h2BFN1Xj3KXHpKmVA4OiCR0wGwnkQjcFVWQ8ag7tE6/24/Bctw77opHNAw7t0srKFd3YYMGJpCpxFk3islsRo27/Yru1GxY5Bsv8Ou4BexDFAqsQMZER8FEoeJOChNWPAVOF7rlbsmS+dXZpTRUN/Dzqfm6Cf0FZMcfqCz3RwTZO0l6JKEmCRNRtaNxKXQP42MJ+/RyE+bxojLogQ2M7G7T2ZbivN7UDjiUGSQ8rFRD7EtRBfvulV0v+LSoDQ52oh2soO4pwi+WUxud8GL98hJtsaUzSEO0j5tIzepM1B2s9DRTG4UfFage9oCvo8juM4taEH+uwhEGlYhIc8WOK1YLDx0YwiR8ez6+Ob7Ng= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 195ab031-01a1-4b3c-32e9-08df079db7d1 X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Aug 2026 20:23:29.9191 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: hfo7/w/wp1cyrlaWwsL/wN1XExkschGoaaiidNKsnkH9j/F5gq1gHgUINATmTFUzWRPiIRiPL4y0LqKdlOfY0hVM0EvkhaFHY9C1nkIAjSg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR10MB964822 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-31_06,2026-08-31_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 lowpriorityscore=0 adultscore=0 mlxscore=0 spamscore=0 mlxlogscore=999 suspectscore=0 phishscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2606160000 definitions=main-2608310176 X-Proofpoint-ORIG-GUID: 7jfqUWalg-LkRkIkJ-e43dirQM2m0xfj X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODMxMDE3NiBTYWx0ZWRfXyfzCYvWNhBQL tBHkGFpy0FxDg2VU2ix0haG7/NkENnGt+vQ2vyAgkDPuh9sfF3PcTsaoQYpnn3xSOe8xxBBhcfZ ucsU9BFhmEme6mEUvGxsjiJPiuQf/VkoOp5GRsh0oOvYStmcP/fzCzr5ql9wpt9wOVoqNjy3sb4 YzmkpDK0vpyPhXWlH2PLjx6akg72pzXE0v5IMR0KwygPLnhky3Hi7wOwrWBytMq7hFCK6KcQmB/ NSV/wYzAhMK5SFW5nKE3qVaQauxhCo1mrrnmwPigE7L7TmJos9JSFT5FdjUBh02jaDe77fNLzjO SfSZg93b/8tl4PmyP1t5nowwY4NKjTo37E8rv+5vkIqH03E+XpSN0z3psrrKpjhP8cqS0eOhODK QGKy4C1wLhwwbTLPEs1p1qD6zkRImXjYhpKKEAqXXFZdu7ezRWQY17VM4bG6cBOIUf5AGqY5+Qb rwxXa9jv0kVWi8q2CMg== X-Authority-Analysis: v=2.4 cv=Ebb4hvmC c=1 sm=1 tr=0 ts=6a95e2c5 b=1 cx=c_pps a=WeWmnZmh0fydH62SvGsd2A==:117 a=WeWmnZmh0fydH62SvGsd2A==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=Sv0fKeRqtYgA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=jiCTI4zE5U7BLdzWsZGv:22 a=RD47p0oAkeU5bO7t-o6f:22 a=pGLkceISAAAA:8 a=yPCof4ZbAAAA:8 a=RKR6g2HLBOl8dGFUrsIA:9 a=WmVTiCyuxqgg3mnwYu6p:22 X-Proofpoint-GUID: 7jfqUWalg-LkRkIkJ-e43dirQM2m0xfj X-Proofpoint-Spam-Info: AW1haW4tMjYwODMxMDE3NiBTYWx0ZWRfXzGa1cG2PRiZw DFa8YTbIOdciKBDdssFRGvs8Z4ktnP8Uc/mlycMeR11UCmLBg1rM2vAexAZzQxr2KqBfwVwh1pz 7D8fYFz2sZYsccSsvIhWPmmrOQ+JHvKokYMFADyP/URRveO5U1cq Content-Type: text/plain; charset="utf-8" Add success and failure case tests for smp_cond_load_*_timeout(). Success or failure cases depend on the expected bit being set (or not). Additionally in failure cases smp_cond_load_*_timeout() cannot return before timeout. Cc: Julian Braha Signed-off-by: Ankur Arora Tested-by: Haris Okanovic --- lib/Kconfig.debug | 10 +++ lib/tests/Makefile | 1 + lib/tests/barrier-timeout-test.c | 126 +++++++++++++++++++++++++++++++ 3 files changed, 137 insertions(+) create mode 100644 lib/tests/barrier-timeout-test.c diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug index 134b15a44625..c93d1747c014 100644 --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug @@ -2509,6 +2509,16 @@ config FFS_KUNIT_TEST For more information on KUnit and unit tests in general, please refer to Documentation/dev-tools/kunit/. =20 +config BARRIER_TIMEOUT_KUNIT_TEST + tristate "KUnit tests for smp_cond_load_*_timeout()" if !KUNIT_ALL_TESTS + depends on KUNIT + default KUNIT_ALL_TESTS + help + Builds KUnit tests that validate wake-up and timeout handling paths in + smp_cond_load_relaxed_timeout() and smp_cond_load_acquire_timeout(). + + If unsure, say N. + config TEST_KSTRTOX tristate "Test kstrto*() family of functions at runtime" =20 diff --git a/lib/tests/Makefile b/lib/tests/Makefile index 3cac3b63a752..711302dd8ab5 100644 --- a/lib/tests/Makefile +++ b/lib/tests/Makefile @@ -14,6 +14,7 @@ obj-$(CONFIG_CHECKSUM_KUNIT) +=3D checksum_kunit.o obj-$(CONFIG_CMDLINE_KUNIT_TEST) +=3D cmdline_kunit.o obj-$(CONFIG_CPUMASK_KUNIT_TEST) +=3D cpumask_kunit.o obj-$(CONFIG_FFS_KUNIT_TEST) +=3D ffs_kunit.o +obj-$(CONFIG_BARRIER_TIMEOUT_KUNIT_TEST) +=3D barrier-timeout-test.o CFLAGS_fortify_kunit.o +=3D $(call cc-disable-warning, unsequenced) CFLAGS_fortify_kunit.o +=3D $(call cc-disable-warning, stringop-overread) CFLAGS_fortify_kunit.o +=3D $(call cc-disable-warning, stringop-truncation) diff --git a/lib/tests/barrier-timeout-test.c b/lib/tests/barrier-timeout-t= est.c new file mode 100644 index 000000000000..60f121fe5472 --- /dev/null +++ b/lib/tests/barrier-timeout-test.c @@ -0,0 +1,126 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * KUnit tests exercising smp_cond_load_relaxed_timeout(). + * + * Copyright (c) 2026, Oracle Corp. + * Author: Ankur Arora + */ + +#include +#include +#include +#include +#include +#include +#include + +MODULE_IMPORT_NS("EXPORTED_FOR_KUNIT_TESTING"); + +struct clock_state { + s64 start_time; + s64 end_time; +}; + +#define TIMEOUT_MSEC 2 +#define TEST_FLAG_VAL BIT(2) +static unsigned int flag; + +static s64 basic_clock(struct clock_state *clk) +{ + clk->end_time =3D local_clock(); + return clk->end_time; +} + +static void update_flags(void) +{ + WRITE_ONCE(flag, TEST_FLAG_VAL); +} + +static s64 mocked_clock(struct clock_state *clk) +{ + s64 clk_mid =3D clk->start_time + (TIMEOUT_MSEC * NSEC_PER_MSEC)/2; + + clk->end_time =3D local_clock(); + if (clk->end_time >=3D clk_mid) + update_flags(); + return clk->end_time; +} + +typedef s64 (*clkfn_t)(struct clock_state *); +struct smp_cond_update_params { + clkfn_t clock; + bool acquire; + bool succeeds; +}; + +static const struct smp_cond_update_params update_params_list[] =3D { + /* mocked-clock updates flag inline. */ + { .clock =3D &mocked_clock, .succeeds =3D true, .acquire =3D false, }, + { .clock =3D &mocked_clock, .succeeds =3D true, .acquire =3D true, }, + + /* basic-clock doesn't update flag. */ + { .clock =3D &basic_clock, .succeeds =3D false, .acquire =3D true, }, + { .clock =3D &basic_clock, .succeeds =3D false, .acquire =3D false, }, +}; + +static void param_to_desc(const struct smp_cond_update_params *p, char *de= sc) +{ + char *clk =3D NULL, *update =3D NULL; + + if (p->clock =3D=3D &mocked_clock) { + clk =3D "mocked"; + update =3D "inline"; + } else if (p->clock =3D=3D &basic_clock) { + clk =3D "basic"; + update =3D "none"; + } + + snprintf(desc, KUNIT_PARAM_DESC_SIZE, "smp_cond_%s_timeout: clock=3D%s, u= pdate=3D%s", + p->acquire ? "acquire" : "relaxed", clk, update); +} + +KUNIT_ARRAY_PARAM(smp_cond_update_params, update_params_list, param_to_des= c); + +static void test_smp_cond_timeout(struct kunit *test) +{ + const struct smp_cond_update_params *p =3D test->param_value; + struct clock_state clk =3D { + .start_time =3D local_clock(), + .end_time =3D local_clock(), + }; + s64 runtime, timeout_ns =3D TIMEOUT_MSEC * NSEC_PER_MSEC; + unsigned int result; + + flag =3D 0; + if (p->acquire) { + result =3D smp_cond_load_acquire_timeout(&flag, + (VAL & TEST_FLAG_VAL), + p->clock(&clk), + timeout_ns); + } else { + result =3D smp_cond_load_relaxed_timeout(&flag, + (VAL & TEST_FLAG_VAL), + p->clock(&clk), + timeout_ns); + } + + runtime =3D clk.end_time - clk.start_time; + KUNIT_EXPECT_EQ(test, (bool)(result & TEST_FLAG_VAL), p->succeeds); + if (!p->succeeds) + KUNIT_EXPECT_GE(test, runtime, timeout_ns); +} + +static struct kunit_case barrier_timeout_test_cases[] =3D { + KUNIT_CASE_PARAM(test_smp_cond_timeout, smp_cond_update_params_gen_params= ), + {} +}; + +static struct kunit_suite barrier_timeout_test_suite =3D { + .name =3D "smp-cond-load-*-timeout", + .test_cases =3D barrier_timeout_test_cases, +}; + +kunit_test_suite(barrier_timeout_test_suite); + +MODULE_DESCRIPTION("KUnit tests for smp_cond_load_relaxed_timeout()"); +MODULE_LICENSE("GPL"); --=20 2.43.7 From nobody Sat Sep 26 13:47:35 2026 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (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 1E8B7394792; Mon, 31 Aug 2026 20:24:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788207846; cv=fail; b=VG+WdST86cd3kutTSZ+RbWfeK9c4Im6RnJjzu3iRrF270gegBTWQ2Riou413xvkbFEwqFVYPTCY82KCYU2ukhBz9ArXxmwU5c5MIiQSY3QMR3xObPLdWDWZGeaI7QllVfr7+XPmiamhXIz4jBYDmbLJa0MhozX2z+oU981Cvpn0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788207846; c=relaxed/simple; bh=yP4LWZscxIASWRj9G8N+R2uWMADlSmpMlTRMCdZzwUs=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=FDZXqasV2074mxq8BKjW6P61azWZvqdSlQs2CQbZXR3ia7yRYZOU4kxKaNYSvePIPY/kvYJsUwo8egXpwYyktgJh9WGyGNjfuaWJiW3t32spv15xzMgVnVvfLFKyb9mgttgbfxW2tMOeuBnC7CA3/6dnJ2uMK71E/iVv5n6BoBQ= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=ZLULV3mo; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=SB5wgdM5; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="ZLULV3mo"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="SB5wgdM5" Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67VGBm7Y1783783; Mon, 31 Aug 2026 20:23:40 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=GiJINlLi+brQLwoeJ4A9P4xfXn49rT69C6yRChOPCbY=; b= ZLULV3moUJ6l2XTRF/vtFmmm82VNe3vV2X2mEimaO0A+ZGYDKf7sfUFcBsa+N/pQ R/AH2iWzuCQ8varcbUWg175grlmYHNGo5n79ejGVcoX17Ced3stJ60PuMnxZLDj/ n4lPhBohCXgVi01sba4lWZNumT2GRYGfvTLp3LYSTsG2g+z/Wp09FReSox3fyN/v xPIm7gkTji1S5xLetoYQ65GWYtJa7ovPnIzRScjDr25WYfIv6pIVheVPH5ELiHYW NAl2V6CaltnjpbtS8GHitP1RRg857YG4i2EwbUf6FW9MTdOG/ZWzuSnMqrtkgKMJ zn6MbB3snTDyJNgIXlnmxg== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4gbp0xud5u-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 31 Aug 2026 20:23:40 +0000 (GMT) Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.7/8.18.1.7) with ESMTP id 67VKFb9A032781; Mon, 31 Aug 2026 20:23:39 GMT Received: from dm5pr21cu001.outbound.protection.outlook.com (mail-centralusazon11011069.outbound.protection.outlook.com [52.101.62.69]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4gbnvpqu0r-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Mon, 31 Aug 2026 20:23:39 +0000 (GMT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=JOFKHjMkttuWvz09qDGJNK7qHv5Idj3fsJ1rwwuC0o0gqLjl0duTqRKZ9DOqyAaJbfBPQTD3iKGA5xLqOLXplKQboGuIQuRH7LdphgY794f1qSpUbjhKNl3BW7I/7fi8KQnyU5ejec36H7VHrlsmUOX5vAuoc6fGmfYperX4UfzXRHpnVYkBp1R4OWdb0tQ4QNPbTewSN2RysDC5A/5kKmhv5OKQTJ9LNjngzPohCdsEsWvnJU1NiwqPJF99V19ZSBD6GfkAWn9fzT9PQqlIuHgEbZUBh/PuR32dG51kHjdjrTe6Gfplg9a9FNN1K2Iazb/RlWX3k945XLriBC+5sQ== 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=GiJINlLi+brQLwoeJ4A9P4xfXn49rT69C6yRChOPCbY=; b=UvodBtMSqWEIrK3SQk9nXvL7zUE3y8FbQH6rXdiwdVGAsIY7g3Rd0kRWI9EZPLyvjjp9ztTPduu3zVLdICQDasYj66EZyL9aLBXSRvEWl2ZXKfRUdDblOv7rZiAkbWOWK9tDFAcoX5B4ih3Goe1ucvUPIOxTFk/DDTvEld76ZTsP9YM6NUXbzxm1qNsd7QlGeklaLF6qmaxyDEL3ush8C27fQaccZa3YcGSYNAcx2Xm/wZkfFSGW1mSkWW88khKFwGjivfcShnzgpY9O46hnPiSsmiWb4ZQoQ3qPZd2PCpTfJvs0XOYCdSCDKzlR+U+0IoAL0KNoqphmeFT8YwTMBQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=GiJINlLi+brQLwoeJ4A9P4xfXn49rT69C6yRChOPCbY=; b=SB5wgdM5/Na7mYZ6/azp04gfrt/8rlVaImms213M2nkWHb6URxoEDX+k955oATAHuH4KQg7UUV7DNMnBEaSCHt4Oy/wAer/bDTENY+yUq1MCuPxK4AfVywUV2og/FzwFRJfHYUq3Gs+HCL3piaT6JouLc1z6lPdYZr2JvrHG5Tk= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by IA1PR10MB964822.namprd10.prod.outlook.com (2603:10b6:208:5ac::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.382.10; Mon, 31 Aug 2026 20:23:35 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574%6]) with mapi id 15.21.0382.007; Mon, 31 Aug 2026 20:23:35 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pm@vger.kernel.org, bpf@vger.kernel.org Cc: arnd@arndb.de, catalin.marinas@arm.com, will@kernel.org, peterz@infradead.org, akpm@linux-foundation.org, mark.rutland@arm.com, harisokn@amazon.com, cl@gentwo.org, ast@kernel.org, rafael@kernel.org, daniel.lezcano@linaro.org, memxor@gmail.com, zhenglifeng1@huawei.com, xueshuai@linux.alibaba.com, rdunlap@infradead.org, david.laight.linux@gmail.com, broonie@kernel.org, joao.m.martins@oracle.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ashok.bhat@arm.com, Ankur Arora Subject: [PATCH v15 15/16] barrier: timeout validity checks for smp_cond_load_relaxed_timeout() Date: Mon, 31 Aug 2026 13:22:50 -0700 Message-Id: <20260831202251.305046-16-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20260831202251.305046-1-ankur.a.arora@oracle.com> References: <20260831202251.305046-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT1PR01CA0136.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:2f::15) To CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO6PR10MB5409:EE_|IA1PR10MB964822:EE_ X-MS-Office365-Filtering-Correlation-Id: d180bca2-c1e0-4f60-a518-08df079dbbf4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|23010399003|366016|56012099006|10067099003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: QUtuoHRVVBOn5gguDHZMoRcwMp9E+5ZCdHVXBpCG4jKqyMei1zxqjo5vnZkeFZwM0KeTWZOOgklez5DU9blVi6JCUvoEPdVf6evJ2X7w1Z8Y/j0/pljfLFojO//FhnXEQjow/TRYV6kSCviukg9xM/4pewFj3FIuGwLZ21CIHa3IkcULFOdAWdK02OyWaV1eAsbP5/hkvXIVnvYOkzY9bL4PiAdjc6d90EQlsyBXwC2wVy8z9hN/cjLBA6pGMp4ESCTUsWBfIIzS8Ik7k2EwEBe0grBGku9STOKuy8fKSyGgijLrVnG7q25MWlgfK3ftZg3+cWT65PSBUeKw5p65EF7eM7zKqgnki7b0buUxaIaq3OhoNzAdUlNHGOT7mHsHY3PUaYpqYNJ+yF5R0AOzxaBpyKVn6GUuWWN495wuQCWUgd7ixDCSWxpMGroFdC4xsmcZ31EJUdSCEqvCsOX8793ypbnLclM0Jpf/GdZohWLsj6Kq/kXEvb6zIKsDWlVTkQ9Xay3W75EqFtb6MARsQTMzfXkg0AVT+oeTGQLWW/MXa9AGyEPXNnHnWFMugboMwwIVKkmpfKLVqc/CwJ2vI2zI/ze82e0bWMxBZIJyS6M2ngPJbZgvoiGCuc9Qoqg7Jhe3gLB1Sc1PCr7FDBLbtKGh4kbRP7vHndTlMKK/klc= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO6PR10MB5409.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(23010399003)(366016)(56012099006)(10067099003)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?7Z/bPlbMPrFdo3jqh9FGnqNDdoMVGO1zcTf3h5l+UhJ0IdeTWtdaeNAih7aS?= =?us-ascii?Q?DRi6pXgCqHRwvG0joAUUhxUVBWMpiIIl5hXVPMV8/MrJufbPBkJxfgtm9fAS?= =?us-ascii?Q?E3GYPlNufZ3/zPtJ0xXaMvlj6gdM/noFUXM741y02P3ZW9RMytrXgNr5rbIy?= =?us-ascii?Q?uWTDyBJRTRHpL3RD8gQ45cUoobJ1Ppyce+Usqoxi/jAyF+DjyMVfvki+p5N0?= =?us-ascii?Q?y7StqMSy07c0I8M5ASwBgT0OjJGmqUb/HnmGtrarwdGHxKj/0j5p7KZYSZ7G?= =?us-ascii?Q?qNWF+pGVx3y91C+gGneQkRL+RAywfhMUsLsWdvCk/IhlmfQSRPYLKZ97gNwN?= =?us-ascii?Q?+BOXLCK1MipZJSJNRL+H9ALpIPj/Sj19v0+mDy7K+6Ah16qbXYCDLx0ir4/L?= =?us-ascii?Q?Rz95QvO8dueSvJjsRfwUOwT1xi6tGBLFKG2h7qZUIqIQ4xSIX3X0zesitbZ6?= =?us-ascii?Q?1KeCwsn8wwYq4KNNaQWZcEZi2I/QKB6/Gx5xkXBunZaAXDJp95rCoeyqOiy/?= =?us-ascii?Q?Cnu+Iphk9YmCmcZChB0ITGRrr8gfIWT1f81RdOMKwwl/DGdACt/EqFKEHlS/?= =?us-ascii?Q?Tlp6eFDDZU13x5XjQ2Ht+VXIzo87c48U0N0tHIPwzNDpaIzUX6kf/uWmHuVw?= =?us-ascii?Q?N/v/BWIyfWIHjWKrT+27sqyqnKP7XxtcSngDgM/Epk/3KhVOLe6BrrS+E9uk?= =?us-ascii?Q?MiklhfjjUxuZaX8zgfKFK+lWUs0xe2f7RIGWCNTV4Rl+bn8A+N+iA2go8pOy?= =?us-ascii?Q?ijd58rKz0t6K9r0f2We/FYGToeqqsixOmrMlslXdxJ3tmFqCTczBLJFzWDV/?= =?us-ascii?Q?mB5NcNk4spOHtV3ytDiI3MQnbBOSi8z2I4S+YXsv1/wMfrb7RzJtCVrolBFb?= =?us-ascii?Q?FJpuXH6b6/x5QFTgOBzTbYtRKr3h69/7Kxum6qX27QJVV4GDG+zAwNk3EWjG?= =?us-ascii?Q?v/372Q6q083XZFARP9zWrXFW0+guQR4kC3wpovGCyjurt0UAT4t4P59fTPdV?= =?us-ascii?Q?AVcIfhem5Gm5//NfMmJK3TgtiiU8bH58yeMv5Ok7YggR4mX1mIE9/uXebkGi?= =?us-ascii?Q?SyJMNPXMAPI7jHrbGIqnTrunEYRbHrrkmNsOFKMP/c9WlWE8H09KMMETh9sR?= =?us-ascii?Q?lQ7l7vDduJ3+aDCsouuT50+3KiUZlQgn+Hq1mZcAA14v5Q01L4xOLxNtuXC3?= =?us-ascii?Q?DAz3norkHaN8BFsz8tNlkqKVjqms+vT/gfp10W+aKFT664zzR2nTCAbU+vkg?= =?us-ascii?Q?yWK63/x9MOhzKM+eRdCIeB8fWajgWeSbiS5hky9u1z7Vj1MtdF8Df0ZBImai?= =?us-ascii?Q?zkUQ5hQ0IHjSTegNkIixpxM28GvjVI4UwN4HxzTQdTn7ZPlo38efIdqhCoMM?= =?us-ascii?Q?lSS/khoV57M2UikrH31RgqP8psTRq+9/beTcld2rn5XIBjtI7HXgcVvVz85G?= =?us-ascii?Q?22/Hnmg4HJIcPuT86Nad6yFDRma+fWLqqx/crFC1HB5RO+n1Nf8HO3c+jOip?= =?us-ascii?Q?gS2n1QysWAlYSg8/YdKFPx3nCbdKugWP5Te2EsE5AWR2wm/MrrpCGMQGsN2d?= =?us-ascii?Q?lHZ2myGoAnAztd7OCB5fIo+Gve6s9XvRT1NJ2rpxQE15710ZW8rrBcZPWQUV?= =?us-ascii?Q?XhcN5VkiJ3nbRXdUcfMfdOfc4H6Cj8lDQ3dOIXTrqeYWrNvVN7S5MSvX3uGN?= =?us-ascii?Q?BUYSvidS3lNp1U3SqmpsCn75pdkOaUJzXAZ7htPOpWFRi711L3XKIB5VJ74y?= =?us-ascii?Q?L5GAbZxXmKWZXlxngvV0/TFDJ+uyU9c=3D?= X-Exchange-RoutingPolicyChecked: z5vm1nMDSG3a5K8oyV8nzL7EV3Ew3VnBLKv6mnWTCNg+mQMgKjZnSGRGoZqQuzB0y48aKc6qiukPBnB183yFKy+NY5h3XgkcFwy8nWuO47u9SVtK7EaoMuJTytTvpQJops9XlNc4Tp4iPV7j22WllDpiF5yP2Iwy5OHLOtzDUtSUmtTUB/IXl/S+/qQT3jcrV+HmS4gW2qmygoiQlJvyNlDc2i5bZ33fNpTsIvzyTy459VZRSXDWdvPoY+gcalC8aHQ0lJlASCxIMd18qm8j50Uga0dsqInSTY9N7Ph9ltR/wvLAczBAVDUoxslip+i3JKeMvXHAcWQVlJTFRBpxgA== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: bukq75TUgaXb+Y6MKI0hlWo7m9MKASeXIyGE93Sx1Ex0YqgcEmE0apjauhml/0EXlKSxYkluS17H8t7wff1vdbM23J7pX5Pva23l5y2ayIGouXQB5/I7mNnIExJV/uLQnCO7mqBwTUeDEaxdtN5lC+nBanDRkKVgAQe8Yasddj32HDglsLwmcycx4Bi6SZA+Wk/mNN3KDw/Sni8WKl9jv8tmxhAQyfY4sAY8fHI7TbzFDcPODyNQj2WDCme/8i6pBq6fp+82EJK5kIHF+ZmKNT6NuXKWuDyti2d0qqiLP8Lpw+pUnPQkARuXRF0Hf1TjwSrPH7/haDkucsXPmfElL2BU6gO99H7/8iei/Yl3v6NcenL0WUJy0rbxJXvGnQF+ycciVwFZaaUdSoVXH4TLV9ROnu9xbW6hQiW+hmK/YkDCeyDh8fXU27InbqwVns3tz6kX+R4E0Wufdw+4JQSdhdWTY/MIB1GpPE41B9toIBCpPSPMI+ArlCPO0gpy8MRjloyIR4/30MsDMOsSq2W3IGdeVbhyZBfRo846EUj55BIQPOqLLB4FsG75TxTVuHo7AdjF4lyWyNnvHSg6b06iCq4s1Sp/l6gyLJUi+Bk5M4E= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: d180bca2-c1e0-4f60-a518-08df079dbbf4 X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Aug 2026 20:23:35.5904 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: tiDU7L20HqR9vq0lxPBy5JSvEDpPlls1K1RsvGpzK8xHD7SuJl+Vwiub+3ST7340QWomaL+Nl50qFeAo2RXZLTCRrBxeBN57hpEwlkTGVpg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR10MB964822 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-31_06,2026-08-31_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 bulkscore=0 mlxlogscore=999 lowpriorityscore=0 suspectscore=0 malwarescore=0 spamscore=0 phishscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2606160000 definitions=main-2608310175 X-Proofpoint-ORIG-GUID: wCRq8OhAfKVe9i2_fehxi9QBzao1DHSn X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODMxMDE3NiBTYWx0ZWRfX3Epbw62nzCyb YNqy3gVoWW0Dj8G0YfOzyc5d7JqSySeMxkrDEnZqThNhZASVsDtwC8wWe1ciW5Nkv5baMQejTvm cmglurIFJIEY5jygNLjS3cSupBy+vCP5BPVCXbTIGgIxoJBir68+JE758DRK5ZGngZ9T/iT0ESp r56zQIfVq69t+RZA6FJ+cqmVI73Lk3iO/X/R6f+/muxR5trVWq6Vs1B5KLIp0ISyIlxVr/UfXFR HL6SlnimLK1BzdrvjhsTDn9QAJYPlTDCdSEBqHd7I00iFSj0IoS7YzOej+ZOM5AZKHRrcXNHW8k mBJprqie/TprMxGfJgiQJwsq0qzJMhfF02dBFYbGvrrVnzFJHqtOdIuQy5SIXav0xN5b3uSNFbm hBZ4/mGC9UX7A/41z+89qfaZXzxTS8IjxSe8oCoeOJAg2VLIGJu8RpHpBQbffahmALCtT7WQbqd G0RZF4CBmhEbsLC5KrnMJon4sL1iKYsHDlaDcy8o= X-Authority-Analysis: v=2.4 cv=Ebb4hvmC c=1 sm=1 tr=0 ts=6a95e2cc b=1 cx=c_pps a=e1sVV491RgrpLwSTMOnk8w==:117 a=e1sVV491RgrpLwSTMOnk8w==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=Sv0fKeRqtYgA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=jiCTI4zE5U7BLdzWsZGv:22 a=RD47p0oAkeU5bO7t-o6f:22 a=yPCof4ZbAAAA:8 a=gJxQClgCQG0ChMIF28IA:9 a=5yU3S35YU4bGjq-dph-N:22 a=Bho9c0fBagfJEIQBS7DQ:22 cc=ntf awl=host:13521 X-Proofpoint-GUID: wCRq8OhAfKVe9i2_fehxi9QBzao1DHSn X-Proofpoint-Spam-Info: AW1haW4tMjYwODMxMDE3NiBTYWx0ZWRfX00QFjsLSIE9m ecYnUrd26MnHjTbibE+h4NtXZebnV6D9DZWP0x4NT1NSCjeHmmjrc+NdFzOGf6shua7RgpnZkuZ 0IXdg8NjnoPOHj22vFxFBD5d8fCU8M1/dKjiBcjBLI6Naufznawm Content-Type: text/plain; charset="utf-8" Add timeout tests for smp_cond_load_relaxed_timeout(). These check that the implementation returns early on invalid timeout values and handles edge cases sanely. Signed-off-by: Ankur Arora Tested-by: Haris Okanovic --- lib/tests/barrier-timeout-test.c | 86 ++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) diff --git a/lib/tests/barrier-timeout-test.c b/lib/tests/barrier-timeout-t= est.c index 60f121fe5472..9b16ad6f5514 100644 --- a/lib/tests/barrier-timeout-test.c +++ b/lib/tests/barrier-timeout-test.c @@ -19,6 +19,8 @@ MODULE_IMPORT_NS("EXPORTED_FOR_KUNIT_TESTING"); struct clock_state { s64 start_time; s64 end_time; + s64 extra; + u32 niters; }; =20 #define TIMEOUT_MSEC 2 @@ -110,8 +112,92 @@ static void test_smp_cond_timeout(struct kunit *test) KUNIT_EXPECT_GE(test, runtime, timeout_ns); } =20 +static s64 synthetic_clock(struct clock_state *clk) +{ + clk->end_time +=3D clk->extra; + clk->niters++; + + return clk->end_time; +} + +struct smp_cond_expiry_params { + char *desc; + u64 timeout_ns; + s64 clk_unit; + s64 miniters; + s64 maxiters; +}; + +static const struct smp_cond_expiry_params expiry_params_list[] =3D { + /* timeout_ns is invalid/out-of-range */ + { .clk_unit =3D 0, .timeout_ns =3D -1LL, .miniters =3D -1, .maxiters =3D = 0, .desc =3D "invalid (-1LL)", }, + { .clk_unit =3D 0, .timeout_ns =3D ~0ULL, .miniters =3D -1, .maxiters =3D= 0, .desc =3D "invalid (~0ULL)", }, + { .clk_unit =3D 0, .timeout_ns =3D S64_MAX+1ULL, .miniters =3D -1, .maxit= ers =3D 0, .desc =3D "out-of-range (S64_MAX+1)", }, + { .clk_unit =3D 0, .timeout_ns =3D U64_MAX, .miniters =3D -1, .maxiters = =3D 0, .desc =3D "out-of-range (U64_MAX)", }, + { .clk_unit =3D 0, .timeout_ns =3D 0, .miniters =3D -1, .maxiters =3D 1, = .desc =3D "degenerate (0)", }, + + /* timeout_ns is valid */ + { .clk_unit =3D (0x1ULL << 28), .timeout_ns =3D 1, .miniters =3D 1, = .maxiters =3D -1, .desc =3D "1", }, + { .clk_unit =3D (0x1ULL << 28), .timeout_ns =3D (0x1ULL << 30), .miniters= =3D 1 << (30-28), .maxiters =3D -1, .desc =3D "1<<30", }, + { .clk_unit =3D (0x1ULL << 28), .timeout_ns =3D S32_MAX, .miniters = =3D 1 << (31-28), .maxiters =3D -1, .desc =3D "S32_MAX", }, + { .clk_unit =3D (0x1ULL << 28), .timeout_ns =3D U32_MAX, .miniters = =3D 1 << (32-28), .maxiters =3D -1, .desc =3D "U32_MAX", }, + { .clk_unit =3D (0x1ULL << 28), .timeout_ns =3D (0x1ULL << 33), .miniters= =3D 1 << (33-28), .maxiters =3D -1, .desc =3D "1<<33", }, + { .clk_unit =3D (0x1ULL << 58), .timeout_ns =3D S64_MAX, .miniters = =3D 1 << (63-58), .maxiters =3D -1, .desc =3D "S64_MAX", }, +}; + +static void expiry_param_to_desc(const struct smp_cond_expiry_params *p, c= har *desc) +{ + char iters[32] =3D ""; + + if (p->miniters !=3D -1) + snprintf(iters, 32, ">=3D %llx", p->miniters); + else if (p->maxiters !=3D -1) + snprintf(iters, 32, "%s %llx", p->maxiters =3D=3D 0 ? "=3D=3D" : "<=3D",= p->maxiters); + + snprintf(desc, KUNIT_PARAM_DESC_SIZE, + "smp_cond_*_timeout: clock=3D%s, timeout=3D%s, iterations %s", + "synthetic", p->desc, iters); +} + +static void test_smp_cond_relaxed(struct kunit *test) +{ + const struct smp_cond_expiry_params *p =3D test->param_value; + struct clock_state clk =3D { + .start_time =3D 0, + .end_time =3D 0, + .extra =3D p->clk_unit, + .niters =3D 0, + }; + s64 runtime; + + flag =3D 0; + smp_cond_load_relaxed_timeout(&flag, + 0, + synthetic_clock(&clk), + p->timeout_ns); + + runtime =3D (u64)clk.end_time - (u64)clk.start_time; + + /* + * Check if we do the expected number of iterations. + */ + if (p->miniters !=3D -1) + KUNIT_EXPECT_GE(test, clk.niters, p->miniters); + if (p->maxiters !=3D -1) + KUNIT_EXPECT_LE(test, clk.niters, p->maxiters); + + /* + * maxiters =3D=3D 0 means that the timeout is invalid/out-of-range. + * When not, we cannot return with runtime < timeout_ns. + */ + if (p->maxiters !=3D 0) + KUNIT_EXPECT_GE(test, runtime, p->timeout_ns); +} + +KUNIT_ARRAY_PARAM(smp_cond_expiry_params, expiry_params_list, expiry_param= _to_desc); static struct kunit_case barrier_timeout_test_cases[] =3D { KUNIT_CASE_PARAM(test_smp_cond_timeout, smp_cond_update_params_gen_params= ), + KUNIT_CASE_PARAM(test_smp_cond_relaxed, smp_cond_expiry_params_gen_params= ), {} }; =20 --=20 2.43.7 From nobody Sat Sep 26 13:47:35 2026 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (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 ED7F33E00A9; Mon, 31 Aug 2026 20:24:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788207850; cv=fail; b=VoFU2YmVone4OSSCytPXrVZH5RmqA0xvxHGqUjFmLuJu54UinEoX4Q+fVpK8J2xkDYpeVntYlX08RC82Bvgmyibzw0+4RlnnD1x0iul7pbOOeus/LchcgTRoZaxlN7sI/2NYPtW4Va5Slm+WsluGCGsiAZgUPnA55PT+vJXLUcM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788207850; c=relaxed/simple; bh=G5GCQuVzGKbe5KoJ1F5MlA4nZfDQDSXFOu+FySVF+p8=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=pzONOd7hVqjkh8WZzhiiASUrRx7vzJOY4ujOF4r+ZmTEA6EfBU1p6RdtqbqO8ITKnukCJEHOnVTIOU2eheKRm5CHV8BkGlRvO7T5oK2IrRSF3NBUM4fyndnFjX0aEOEwXNQ6oDYe9CvLhSkwhie2pjK0KQhifsztLnbUrrxeM1g= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=ZoBIArMY; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=JK3w9HYB; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="ZoBIArMY"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="JK3w9HYB" Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67VGBmTf1799615; Mon, 31 Aug 2026 20:23:43 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=D18Td6UqLYF7W2RgXJmnbeiv3Kx6CFYMsI1i2psCFLg=; b= ZoBIArMYzJoWwQ1nB0o8f2drEdTzRnsE2SZAY3d+PjVHMCWDsulz59ul5S0nbnrL NlzIQlJMK0RI0V9fpYdBiZxzshddV6CnGO6VW7vm/c/CoYIh/nQl9A+EaPfYjEJA 7lZWES7QX5ONpiQHCIEQx3jHxYhN6PpirxyShMrV9MLcW4CZrJqNCTsnLNlFbMVL 5FgK8MAiqw1KzxO3M9a/eK1zv0lMEV+YSAfOA+2ROiZtcQS1fgvm5mJ4ft33m0eQ pa6dx1dzq25lPwlUs3WHD17E4WzadCqfOEOGVD1Zj8diypsn0UbH2fBwjlP3yQqO 96nvAIL5bBjvjePvvbwWxQ== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4gbq1skb3p-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 31 Aug 2026 20:23:42 +0000 (GMT) Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.7/8.18.1.7) with ESMTP id 67VKK7mG038727; Mon, 31 Aug 2026 20:23:41 GMT Received: from ch5pr02cu005.outbound.protection.outlook.com (mail-northcentralusazon11012066.outbound.protection.outlook.com [40.107.200.66]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4gbnvdgk1u-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Mon, 31 Aug 2026 20:23:41 +0000 (GMT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ylJdRPPvCoC0fYJ8fiGUjSUMA1vbGHMVbxztIAgxrWFU7KkxXtaDqb7JDuylkQRE6xdn9f7lU9HB/cX1HWeka0tXdJloLHBDznOAO/01MT3fjKIGWif5/j58gtksiLUOBL8ufDqrhCZu6fsOq3lGNEl5YZpqMqhHTh5A/AX4zC6YZljSij7gR1UcdPWr4/wlqFWUvHjY00FvkhHMjckC8P9OJpX6usPnIh070lHGy0QwkS7uRdxqLJM9zif4YvIdN2IGkKXA72fR1m/DlWmRvvxZJvzlGY8Iqtmuy0I4rKZHoHRezXSeQFimv3ZOu8mM5ZrIS70XU06NlnPP/QTQ/g== 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=D18Td6UqLYF7W2RgXJmnbeiv3Kx6CFYMsI1i2psCFLg=; b=BE+llCtyJRHtTXX8SBA/1jBHT92m4RpTeHTcMU2saMIogNpQ3O0Y7QKYbGteOynVQ+d3B9JWmCJOLaPizMfgulXz1a68tykmUrPL7UIN/bPmnDaHzUnt3VARa/dhUFeekJjmbeF8+dYR6/ey51J3Fu7/RWRMFeFvdKOTyE68rk0SHHIrEFUmVi/B/19N6Iaeb1PR/Wiakf8ThBJ59Cb17dBYR2mg+CtK/Nc/Ikcm/3rlfeqYwfdl+6jKUPhNuEmeYY9E4ngTyJKdCLTz9mLqIkLZMT6kYYvnZM4CP8Tq4QajZJxWGh5Lh+cvaPjSBY0hbDFBFUQeoKQMIy7d0KcIZg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=D18Td6UqLYF7W2RgXJmnbeiv3Kx6CFYMsI1i2psCFLg=; b=JK3w9HYBcr4GFWdDtt10LzspwsGb04bA8//g4I2sQeVrgjSm3Wr0esPMTBMPiU/1aQy00VzQNgdBj4Sq+lbV692KUO5p+pDeDZbIba2nLCyy1bhq1EOFrKNTQxSJxv7QODhe8UBEiM615dDPS4VeFeeGfZVM6xu0X+wqEKPcuE4= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by IA1PR10MB964822.namprd10.prod.outlook.com (2603:10b6:208:5ac::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.382.10; Mon, 31 Aug 2026 20:23:38 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::3c92:21f3:96a:b574%6]) with mapi id 15.21.0382.007; Mon, 31 Aug 2026 20:23:38 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pm@vger.kernel.org, bpf@vger.kernel.org Cc: arnd@arndb.de, catalin.marinas@arm.com, will@kernel.org, peterz@infradead.org, akpm@linux-foundation.org, mark.rutland@arm.com, harisokn@amazon.com, cl@gentwo.org, ast@kernel.org, rafael@kernel.org, daniel.lezcano@linaro.org, memxor@gmail.com, zhenglifeng1@huawei.com, xueshuai@linux.alibaba.com, rdunlap@infradead.org, david.laight.linux@gmail.com, broonie@kernel.org, joao.m.martins@oracle.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, ashok.bhat@arm.com, Ankur Arora Subject: [PATCH v15 16/16] barrier: timeout validity checks for smp_cond_load_acquire_timeout() Date: Mon, 31 Aug 2026 13:22:51 -0700 Message-Id: <20260831202251.305046-17-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20260831202251.305046-1-ankur.a.arora@oracle.com> References: <20260831202251.305046-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0289.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:10e::29) To CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO6PR10MB5409:EE_|IA1PR10MB964822:EE_ X-MS-Office365-Filtering-Correlation-Id: 104c5913-cd3f-4080-e1dc-08df079dbdd1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|23010399003|366016|56012099006|10067099003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: WkMsZr7ZFetsQKF8oxY2Ht71bMk4ubJSTHjr+YjxzOyyYXSwvTOoD/dnPeG/Q64SVQv9Oie81h8deo34Oo2CwRgQuzp4kBLGDopKHrW7YhtVc6i8zUutTyvu5QnNryLhlKlgxd2hpg7OHpxbsJaHcmeXG6X46OBxO4wlBV7We/Z97YDUbaKTfvFmcJRykonlw/kn7V/0SKcDL99W7lnMwvNKoilwM6z3e69OPETcc6QvYCKyxTLXGKf5A0XA7TCUs/8NVjSZRrt4jPSsz0fmFqKAxj+nqoTDLB3gKghaUOMpH7RNepcPKefc+Vo+PT9qMBV7REt7ixkzpSGFcsaUQU6Eq4aXjNSlUmythHg8Mq3uj8s05WGCGGeY9uz4SspwMRAfm1n83WKMEcWP1/LpZw0mZrvzAbOyQPCDk99PnNz6I2uCDhbeV1nNUAt4L0dWYqbnLA2lfGuaCBuZWAirskpKIje1PW64ycNfxfNnNfNd21dZ/2JfumpGekGLaogOF7pYFTbo8i+EfmsYRbSteBuvvGs5vjh5e18WrxOK7RNAOdyRPiCA4O3OOjC2I/68sHUofN32z5ysC9n+sfx6oSAk2D+rrsOMZ+C8iiIwRpHn/LPkqPTXwOGVZKFsn9pN1a2VE2cFO92ZGPh8IpeoJdLcJ4q0EKSL736gdzbkD7s= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO6PR10MB5409.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(23010399003)(366016)(56012099006)(10067099003)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?l0TKDYf42p59eBGLIKN7xTmaDPyYOtV+5SfDI85ispKLLYB8hsI0EwLbTJEb?= =?us-ascii?Q?y06gtvu8WqeN1RWClWMYOtCZ+9Rl0yCEEgAesZKw75aTOsXQCipQKg0RjHSu?= =?us-ascii?Q?WWerbIQv2MpXrY76MNrZL2RTB+QutUsMUWgYgt6q9OmdgxoP0SrsxD1wSSil?= =?us-ascii?Q?Ox7pgS3eVWi5QG04XG6mcmoctAe4Ao1apL78GMBtNGRd2sbQaRY8DbGnaGen?= =?us-ascii?Q?ix6E02E+UFA6ebh4pORcpBSyrspC/UI6QqD/XFq+xDOmKxjXwxeJfhdkzCxX?= =?us-ascii?Q?67Rm9P+ktvtjx1cNdKI5TfHlB0mGVhOdVwwrtaK+HEtF8Vm7pIBTbtbWYEoM?= =?us-ascii?Q?Ins0rdJDl/l+F1UP1pZFKi8yDSg9Gi69Nz9GRgYjP727dfiwC9lRIsdCc46i?= =?us-ascii?Q?5RXuxenYAlTDuR9EFK2ci/7VSlU6WgvYGyxxXqtELifB7hh2twXmEBVSqqa5?= =?us-ascii?Q?+Lfeg0mYSxJ/P2MoZTBxe9wCoLmAWJHDa5IjZf/alQAjH5Syii2pRRWqSvtY?= =?us-ascii?Q?N1vXOOpCwBNmiY72F7sZdTCLfkJtzr4eRzCSiUyD3+Sg2obLDRtnA4HB52HR?= =?us-ascii?Q?AVzUoAzYM84x/oABYSs2vWiwsbsdnWDAyA/iJZDYKrXyyp0YaajMENXU0J7H?= =?us-ascii?Q?JrPdRa4VW3EvQwN3D/Lqcil0g/BLyEX6s/G+e2oEIZb6uKHFeUj2wTAGyKaz?= =?us-ascii?Q?TUBaNWNqIGKGJ0RPyyduETVPzSHiXEaZd82Ea1QZGFbp3rC8Fp3iunW6ZSTE?= =?us-ascii?Q?369aaGnAM+QBmOX3pafvDZ9GTA73BIJY20XrfM7rYHlgX8XE6sZa1ZWjCjvJ?= =?us-ascii?Q?8FQZ6vbJxpiv9F6kyBeYrFRb3bM3VUwr3aOS6D7nsIBHqHio5IZqSgqv8tNW?= =?us-ascii?Q?Dw4mxXaiXxX0NavOnmmr5QLhmXCxmGzBLI5A4T3GM1rGtm3EGyIFQp+L7rEO?= =?us-ascii?Q?Bp4IBLcjsPOGYZ/YlSgL0mmQui6HXJDhKHtZ50f+asPnFOYN6164moaSls/h?= =?us-ascii?Q?jGWn778BYetlJEEYnb19KLlzGFAa0z1vAksrUma8mqUoNOniZQnmLIoO4pN4?= =?us-ascii?Q?bMj7H9XgsoQPYRwlGNT4w1dkYKP4oA08OEaYNOaRWPesmXc7VVV9YxCcKQUx?= =?us-ascii?Q?hqzsHRd3bPI23STqWvKBemp5as46BGw9MCe8N1u1uqE+Yya/NLjJ9wWk8J+M?= =?us-ascii?Q?VKlRPeVI9vEFfiIQRinkwBs+x82cn3wDTTugVIszn3InSonjPLmB2b9ytKwJ?= =?us-ascii?Q?tev4Vk7G57mhZ/Uk8pJxi6QgowsSss6C926psuKlBLrNkbxa6iF13OhdXViZ?= =?us-ascii?Q?JUh7roIqp1W6uR0w7TR3PqDy0J53912VctYamuvga1b0cow5jMxdFWcAPB1N?= =?us-ascii?Q?pxPTbHbDnRYhOix09+0aBoLbYgiOX2zBHDkN6OovX9njnteu0a602r9Qcsbd?= =?us-ascii?Q?VtdG6n7vcXeVoBVO2bvX+KwODpdbCdfKKryIjcw7qNdr9ukvXvFbTN2VoJNB?= =?us-ascii?Q?NenHkOMWlBWE7F4FPtdFolv1QqR/I9Vue/SOJEmueqOqMaWnt0hbPMtQd1l0?= =?us-ascii?Q?sWtMC869qPN7zCyiTCMv05/uF5qej5dx5BsvXZwyMTM0xWDHehBYKE70uzpE?= =?us-ascii?Q?Szr9NrmRsmdDt+DyPCZo0Nd5bed76/gIRw8HyY2v1oNcJxFaj9di9jeOQ3kX?= =?us-ascii?Q?fF5yawwjExH6awOMjtgWf9/RrNy24ZdNyMaIUeFGKNLBmTSaOdCyC0VQcmx6?= =?us-ascii?Q?XZkmyrucz7Ziwg5GmrOv88IxinEXqTU=3D?= X-Exchange-RoutingPolicyChecked: zAPkhHNCQ0iWJJcOGNV3o5NScsLwFneoz6KQZGxIvXbdvuO/tOXUw7+oaY0jWKUNngjO7d5+GYlSvDVjyG9bA+tEDXdBlhZpBJ2eOAXvkoYE43eClzXW2ubLb7digqVmj0jG2TP04svdlMbcT72pYSxpt56N8rFg5y6NR/ZgGg5JwIwXrBdyzBEcCFLEHCO9BDXftSzWMT+mLBSke/u+5+vGLKLWL2tbj97JPE5lck0lriD0H2jcVTQL8WqKfR4P/UBzsja+RVf1nCDDhyjGgkKhgL2j+EUMiT5srvKWVA2jHdoU425/ivn5fi9dgv1i+2/41FDvp0I8PHyuUetZAw== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 0Tl5xdUyRx15UMnR/VVbQR6GyO9/ZrQwDtGTdcz0mGb0CCQVr2ldl7vH3r1mjkQ+KgscoBFDElG5FGx6QYFI3mLYRcAZBvUuIt/b4cVFz2miJ57fKaKRRsS9A7+B8HBfBXbkhpJKMQPI50YSXFd4p9rDwI+eDTFVzwnstIAjIzQjlYBf6pGvKS7OHt9kVP6VLVOi3cWBzCS28lfT2mDONAbFL7YlVxOhkJn2WChw4ZhkRWH8N85DHPf2wMtumIZtzsYI0HG08VmCW3kK52ZawFqdp7afHzV/7bpVMOAKR34aavxcUTOqDqyJg+z+n7utQSymK+Kv2jtMrADY99nfcXu2uG068RSMkh9K2HPWtRdayUOvAYU+8cx0CxxhJ0MzRb0xVeZJiF7Vw73vysG3fbhwCsxGMA3PQvaN7aXwlmKhCg+spIGiIC7GKNXY5X+0tHrLQayemkjri+BucCoKbCptfSl5z8x204HdE4nZmNmi1WnyCpVNXAUWjXlIEbTe1dp350P2rmvQjDDJxK1bkNhatdF7LaGRjx/dHpWc+ltRmyaN8gjfbvULgRjzEmgULhy+3L2ggrcS7K2Sc8Zz8R/VlDwP/ZKmDQVWqyPgxTE= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 104c5913-cd3f-4080-e1dc-08df079dbdd1 X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Aug 2026 20:23:38.6751 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: XquMSCvzvfv3o8hScy3mFnXjmHK6R9Wf4qbK7Kuo4VTb5Rj5fg4YtnvuGPRraIfiD2U1gBP0pfVAEhgLVl1o/QA7jPqwK8i2r2Z/3rYqzzc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR10MB964822 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-31_06,2026-08-31_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 mlxscore=0 lowpriorityscore=0 suspectscore=0 adultscore=0 bulkscore=0 malwarescore=0 spamscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2606160000 definitions=main-2608310176 X-Authority-Analysis: v=2.4 cv=Vp0Txe2n c=1 sm=1 tr=0 ts=6a95e2ce cx=c_pps a=OOZaFjgC48PWsiFpTAqLcw==:117 a=OOZaFjgC48PWsiFpTAqLcw==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=Sv0fKeRqtYgA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=jiCTI4zE5U7BLdzWsZGv:22 a=3I1J8UUJPc9JN9BFgKH3:22 a=yPCof4ZbAAAA:8 a=ZPAOx-6ZxAKxcsEDc8oA:9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODMxMDE3NiBTYWx0ZWRfXyc5WtCViGJ60 4U1e3FEMdlhIVdngm3sSBBXI9iZIAskdzuN4+sCQL2dvbAyVmKRroEPq1xor8hylBKgj9IP9S6F UpL/NO0BVLcGr7WmcDnn1BJMO2GU6i0O3o39g+Edd4VC8RbpM6HDVEJK29S5Z4BcpxvaREgIyQh iijU5FcXkLg9xCr9NatnQtEkywx4Z7zRayhwvq7XkWJz0/6BufrWyBWiQgIZajiW2WXjxsVlaAF NVatvt5Prlu7PmcLlADfNYDNt38vnSnqyG8FKAjsC/msyoH87023iJWn3/HySO+bHE2UN6NRH/w uZ+53VFl2KDiI3zfU1zTnRIFAeDn7pCW2OqtzUU0k8UDpxZFE7Hoa9+01mRR9LKWWSXma2kmlQ3 ByRqU0tUeiKNYyXmt8nHwlHh3ly6fAs8jKjDTUHodyya4KiZ2o852NK2k70u1ajkajSXiLdZA+T P9lTXBsD+H88Q2/0Kdw== X-Proofpoint-Spam-Info: AW1haW4tMjYwODMxMDE3NiBTYWx0ZWRfXwmTpYhBN/sl4 ZjgWcturTvN83fUQamDfaT0zcCKyywDs7ua6GN7Qy+XRRmv9PMxDB1O5gzzuWKZfSR934A+XwgL pwOCmnGrxxNGGMRUignGKe0iB9Co9iQIRhQXnaE1nVpQxJWy2gVQ X-Proofpoint-ORIG-GUID: b174_eDnPyG3wlS7T6YrIWGz0d2O3m9w X-Proofpoint-GUID: b174_eDnPyG3wlS7T6YrIWGz0d2O3m9w Content-Type: text/plain; charset="utf-8" Extend timeout tests in smp_cond_expiry_params to also test smp_cond_load_acquire_timeout(). The interface supports clocks that can return error on timeout. These are used by rqspinlock. Test that by using a similar clock that starts returning error past timeout. Signed-off-by: Ankur Arora Tested-by: Haris Okanovic --- lib/tests/barrier-timeout-test.c | 48 +++++++++++++++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) diff --git a/lib/tests/barrier-timeout-test.c b/lib/tests/barrier-timeout-t= est.c index 9b16ad6f5514..ba5b6820d0b6 100644 --- a/lib/tests/barrier-timeout-test.c +++ b/lib/tests/barrier-timeout-test.c @@ -156,7 +156,7 @@ static void expiry_param_to_desc(const struct smp_cond_= expiry_params *p, char *d =20 snprintf(desc, KUNIT_PARAM_DESC_SIZE, "smp_cond_*_timeout: clock=3D%s, timeout=3D%s, iterations %s", - "synthetic", p->desc, iters); + "synthetic/failing", p->desc, iters); } =20 static void test_smp_cond_relaxed(struct kunit *test) @@ -194,10 +194,56 @@ static void test_smp_cond_relaxed(struct kunit *test) KUNIT_EXPECT_GE(test, runtime, p->timeout_ns); } =20 +/* + * Use a clock similar to the one used in rqspinlock where it start + * returning failure value once it goes beyond the timeout. + */ +static s64 failing_clock(const struct smp_cond_expiry_params *p, + struct clock_state *clk) +{ + clk->end_time +=3D clk->extra; + clk->niters++; + + if ((u64)clk->end_time >=3D (u64)p->timeout_ns) + return -ETIMEDOUT; + + return clk->end_time; +} + +static void test_smp_cond_acquire_error(struct kunit *test) +{ + const struct smp_cond_expiry_params *p =3D test->param_value; + struct clock_state clk =3D { + .start_time =3D 0, + .end_time =3D 0, + .extra =3D p->clk_unit, + .niters =3D 0, + }; + s64 ret =3D -ETIMEDOUT; + + flag =3D 0; + smp_cond_load_acquire_timeout(&flag, + 0, + (ret =3D failing_clock(p, &clk)), + p->timeout_ns); + + if (p->miniters !=3D -1) + KUNIT_EXPECT_GE(test, clk.niters, p->miniters); + if (p->maxiters !=3D -1) + KUNIT_EXPECT_LE(test, clk.niters, p->maxiters); + + /* + * flag is never updated so the clock should eventually + * hit the timeout and error out. + */ + KUNIT_EXPECT_EQ(test, ret, -ETIMEDOUT); +} + KUNIT_ARRAY_PARAM(smp_cond_expiry_params, expiry_params_list, expiry_param= _to_desc); static struct kunit_case barrier_timeout_test_cases[] =3D { KUNIT_CASE_PARAM(test_smp_cond_timeout, smp_cond_update_params_gen_params= ), KUNIT_CASE_PARAM(test_smp_cond_relaxed, smp_cond_expiry_params_gen_params= ), + KUNIT_CASE_PARAM(test_smp_cond_acquire_error, smp_cond_expiry_params_gen_= params), {} }; =20 --=20 2.43.7