From nobody Thu Jun 11 12:16:26 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 B0D3639EF2E; Mon, 8 Jun 2026 08:05:26 +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=1780905931; cv=fail; b=a+lr/OXPmSsgKffWHMzIsLig9Gk3nzXDx+8Z7DyGVt0PJ58GOMXL+DVu8UIvtBq17KGvjJio/uX+ymSSv5d4eX6x8FXBhTALZmals3WggxaJ87S/OeCK1JD+FpSsa5PnV0jBsn14yoHp0W4YJxEtYSifH9smGSIK0K3lBc+Nb18= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780905931; c=relaxed/simple; bh=JOdHMZgrv2XOLFzbdCY/vKyIvIOObUbzDzogYOOqcw4=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=Z3L6C9lZd09WR1BtQ+dzTFtTGxfOr7IhYdSeIyVn3FI5v/puSrXNWmsmQn7C5wOmDPNTtBeO1wCJ0a4ApHh6jyIQW4vKPzdA33YQ5dVn8aM8WeXnK4Mjo96soiVbb3bABj8jzhubLjPmcJn9EDs4O0i/xeCxWk/blFF8apajpFY= 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=Q8pe6LsO; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=iWAkupTe; 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="Q8pe6LsO"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="iWAkupTe" 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 657NhEFO3923557; Mon, 8 Jun 2026 08:04:53 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=t1WD6gdmDnveHpNY+b+GQGohDkpQAxKXixOVozTPTFI=; b= Q8pe6LsOhNZu0QCQcuuJtyPUMadEX4ee/vpk5HW3XXMzq5WcXsPWECqFUkhLXJ3g HpIZj7GV3nUcEew//X68fr70hTq/pOTmhtbNHh7pR17Z/VSK7IXRe2Vb3TNEJbsB lOoI+K5wUaxhzv21KVq1kXDXxMLosgx+YPrDT/NVlea0ns5UOXVROJmXUcMVsOxc VHIpg5OAJNDA0LJNlioOnhULtrzM2syz83IhFmSeVh9qFNM6uSdIG9Yce2tzK5Zz rgXk88BA3OfOYXuu7zG4Mfd7MsVvmpMzjPGfqgr42ZyL/63NRcLXAVmfmmTifJLK ap0h1Zq+dMNq785QqfCHrQ== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4emb5st0ew-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Jun 2026 08:04:52 +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 6587w8Ft036830; Mon, 8 Jun 2026 08:04:52 GMT Received: from dm5pr21cu001.outbound.protection.outlook.com (mail-centralusazon11011002.outbound.protection.outlook.com [52.101.62.2]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4ema0d89tr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Jun 2026 08:04:51 +0000 (GMT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=AJ5OvkK9XKfPdkjwZBxYoR6lO0xaJfmoP200afrg9xB3Ydm1kJrRNHPEmPq1x0AP/ry9exY/zVKEKUD4aM8PWaUq0s49NCoSalvUotq9bQ4Tzlt1tpy8ZxwSRc7afLM9uoMQvFh/ROpAL6nib9/zbVNBP43v0Vzkqq17F/V2ABdgOH5T8ccthgIi5Z1hjJPo/Q7zFBqNlavOciBCJGnf0pD+Tc3kStltnf4VNTrx6A3nyr7lt4uZNSh/S6NWW9OTP5wTY/LYbKd1tYEEQMuYPnDlNW1yTBr0UXbmHCmxtvnUEeBOGFCEx5ZnUETzveRfgVAdlSmbS7wJJP7OwXXLkw== 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=t1WD6gdmDnveHpNY+b+GQGohDkpQAxKXixOVozTPTFI=; b=yPkOc0ei55oCzCGZNfrMrqXRVm0tV9HRZkV85bhT/a4hYwAnlosMhsQE0f9XKdYZ1aYxkbHPJU2kfCHLExyS8trPW8NCiZfIDwDBk6KB57GvpI7/j8Tnt6wb0DNcnzc8ycjLrSjqPKw6jLHroS+p6Dm+Z8zQbde3QqXCHr8gBMwpwak1zkDJXqvJhpCubRY9G5UiqEyny6Xv/JXTQyk8CO/37LvQhFsQ7RqmCeso+ocBOdYMtUdimm6UjoRTtXRSPdcwIpQmOUUHyc7AnNKidtH/1fZquhhkotdYSlr4gxG/GAQ0l0TLpmHjmkC2+XuSDVxNu4te4pH8Y0+kax+fpQ== 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=t1WD6gdmDnveHpNY+b+GQGohDkpQAxKXixOVozTPTFI=; b=iWAkupTewiUJ1EGy+xu/fmXTp2Ow1Bd3FDwfNAVk26UJRdPGhyUtEL+Qmu0j9+L1G9qdWNZKRpcwV4R/+jX3eciRzdWFI1yIjQQim/3wRaxvAedwFAiAz6Pi1ygA5dI1j5s6DI4rrkd0qSEEtMM7HzmszMoWEfxLMBU/j6ld+B4= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by SA6PR10MB8133.namprd10.prod.outlook.com (2603:10b6:806:436::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.92.13; Mon, 8 Jun 2026 08:04:45 +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.0092.011; Mon, 8 Jun 2026 08:04:45 +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 v12 01/15] asm-generic: barrier: Add smp_cond_load_relaxed_timeout() Date: Mon, 8 Jun 2026 01:04:26 -0700 Message-Id: <20260608080440.127491-2-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20260608080440.127491-1-ankur.a.arora@oracle.com> References: <20260608080440.127491-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4PR04CA0377.namprd04.prod.outlook.com (2603:10b6:303:81::22) 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_|SA6PR10MB8133:EE_ X-MS-Office365-Filtering-Correlation-Id: 847cf621-b5b8-4df7-87a9-08dec5349a1f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|366016|6133799003|22082099003|18002099003|3023799007|56012099006; X-Microsoft-Antispam-Message-Info: c5soNVvtgHDw/bZXWhJHPEPkf7zGrOXmxByJ5xvRnmFXgjZqqafh66+AHeiNqihxP/GlVIMJZuoGwNpHMPdwm0WUAcQAhcNUWZChJ0zMIs4ZKGZcsRpW7sHU6B48R97790adFJLVKzBhPb5x3NelU3YdvYauODcOqrGl5HBSCofy4tvlfCeZD9tN9wHa+BOvw6ztFHX5oy9fPoDHOkRvKweKIqMWi9oRPdA8eLgm/pyAjkA5trSUwAIaSQ8vVXYhm2kMWme9wbQ90sKoboZTrQYmbLbH/x1t9Lsx8YTKYKbpSZvyTy7BDlkBQ/3k7S3Qh2EYYnrHKfprqL/5rT5LzwUx/NbFfNmd4T/uaj5EOWO9Lqy8Qv+bRYjq1W+SHjZNL+0nY80B54PR0vPSCT1hHwfr2+CWlXNEmA9PnGbx3v4qEMhtvN0PQEfoC4VdtY3U5GuWG3f0392upapg61cbk5ReRRRX+4H5E5kg7fHVp3dNl058nICPZBKqkPM8cz0DZr9cIdCbTcTwFPlhExAjTY+rqz0Ow/H+BDh/9O7lmgvz5bNMgmpCr9OKHuudAvOuWFNbWmjwgvZQH/gaGu67XiCAsImFDyHx++uXvUw046/Y7vL10jNyoRSuH/r0oupOywj0vIYGLJkwANmcEvFkYQ== 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)(366016)(6133799003)(22082099003)(18002099003)(3023799007)(56012099006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?IllpuADGx0SShMnPym/wZ2K6HuuN3ayO4LivZma4r/0InPcKiyJOcCa3pBNI?= =?us-ascii?Q?UtnmVOAscnGvQwNJQsQUlTnUbTaqgnkOagmtRTYWhGv9RzMTdu1Jkwb4I5DE?= =?us-ascii?Q?Rgw1wR8kzH8Hx3Yda45t5FgMJiH7DZgMxXZxFMpXuxH0YjwvFqi2pT0ea7Ng?= =?us-ascii?Q?yuTDxfb1BY1Z8FUQdTgxUNjXg2I21xRW9UHsV17QhVd53pJHyvOZ2Q4efwxO?= =?us-ascii?Q?XxwAi6GHAjF503PUi2LAz2phvR1W8OG+DTCNIlJfEaRm4+fJrcePhbxMSljY?= =?us-ascii?Q?aYn34kgKr/Mh4MPbLzr4wboM3I8esURVXjcrSHIfh/lrT2lC0TAbSdCm+TU4?= =?us-ascii?Q?1xr6cxDTD5YBVSyH7fyq0lE4Y3RXSnFi7uD93MkeqQ5nvxwFtY3Bc8aUPpTk?= =?us-ascii?Q?9Ggew03+Od0a87UjEPsvd1J43A7B77JCK9WUlk+GzDw2/56x/75dBAqYp23/?= =?us-ascii?Q?Z4kqgkxcoe4ph8llqSEh9MSONMw8C/Hg9cq9i80aQ8PE76xIqy+g2yhhDERV?= =?us-ascii?Q?fffWHtoxhdKbP+aIhEiP0AOZtszOgMnSN7+ghvTaiIzSlU8ojipb+reY3JXf?= =?us-ascii?Q?ReackHbYYA4SZcZwDacDUqC/vIJ5gjRv3MrzJOOq5dgQsBVsEBMigVLHzBQJ?= =?us-ascii?Q?/IZqJZXgJ5xNsSPmem1hXleDuWYrps3dppzH7tX+HN+7NDpCdMm/be2PZnmC?= =?us-ascii?Q?3cVDKnGOshH7JGOwtAzbaLnjeECvEeuhAXEl/dDRMxKAJLggArsyJYcf9oVc?= =?us-ascii?Q?DJUTBPWTcMeJ7hucIHD0Crq5MDwQoR/leKdxx5R2O1bkZvFR4g5RpaZGjFJ7?= =?us-ascii?Q?gOvh4LGijpgAVGgEuRhglIjOe1R7cXoBhZdGIdqCDNAO1N2yG/TvGHW5W9Bf?= =?us-ascii?Q?tym+kBXvxsIzpIqCTwJKX0OazrTx46tAZ7JdU4O0Z9vJUYRFC2BwdNuaoD/R?= =?us-ascii?Q?cc+Kp3Omz2fbUm4zj9XfkXC6SA0ccBfLCQ8XiVewgTqIHGKdKinMx8wrKH4E?= =?us-ascii?Q?3JC9zuO2htKpjki660Y3eqPPyyC2Ue20Z3s/vwl/ILY6Dr9pjOUiCiSkQKZ+?= =?us-ascii?Q?rGjRuu5BxWmacfjrnMIy0lX2xBL7JkdDiG9INbeeB7YjRPf/8Ab+JWfQypnW?= =?us-ascii?Q?qVQZLoiqGUPUlQcDPyYxptPs/p7H9Z1+LI7CXK6zDJuXzdkt4jsrCTP5VprS?= =?us-ascii?Q?f2HOnUzJPU87t51RlHxBMdQ1yIfsGQ1OiVzPKImcnHMmeN9Hu/aHHj7/M54Y?= =?us-ascii?Q?a2G7wz2F4pL4m3M0VMokK8qT3ouq1s8cFjp+LtVlraEBdY8m42n4wySqQB35?= =?us-ascii?Q?iVIDafHziE+tOd2Ua9/0Sst+IJc0VD6o3pbVxt7p7+WbVYUzLVqMOzozu53I?= =?us-ascii?Q?Vcw2SL/UA8UiweKKkahf0BX4dSI9C4OCZyu6l7Zl8aiQM1Xe3QMgOHPUP56Q?= =?us-ascii?Q?vlM1QL7rE4clK+A8EJrAnnI0sgBSESPxH8R8+gk1nYpTQ0o31rp4kfuKYB0b?= =?us-ascii?Q?nTWIvu/KqzQQNpuAp17Bf9jwuuwM5geamwj9ZF4C/qOZOww65WpIuLBxIDgb?= =?us-ascii?Q?jO0DEkmmv5wwfYgYa8X6uXmH3NSiE7BsyVOz9WvScZuoyPGb9Hvaha6qopF6?= =?us-ascii?Q?On2+uD+Npi9ZRZkAyXHR4hjhYat3aiQtrK6vtR9VZoGRLMKEXdgM1KduoID9?= =?us-ascii?Q?jIk0j2zSLqlYxUS20gkFTB7z8cWASJuScUJxCAqN3W9s73RYyf9f1xbS4iW7?= =?us-ascii?Q?FPcBf9IyiQ=3D=3D?= X-Exchange-RoutingPolicyChecked: OkYlBBdiq8Gr+6ozUxf5npMXhrGIbssYGBdh+v2aV8iUpmcwTZUX8PO/4CR2//kzzyp/WIkyX2eqox0VV4XcgDpgeXUSfiGpRnQn+0T4ejvwzTFOa1p55zFT/WpjSuxuUivE/A+PwU/63jpd4Y/7krg4XyURVTedw4cZ9ZtA/JNBbTomN0icrDuAOSKOV0iQaOe7+oyLJgbRXGSR0iijgzZe6rX+L9CBMF4tUmWanLPZ1WngJcJQ82iRvxicS5grovdDtuRpPJ2pqdOfSHXZF7TcdzvVwhzydZwldm1yi6hH8iZDmebEcjvoAg4WT193SFJk0OL9taRNQiBCJs0meA== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: NKZQwDf5J90AJdRTcvQhdZjo+4jXsU6BzOm0X5iNVEeXc9BxKgM6ds2zIXoCSzhUBRtYERxX5JYkvc6AK5lBkGDRL4542pibNCKtfIXB9HBaKXNJeYhfladj2dQhkOxOI3t05NxZzB0NJw69xpxneZOIUjWoUTzGTcdO20bqWAl0KGMTSeRGAvce5gkgI3E5ZjKVxu1yS+JkySTz1N55QfHisELGI1k7GcmvJAF0OEOVJIZ0tWDYZ3yPjqwYxXsz3Y1nQm9aKHPuHzsDL+AUUtw2r1zX1cUJTLWSenfTldW8pGGs4hwRvaYf8g0BpllwhOz0jZcyBBkDNUItub12HDM+SAjgO7KvcyNpdfEaVspcHw7caEt6dydl0Ib5rihNrYbU6AOYBgYhkOJo3FLsQg0UPwcg4V3KO7iFvcu5Dn9nJj5kdJK7JAOyz7ASda+gtW9/+yLRa25ru4WnV3jozfSP86vB+j6EV4oYJt6Ki3WDP/6CM2bkBipTQl6KVCE83cD/p7X/CBEL7/9D9DsilJrHvLGaM8erSH5XqWJ8K/fcJqoNDDsukuofp9BmJ7iU+/DlhjJ1EZ6tPS0AiiWijb2H78XEj3oFpykXvSwx0cE= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 847cf621-b5b8-4df7-87a9-08dec5349a1f X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jun 2026 08:04:44.9444 (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: ldqbRWmtd51dKrZwCqsSN3+GRtBR+6cg80gstT7UpLJvQ+ClFP57FRJAvtS0fob7dsmALTR1B6cjN0a1mUoM1N5PdGU0Y9DUaBK4cedHPys= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA6PR10MB8133 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-08_02,2026-06-05_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 suspectscore=0 mlxlogscore=999 bulkscore=0 spamscore=0 malwarescore=0 mlxscore=0 phishscore=0 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2605130000 definitions=main-2606080073 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjA4MDA3NCBTYWx0ZWRfX5u8gm7Nu1XMA AK+NygujSdBncVKg8989l0He0J08FQtxfQEK5skK3t492iAWk/5Rm1IeSfM+sRzmqtAp5XY+daL UxkjDB6tTH3MN13c337JvoF5KOorwoO0Uwx+MymsQDM5qMCRi7mIgfG+Skhjp4S5pCeJKetb0uH z/k+w7VpRofiPWNIyjQCYjhbHRbYiOWvEXuC9aRkHtufC705R3mqDNz3IcQN4Dq9UQqhkSsHCl/ PeYUdkQMsl1juPt4ZA89eJiZkH9ajIUFLqN2RyQ4smqazRITqTrJa/ziUJRmIk9uiYw1KR8ud8P b1+EZ1WOGRWHZM2zC1ehxJZoRsm7ClNHlW8ls1isMOHlUq+dNVYTQ8QiG3jP5YaSwuFI/Tv8WVZ GPRIRWiWI4S5MaE77tgCyORmN7kgW14UD7yaNDjiiryMis2iZYYGCBVAdHSI7gBRNPiLjkPEEjL Kv9Xk16/9xsRcX1NFKg== X-Authority-Analysis: v=2.4 cv=XeC5Co55 c=1 sm=1 tr=0 ts=6a2677a5 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=FelO9ux0wxsA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=jiCTI4zE5U7BLdzWsZGv:22 a=3I1J8UUJPc9JN9BFgKH3:22 a=c92rfblmAAAA:8 a=yPCof4ZbAAAA:8 a=VwQbUJbxAAAA:8 a=7CQSdrXTAAAA:8 a=JfrnYn6hAAAA:8 a=1Vp-6p46HJp4oqU_kr8A:9 a=GvGzcOZaWPEFPQC_NcjD:22 a=a-qgeE7W1pNrGK8U0ZQC:22 a=1CNFftbPRP8L7MoqJWF3:22 X-Proofpoint-ORIG-GUID: 53FMSXOjMjNbS7DuwclncFqB2LmX9kTp X-Proofpoint-GUID: 53FMSXOjMjNbS7DuwclncFqB2LmX9kTp 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. We loop around waiting for the condition variable to change while peridically doing a time-check. The loop uses cpu_poll_relax() to slow down the busy-wait, which, unless overridden by the architecture code, amounts to a cpu_relax(). Note that 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 -- 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. The outer limit of the overshoot is double that when working with the parameters above. This might be higher or lower depending on the implementation of cpu_poll_relax() across architectures. Lastly, config option ARCH_HAS_CPU_RELAX indicates availability of a cpu_poll_relax() that is cheaper than polling. This might be relevant for cases with a long timeout. Cc: Arnd Bergmann Cc: Will Deacon Cc: Catalin Marinas Cc: Peter Zijlstra Cc: linux-arch@vger.kernel.org Reviewed-by: Catalin Marinas Signed-off-by: Ankur Arora --- Note: addresses a few Sashiko comments from [1]. We leave unaddressed a couple of potential timeout range issues (around S64_MAX, or during early boot). I had proposed a version earlier that would address those in [2]. Since then, however, I've come to the view that these issues are best handled in code review instead of overcomplicating the implementation. [1] https://sashiko.dev/#/patchset/20260408122538.3610871-1-ankur.a.arora%4= 0oracle.com [2] https://lore.kernel.org/lkml/874iklm1uy.fsf@oracle.com/ --- include/asm-generic/barrier.h | 69 +++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/include/asm-generic/barrier.h b/include/asm-generic/barrier.h index d4f581c1e21d..c56df9513a08 100644 --- a/include/asm-generic/barrier.h +++ b/include/asm-generic/barrier.h @@ -273,6 +273,75 @@ do { \ }) #endif =20 +/* + * Number of times we iterate in the loop before doing the time check. + * Note that the iteration count assumes that the loop condition is + * relatively cheap. + */ +#ifndef SMP_TIMEOUT_POLL_COUNT +#define SMP_TIMEOUT_POLL_COUNT 200 +#endif + +/* + * Platforms with ARCH_HAS_CPU_RELAX have a cpu_poll_relax() implementation + * that is expected to be cheaper (lower power) than pure polling. + */ +#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 a negative value. + * @timeout_ns: timeout value in ns + * Both of the above are assumed 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 __count =3D 0, __spin =3D SMP_TIMEOUT_POLL_COUNT; \ + s64 __timeout =3D (s64)timeout_ns; \ + s64 __time_now, __time_end =3D 0; \ + \ + for (;;) { \ + VAL =3D READ_ONCE(*__PTR); \ + if (cond_expr) \ + break; \ + cpu_poll_relax(__PTR, VAL, (u64)__timeout); \ + if (++__count < __spin) \ + continue; \ + __time_now =3D (s64)(time_expr_ns); \ + if (unlikely(__time_end =3D=3D 0)) \ + __time_end =3D __time_now + __timeout; \ + __timeout =3D __time_end - __time_now; \ + if (__time_now <=3D 0 || __timeout <=3D 0) { \ + VAL =3D READ_ONCE(*__PTR); \ + break; \ + } \ + __count =3D 0; \ + } \ + (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.31.1 From nobody Thu Jun 11 12:16:26 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 D400439E6F1; Mon, 8 Jun 2026 08:05:25 +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=1780905929; cv=fail; b=myOO3979QmohMNikrhWpSqwLiEn+RTCy3THYRP5+e4nMsQPKggR1ay9frujszfpZsCY9vmdtCy9VjK0laIWL0bgSIKsflRc8DDSnLQHQFUwwRS6mByEwEpqVEuvwidcAYj7bKgTw5qZpLown057DzdDonb+vO5obSvNfNoyLeF0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780905929; c=relaxed/simple; bh=asgTkgPsd9HphHuIip99cadtzMo9f6eypJEX4o4rbQ8=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=U79DpthqYZfyx4se48Aoq9Rb2OFRYHmnsp5hsHGFVrWf1+tYBdYKa3gm2FYlHeT2ZXjBBeAg4FvpqL/MOyMnUtIN7m5LwKs1QNgj1JDngp0LYIxAWaqP+QSy/Rl1txPbaqYl9SWrT/dJcmJCAIEIq/WWWfmuZjT7Mf6PIEjrNzA= 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=D99nzias; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=wq6gnlrE; 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="D99nzias"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="wq6gnlrE" Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 657NoYIl3643931; Mon, 8 Jun 2026 08:04:51 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=70PY6iFpeqklAK5RoqZXQ2jStsx9gEGG7INLaintPbU=; b= D99nziastLa1AheBhY1MjoWSxqjwu8VEnm66xoM91fLS72zW9lSWPjOhJYJi8HEG ayuHDPSfG9ilsBjdJP7QAZJ9WY8Xo17Qg2zy9ozWmUotvSgLvei/YXfzRBTpXlgU gZwXtACfKmywIFEfREuuwV+106x98vTBtunsy40/mXQ7C0SB6CL2Z7ZBB62RCwfZ z2aAhYhwtkXGJqX0ySQpwtCmsV4PfPLT2GoMLy0HEaPVlkMvDL306zizPUXMCNh/ bx3RIOv/g+DUOVzi74SYP7Cf5UI76+mRTu2pRURjVAz7IqtO86IHdauTBApf0UCQ aFv0YveaTau4VDunk/AzXQ== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4em9yba1c0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Jun 2026 08:04:50 +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 6587wTYh005906; Mon, 8 Jun 2026 08:04:50 GMT Received: from byapr05cu005.outbound.protection.outlook.com (mail-westusazon11010026.outbound.protection.outlook.com [52.101.85.26]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4ema0ngg41-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Jun 2026 08:04:50 +0000 (GMT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=pxoh5HWDhl6tfrBhiHaZkbDc5p0fqMxXVc4Tx6WAMUClp5iAj+B4zoxvnoA4MpRTqA9xcnYiIZXdpEJbnwV7kT3lO1UhhUz48OzpAU1hoJBjFvaE7By4RedVNtRomwiZkGKfszYESEaCNWMbUy4VBRUHFbke8IgH1/CmJT7ZdCFTiSG2dtyLa7USL3/b6CeY0Q+g89bDqh6+GZX0tsM0nKjI+Luc/m2nfMgAp+10noWyoFMi3mIhz2aezxbD4d8pxC2oNNSpzJqbHw3tDHbhITKAhmihycxhuvp0TS5mWTUSlF76b2nqddPjsdNTvX3zxb5Ok8XU+fx5duTplRbQ5A== 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=70PY6iFpeqklAK5RoqZXQ2jStsx9gEGG7INLaintPbU=; b=njxTJvwFvpSlST8+3gcCY3G3sJd7lDk3tupDHQNhkJFh+zJQK4NKrKbXM+oX0iZb/NaXY4UEIj5ziO5Lm9CrG2Rr4PEm78Y4x3Id2kdivdSQyL5am3FJxTqgbCJWGlp0vVWzEcs5myMICeWUR8AIhLKqse6yj4HE0RkolDk0YDbS0OBqfX1uLVI4dErlNl4OWdpkxzMponcHpBDgZPvfP1HzakIcu9yEqcTzQn25YPbeZWL3MlHrXJYd13uk+lno8pX/Uu+xYX91Y++1yEv06yt8yI2Y4n12vbCR6uOAV+OBeelT8zdiqLPpbfn+Mi05zo2vzz9QeOWG2ei/ruuvUQ== 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=70PY6iFpeqklAK5RoqZXQ2jStsx9gEGG7INLaintPbU=; b=wq6gnlrEwD6DhHaQdji8nXaFGN5hMwhyDuREiPnDruyTXXWxB7nYY2p/A5RSR1364zDlH73PivKOTCpF40RZd/5EHG53ucWVLJPsHBKZOamdLTCbka4nmxANjNoR06zP6i0dX7FKe7d3Ms+Qp3GC8IxFCzHvrLBBBUpnLJfSyAI= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by SA6PR10MB8133.namprd10.prod.outlook.com (2603:10b6:806:436::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.92.13; Mon, 8 Jun 2026 08:04:46 +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.0092.011; Mon, 8 Jun 2026 08:04:46 +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 v12 02/15] arm64: barrier: Support smp_cond_load_relaxed_timeout() Date: Mon, 8 Jun 2026 01:04:27 -0700 Message-Id: <20260608080440.127491-3-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20260608080440.127491-1-ankur.a.arora@oracle.com> References: <20260608080440.127491-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4PR03CA0252.namprd03.prod.outlook.com (2603:10b6:303:b4::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_|SA6PR10MB8133:EE_ X-MS-Office365-Filtering-Correlation-Id: 7b956133-ac79-4367-5454-08dec5349aec X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|366016|6133799003|22082099003|18002099003|56012099006; X-Microsoft-Antispam-Message-Info: uAK0Jwxt8yWvEHq9EaBcYk7yGSJ/MGfQQ2wUO52zmcahL2lfTsHRdtUsL7jB3WAi7MsAWDg1bDF6vo2JlY226jDqdMnbCqBxHEul8EV4GJZZ6zFGkSmDyPMyIN1H/F1C4OW6yXNytyEAYU9eToiz1sP5N/MXY2aeqnW23pTfVlGm+TjxeZpmP3nhq953tlvMWStyN/DbQ64NG3/TUsZ5VreQQ8NKAHiEwXLr66WQuC4ebd44gTP9ex3KJSE9LcmBoubrS3/sQgRcsgaWjx85U7iaMV/+e7xkHmTZpoeT7zlOa4o8T3uoy/rQ+PZG2WW4eyjvHSZbnrijGbjNPXMY4vgIMlRbteUHasKa7ffnufHuQZpesNECHRizf9cKVFzZSDfVx36dEEdaAVtfNoesEldlAnK+OvTiBkb2VZmVT1o+n0mSirGqDvcEYSIfLxvWJt3cBD8XJk1WcW+ojuas/N6tlZ1g3L2U/G9EuckWSeWxvUYR1WE802yi+W18ZMnmYUfq805DE58VdzTrdxdK/IgLYWC5knfuqmUALW+se9KCXHwJmppUVH6qnbrh9mRWPzKx+/+ZUDxMf4KcmnsiE9/JWOjD7+1WPBoAc+EHAdOeFUp2OCsJ/7aZGLjkWXgmKG6wmdeod9yKFcAxeKqGvw== 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)(366016)(6133799003)(22082099003)(18002099003)(56012099006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?gXMUkx9zRnekngQSlq28YRO9yjDjfUbqu/fwWSxQJ5sX13VJa9QgF0KJJAlE?= =?us-ascii?Q?XsRgae5lgwZcLgBHPGp8GZK6Ru4NSspU44Y7P+n7JHU69hb6ZT2WW8eNlAxB?= =?us-ascii?Q?bQIe277dGEPSsW1h7iwFI26NJdyjYQmhUTPU3PBepAYwScbvnqDYfV4qoT+8?= =?us-ascii?Q?bWmKmri5GrnF1sD361s77roEigf+g6PH8CW1GEExNn0CtO3GUBI+0uWY/rjP?= =?us-ascii?Q?CkhCOAZoMEBb2nFP8wZCU2R8m+ZrgaLS64gwC5yWQ5X8CHtZTQxGVwptoiDH?= =?us-ascii?Q?TNU0UbiHJOj8B274TMUtsWBN/6b4Wws5O5YuZ40Kat0a2xlF9zndKZ0u+u/G?= =?us-ascii?Q?JMTvDkbN3oVRcDx9dCpVdjZ7wBWTG6eekwRfS/iEePB5W1kUol10yJ2ILJBo?= =?us-ascii?Q?oKMlrCbuvGm/5Ocd0xvGNTIhA9IzmwLtsZU3aYvbzh4VLI7gLUxpmmllcjmX?= =?us-ascii?Q?F1FeRbQnWuAT5j9HV3J7MMMZ4CiqepNkEPm18KvLZEIPGGknRpc1sy+Gci1z?= =?us-ascii?Q?PhoMgU2e/CQGihn0pNVBh+1S8OhhY2o69U9GNwHdkULLnel++TEeRwaKpS8R?= =?us-ascii?Q?em9zVbXVTYNnCiRUOXTIFFCViHRpwL1HVHpBo3Psb5vDHCwOCbGcNTmfKoAU?= =?us-ascii?Q?48MgdRIzZObj4H7VhDoV8m8o6T27vGLAlQ0uvYzVRq+wGMDnjeMm0SuzYQ3f?= =?us-ascii?Q?13SDMPZtotyE4o0QLUYImJMTP8jKWcvpMLdfdk9yYHtWy+yC1LBMii/vNp3f?= =?us-ascii?Q?8/0vS/ATs4RGLNtG+TJ4Qez/BEQFHi5g3OUcgXgXPObM0FRvw7rdj4iU2zNO?= =?us-ascii?Q?xeuBwvbwkpIj8hgPIys5xWkz2pRivz6DPANTMT+YcrgnfMZO5adpYT3SV6oQ?= =?us-ascii?Q?QaQwkt4eq8RWnAgeohTkCWoPfGi7ktc6UiRPRR9X5BXewThyrttS3ueIVi32?= =?us-ascii?Q?uKjJj7UVpTEzvnjLpORkFPgjQWn923S7v2dErwDZKpBDBcJN9yf9Vpsfv3YZ?= =?us-ascii?Q?tQIUVikxqRWOp8MwHrrRp8sJG4gOMIiaQEnx9cDW3spy+iNa7y5Pf7ySOmqZ?= =?us-ascii?Q?j2bAPMkaSNbA9+mVnEJCmoxrqE8vDnDbKXLMcq+4Y0y6OM1kQZfYBFAu96GK?= =?us-ascii?Q?Pji2X5xdotNL1ekqABkKufKk/viEqvpG1QofxUKaByoVevf++7CwaOV/kCcx?= =?us-ascii?Q?MwTW6wcByVn2BYgpkP2/+AKJbfFbXHvfdz70JDjqjUyqmIXSMMUV91Naav84?= =?us-ascii?Q?XSjOMCxdd8mTLazaDUp3AX31eU+iO3fJfQm05rVkrSfn5UfxQiD5TkQ3yw6t?= =?us-ascii?Q?NS7nXo5q/ykTxJoMcKt8NUGBcISFAdxt4PsfKojk6lL+dGyYanuJCeFNMpyP?= =?us-ascii?Q?pV1CMU9G0ggYCgAfN5lQo/Zp+ptsHYbtdZr7UEm2kMiRbx63NEfpFiOGeug0?= =?us-ascii?Q?kp7ANkFrJGjuYw4hP4iI8+n4G5qt15pt4XNyKI3oXfm9eXlqCER4KKxZveLk?= =?us-ascii?Q?4XG8D0DcFkmm2xguRP94EIcjuejlyL8IBNi8Qk7JsSJmNopi+1vjVcQ7Rk1+?= =?us-ascii?Q?FeFlPowe/3PtBFA6XqBLcL/p/b/CS50l94BNB02EQ4hnh+cc7cBdN1bMOXfh?= =?us-ascii?Q?bZiR4HAeSzVkFZ+y6TY0sTpetIryB1KGlvzBoKmGd6ipi03d9XKPVoCYKqcJ?= =?us-ascii?Q?KnZrpZmW/BsgvfX/ofskwKkC3NJbq/YBE6ZScDNpjoJ9RzlN0dRoE5HKZWcZ?= =?us-ascii?Q?WLhOblW6Fg=3D=3D?= X-Exchange-RoutingPolicyChecked: KjoiHcwtLT0DS3znSxnyUq51Zqeuj1ypHxLSdXqcgNoIK/6ICAbF7BV+kn6AAarBC3YnFPYhDuSf/kQk6PC8ZoqiG+fHlSoaL5ghng7c+StdTn9fORropG6hjlyM2Qt8xruiRy1mxvaO6qy8fUCWI4O6WI2gw6j3sIb60lP8jRK4O0VxgQ5IGIxDjKnw4Rr+DszT5doYjf2tLq4CTF+sNy+Gz0eZ3JhOm/2psY9vymP0t5oReF4+drcV+Mj9eCCXK/JZc+M+A5ECIpNGOb27PjyfbnlZ/ZHP1NbEz4tzt+NW8Hp0YfvxEqJgUcNeoYNoanok2VMTG9UQyujwENDAOA== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: +VFIAaRINdrK9LFrofvJom+Zd7+cf+sHhiOr9vc2N2IHuK2lJ6rQ847JjGUSXGkPZIzaJWvqyhGxYkYArLJcoNgUAp4dVXHlrnfbAICW5UMu3sC88Y8/NtGu0Ub1NAzmdIAhEs0JyGohrMICQmMw5PupHq1vZ2KwcQ2nzPqdW72iAH4Pm31DqZcxxFY/DDZyCp0Di94lALDa1/D1T/8UoyZfjW5k1WjGLQkCxYDc3G1lgXbFHQpUTXn1rgEAtQGF1MPmKkYUB5HzayXCD9Ah+R46QBxDeZI4UqMzbToM1PdVjxgXQReV5posLhFuq9EjRXCBdHWQ4nck68Dfv6kVJwTva3NyyCIg2bOofD0ekekURjvvmeT9gXDyHVW4E/a/b1ECQXvXDF9K3HPAXzqRr0kJxdAnycZ25KzNLGEbN/J+9ki7wTtj5JccxblZ214AJ23+QRu+Mjt9Ge12zU4J2f71tHzqNiYzgrqUHeO1oNc7IfwmF8pNvvYPqL1nvYbkrd8wBWP5WyZWXJRSpeHTIz8UuItDFtxfLJ8EH4UaChi2UG/PrIg3pcnEJiFJErFbi2YKYdT9TZFQGf98sul44mtO4ZCNi8agq4T2PA8zn88= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7b956133-ac79-4367-5454-08dec5349aec X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jun 2026 08:04:46.2814 (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: xnsCvYAcJqrawfPxg5kf8h2jo1DxCb/ATnOQHYP8wCef794OVE+IicByR5iU4pYfSWHbqviMk2kLc7SrUI83HleMuvxRF1Zt4NoOskByFcU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA6PR10MB8133 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-08_02,2026-06-05_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 lowpriorityscore=0 spamscore=0 mlxscore=0 malwarescore=0 mlxlogscore=830 adultscore=0 suspectscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2605130000 definitions=main-2606080073 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjA4MDA3NCBTYWx0ZWRfX6LQqCmtcy9nu gLhTjK3MklY5vjjwX9OZm/XLh5cXO7c4fBX8/2QQrVF0wkPoXKV+4kTWUFMv7KryPGnsIPBZVsX 5uPFtzY/JextkfROEWwrGQ6Hwqabfg7lHMVBwemd0CkyEM9yinuamT8bFR4ZH5R4bJ7ToaY6uRd XFd2NxKoba/qes2OHx1k4VmxOtKYw9Qd+sn/OgEUv0vLDDm3PWF+lUCs81K/jZ9bPfDHKpfFJom kzf5RCvsbNCNNWXIa5bmfxlQ4+t8v/gYwa7fvgPVj7wHJUZKUP+9OHSTX66gme44IezDUI6iXPa O0fs7+YTjxyCuuTdwi0M2aMooiHASPg4m8LPGT4Wu6OYH+d2Febxxd1KvNK6bXyJfyRQQyvjuVg KTAqeDsHq4zADnIrogjREHVBk+TOcFDX23T2aP65ptFGQN+E2lXI76VFreU3Ar+pcvBXty9ZtLm nOrozih8ZHS/PN4FqAVZK2g8+wj0UAvWEH2iZ+0E= X-Authority-Analysis: v=2.4 cv=IYK3n2qa c=1 sm=1 tr=0 ts=6a2677a2 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=FelO9ux0wxsA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=jiCTI4zE5U7BLdzWsZGv:22 a=x4eqshVgHu-cdnggieHk:22 a=c92rfblmAAAA:8 a=yPCof4ZbAAAA:8 a=VwQbUJbxAAAA:8 a=7CQSdrXTAAAA:8 a=JfrnYn6hAAAA:8 a=p7msl0-MwrJJe7Mg_5MA:9 a=GvGzcOZaWPEFPQC_NcjD:22 a=a-qgeE7W1pNrGK8U0ZQC:22 a=1CNFftbPRP8L7MoqJWF3:22 a=5yU3S35YU4bGjq-dph-N:22 a=Bho9c0fBagfJEIQBS7DQ:22 cc=ntf awl=host:13723 X-Proofpoint-GUID: EEJQHsCjJ14i4vrKFe22Mohgx7bWSbG_ X-Proofpoint-ORIG-GUID: EEJQHsCjJ14i4vrKFe22Mohgx7bWSbG_ 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. Also set SMP_TIMEOUT_POLL_COUNT to 1 so we do the time-check in each iteration of smp_cond_load_relaxed_timeout(). And finally define ARCH_HAS_CPU_RELAX to indicate that we have an optimized implementation of cpu_poll_relax(). 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: Doesn't address sashiko comments [1]: - event stream being disabled or broken: the event stream being disabled is not a production use case; doesn't make sense to add a fastpath check for this. - arch_timer_evtstrm_available() isn't exported. On arm64, this means that smp_cond_load_relaxed_timeout() won't be available to modules: tight now the use of this interface (and others of this ilk) is fairly limited. Not worth solving until there's a use case. [1] https://sashiko.dev/#/patchset/20260408122538.3610871-1-ankur.a.arora%4= 0oracle.com --- arch/arm64/Kconfig | 3 +++ arch/arm64/include/asm/barrier.h | 21 +++++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig index fe60738e5943..fa676428ec3f 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@ -1606,6 +1606,9 @@ config ARCH_SUPPORTS_CRASH_DUMP config ARCH_DEFAULT_CRASH_DUMP def_bool y =20 +config ARCH_HAS_CPU_RELAX + def_bool y + config ARCH_HAS_GENERIC_CRASHKERNEL_RESERVATION def_bool CRASH_RESERVE =20 diff --git a/arch/arm64/include/asm/barrier.h b/arch/arm64/include/asm/barr= ier.h index 9495c4441a46..6190e178db51 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,26 @@ 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 the ptr value to change. + * + * Since this period is reasonably long, choose SMP_TIMEOUT_POLL_COUNT + * to be 1, so smp_cond_load_{relaxed,acquire}_timeout() does a + * time-check in each iteration. + */ +#define SMP_TIMEOUT_POLL_COUNT 1 + +#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.31.1 From nobody Thu Jun 11 12:16:26 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 9116F2F12D4; Mon, 8 Jun 2026 08:10:33 +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=1780906235; cv=fail; b=lNel+b+e45Np/rFya9a88Xf0jRM8tNSHyCsXpUXh3DBaI8/HQG4ZvGmRIqsvsiON0D/F4cI8pm/pWztj/T7E+MCl3T0dmI2wpvlGP189/z977AGxFYvmgIm76k8jPlhM4xOXFRu+H+fveL8EIgd8PRs0B86byvZWVDMosZ5uhrI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780906235; c=relaxed/simple; bh=X5ioIbBumfrNp+wjqk8IpYgQbXzPSczSU6a/f+GBc7U=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=Q07A6s8vEXlA7ItOR8JAO/E/Z6IvqCEs/Hm8l92fEDJ33HN/Rq1S48fyBt34clXavtFtkNje3viX179VXtsC8yYjKAACj2P59rmwL2fLQf9ml3GFP+tX2lLgjNR3ciJ3COq9WZe/A0QHXLCVKr6jivlstPonsf1rL0ggzbnDaJc= 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=rE82gfuI; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=Hsj6AJr0; 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="rE82gfuI"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="Hsj6AJr0" 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 657MX2MH2061148; Mon, 8 Jun 2026 08:04:54 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=HUJtsokT7Bbjx3xhOtgLfkoXi7x2vZHzPk2iRHlJAzY=; b= rE82gfuIhDnZMVoASB59vth0oBvN6yaYyLbaBjamVBe898PC6rrNxtClhVQut/QL 2/A7nLT/q8VYDtj6Tloiqn/l3LaPt5WrhGZG4VFKcngWGJrfY+vN15jHMmRqfie+ OoVJ+y4cefFajl9YDgjz3IZwspb5kybDBYxHQ789EzGzRKfQ3FQI4LQ5M1y5bwVq ftW9ag98DGDpkLS6sl7n6xXl2hxX/VVhjErRGCX0Lim0EdNybvj+f1b7HMHebN1d iSjzkQfW3slXg2hVmJZIfwJopiakfQrSUxXTOQGkQ34LyPgmxAILpvUFBazGYQ7a 22WkMfEi7ql+YrZ4bHjaGA== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4embkja0s2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Jun 2026 08:04:54 +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 6587wTRL005943; Mon, 8 Jun 2026 08:04:53 GMT Received: from dm5pr21cu001.outbound.protection.outlook.com (mail-centralusazon11011038.outbound.protection.outlook.com [52.101.62.38]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4ema0ngg65-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Jun 2026 08:04:53 +0000 (GMT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=VhN+qkLJwFf6O9C337Wk9Z/K310hJWNvhLzEQS6Jewub0H5g8JeWgVTSbP9YKO7FptdHNpZEGYYEYFkuuDsGEqLxYx0sJZD/+yGlPQBD/cIBwLeO0GXjDyruBt8rk7wuuLJc44F0EHDLHTz+AuUQ+kFuU8KF5NjMagPN1xcylLGhR4xy8M8AFktFnTXm/RYjuLSlAMIw1YPgJjNjF4qtfkhRP14tuyly+5QV4Abz1+TNUsJ85K9cXvw+I3ifiu19JlBCi3mrHyIERoOy7mgS6s+OfZZxJhMPcsLzfstzrgWxObKqssgXJ7ns8h63yJoSg2upCwpyTC+dsKz77q5G3g== 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=HUJtsokT7Bbjx3xhOtgLfkoXi7x2vZHzPk2iRHlJAzY=; b=yy6FfhEvXcKcgsXda46tIyU4RqJ1+hI5NS/Ggm1lbe1j9MV2ETdX5i/P2s73d0t4XzgIitRBJOUVypc+DgcUnQegAQZbHEvNUw8FB3F6VgXrseKklQPM0QU+G56jC+a2yI3xuWnYSxUjIZ4Jb/Q00we6+fJZvH2K7ex+XFYPLUDDu8JyHcqUO3daS1c1D8slcG04HKckSauua5KfnjhH8Ke3LeJVrX4PTbIr2XKbWU4dFpMjkHrA528IrFke5LPZTkS/YxjdLZ5qat17QVOW89NeBfcwpBFjYmJtFErpaxkQpNYDO8Q/xECpzX/kyZcyDAU9zFvzU8uI86GhZaAq5Q== 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=HUJtsokT7Bbjx3xhOtgLfkoXi7x2vZHzPk2iRHlJAzY=; b=Hsj6AJr0tGkKKJzQlJm2dkcU79KTYnBkig3Egq9KLeSiAyv0m8m8+LED2v8ViYW2HcXFaQu3Vlyd2/FHzW/LrbqHIvMn8F8sXqWoH+g8DpwjZ01oRehpCOMD45NVjzSqT/D3Tt4Pv/LAwM01yFZgjFkGWgUkCM5v//6Apke75Qs= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by SA6PR10MB8133.namprd10.prod.outlook.com (2603:10b6:806:436::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.92.13; Mon, 8 Jun 2026 08:04:50 +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.0092.011; Mon, 8 Jun 2026 08:04:50 +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 v12 03/15] arm64/delay: move some constants out to a separate header Date: Mon, 8 Jun 2026 01:04:28 -0700 Message-Id: <20260608080440.127491-4-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20260608080440.127491-1-ankur.a.arora@oracle.com> References: <20260608080440.127491-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4PR03CA0267.namprd03.prod.outlook.com (2603:10b6:303:b4::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_|SA6PR10MB8133:EE_ X-MS-Office365-Filtering-Correlation-Id: b8a01c00-a9da-4c9e-92b6-08dec5349d7e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|366016|6133799003|22082099003|18002099003|56012099006; X-Microsoft-Antispam-Message-Info: 8Pd9MvUog/5yFge43waUnZXZzmjBzNQ/a/mxt//hZbLK1FHz0JkUG9vQ7wa8SkO/uC06sxxmn0vpNiXOPky+lkxyuUKCDqTKNtiif0Zc7uXGKnSKd9XoYE8PiZ0O61N619Ycd1ukISTte74hzG+2k1r5w9jkeovECfZW5BGMxrgMVEjSPtePdI2zHOvat/T+Ijd7H3XnO03cJCVSA+3nk0MH56R0+sPMCb+EGpPsXUptkyDcancDEaHrHpFuYBQe79StvscMOB4cH1wn9URqjW1Dan+4eGC4HeoWChhA2eqs4cyFvfGqXv4dOlwytVbbf/jw6zjxEVKs+9WyRHcar2bssAscLLxgmLLH5OS0u7viTv+GJ+QAWgJm6tFT0iIPpwaSFI137JCmFfBZ8M82a79IpY2RfTsjxWzBA/Okbnogy4WEhXOGb4JQ1mR16LzLKoScRTGmS81VkPGGsWS6/hvHBpu1RlGPPluKul/MukakMJ6BdLZPDpKr8gru/2oq6nnKA+BqFSC2OAXFoB/w4E67nT7Lbwy1X0gC7skebMAlaNeWGeJikY4e67PEg8HXRqI2vGvm49D+iUIr2RybzLoCDvhLL6nEsUTLw4cvLH3Yx6ZPMPLTPWajVRzeE4Y3nH01wGWmE7uzJRqGHAOtGCsAivfOGR9Ou5nHrA0BakNcqtIZ9jAyqsskOhjnEd4r 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)(366016)(6133799003)(22082099003)(18002099003)(56012099006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?xDGKKaSjIOeGoGgRchNygyIdVxm565v8P4ps4PZJ4zaQsfZif8EZ00BzCbfx?= =?us-ascii?Q?NRZqqNxBtncGPQ1iasKSrWRPeWRZEIFf+VTR+PQt9qnp96QZ30HThtY8QVgp?= =?us-ascii?Q?6X6chJrYfecjSA+4xngVHztwX2B1gfHm4+vlOLq5VmVzUzQd7vZ3INOGrARl?= =?us-ascii?Q?E0UsgRd1/bCj4FQsEak0H2gfF0v+SdN9wiMMVvyOkeBKA2rvE7GuUMxdj025?= =?us-ascii?Q?pRxEAyPse6gvISxwZurnFGbAZfV2Ew2zy+zRs/RAKxeY8UGeJX6MlCamM8ag?= =?us-ascii?Q?NtDswgLuagbAyHZcGITsuNjbjKpMS0rYIEjvW9k7+D+rB70SkllHazacA3vl?= =?us-ascii?Q?nmKxiRQ9tsWR/wHjlj1zCbOtxd8gPVIeFhD4ngPgO+V0X9RGqELPXDxiaynG?= =?us-ascii?Q?Pi2II6ZrccbG3xSjuPis4EeCnfZlW56YPypzxLq9Fa+8k0dTxitBmg5xb287?= =?us-ascii?Q?duns2B9snwhcdVOQNbMGctagoLnA8YFnU9AhcZUzPd7/GeBb5auwFcz/1V/s?= =?us-ascii?Q?NPkdNfVjuhWn4Emk/M2sKOovwHVMrjiSGj/L9Yst2PMkznj3bbrah0xFlBtr?= =?us-ascii?Q?YfPEOe+1Vo7AaojPR9MyQG8qj1Z/rfKB5m6Ro5llwBE6tOw5mDWhN1jnEozx?= =?us-ascii?Q?8U3/iTTjmPD7x3wEoVVOj6sr0t+10vEuSR56Cy6DBgWOj74WpBtQhA+mnW1j?= =?us-ascii?Q?ImIMVcBv+o1WFcGQDyW9BBRb0vs4QZc6TAvggQLiVljzZsVB9oHNAtgw2gFA?= =?us-ascii?Q?13Wo6BeXTg5IDeXDzDLg4+bm5sTn1suEXlm+to5bgAzdVgiAYfrXyyRWQPm0?= =?us-ascii?Q?6+udc4IacCBHZ16vAorWbPppI1pYjvno7QhM5MNkRDi9uHGxwI4R7k5GbUl1?= =?us-ascii?Q?GExUcSa5mtWcXMSfXvg9oNg1PZbX2xHCNfI1avRdHyDLUXCzShc6YEfgzsoC?= =?us-ascii?Q?Q0Sm/uWjrCIvWR4NPE9yhTOVxwtjin2gmQqiTckilH/h9rWZhZlNH98WDOpb?= =?us-ascii?Q?DEX+3I8MWjP9fkeHeC7Q0UTGSeW3PrCwezNGOz9eEU7C1o1Opa9malrdV/fo?= =?us-ascii?Q?UQztBbpfXduEuYL2qhLfSuw6Khs6J1pPBn36KD7Dh/ifgzo543h0SG0nIiQ8?= =?us-ascii?Q?mOn3/gmwWqH6o1mh5EWsbHdTQ4ddXu6PvX+3sOiIgjZ3kNSuHGERLdH64qqn?= =?us-ascii?Q?TkDLcd70tXmq7r6IhH0b/iqOHhgCxUM7aPyOAM7BFgDfK1hsby1O97XYEAw2?= =?us-ascii?Q?XG4YDWh4GUHRUTGuRnq6953Q3n/LjUysAGkCSFIGiQVSgLfIYjneyUFpeAVY?= =?us-ascii?Q?8GzaHgVpMMuPpNGhFfA0KDaYDdUi0De6EG3G5evSykX3M2yXxmtQgytPoNk8?= =?us-ascii?Q?fC8Jpa+6oOSOMz/9STuFeGELqFQzR1uUmWwXFEN1p06g+67iAfKTJItuyahz?= =?us-ascii?Q?+n62h8SaU8fMCtgIZiQMP8vZbw+A/XaQRFJksLwjhxI98F8hLwLToWOnQSmO?= =?us-ascii?Q?GavAnWtg4uvznMtZtASsOCjS3E+Ot4HuOZvB9H6gjME4j4EplUkBEOCZT77N?= =?us-ascii?Q?d2fH8yCj5aipso7uQvn12xgVPrb1JPxPyezVpFuVVdsba13uZJ1wdXT1MmoA?= =?us-ascii?Q?3IBf+hj5ymkJFYSiNEHtBEtnYHD/mowgxt6Ju5ksTGlQvFL6t2z6CivzP7GU?= =?us-ascii?Q?ADdrt7ZtVcV2shK4NqmUiLlXbwEwQOawOWm7gYpYGv+bM2wgFXVKE9vWCxz2?= =?us-ascii?Q?QAy9gz4boA=3D=3D?= X-Exchange-RoutingPolicyChecked: UGEiygWotdQyUCy0QB1HsIwkSKNzfCVQXguCf1j+GEbnrSzOyOe2RR5VnOqwzh21SI5KrfLPOMpIAzh28zGBkCo9DSOzkZ6u9aY8L03R2zM678jamF1ST3MF+CseiSQmm0x4QP9hbzToUgaxJGsg4T11LOUdOWoYAVtJEraWhKWy9waJgwqHnNSVyhs8P6YNxjTsvk40LADzI3tMrA8gEttQ18rTtFZCraUOGaVMeJ++S8MH7n72yKw6OjOJjVQKni+wK8yb4dsiXg7fySKu5tM2DyLtUr2eDFssomsBwPnIUTescxRoJoZoXD/xsgemgWpLR6+EKIYeiw86yWbpiA== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: gYUCKmCzCc+chtR/cSgMonh3/NeIa3Yc+PwGcOH26oyGJe3/URJA2Ts9+qsPLzWPW0bSsN/nczYsXCNuq9nGZUs3CF561Z1zmgMt7ZoZ68PTOFipHFp7B93ru6NXTCG++vrSk/cmX/tOLZViQ02LpbrwdIywg/femVHO8wpU850vfFjaQwUaiZFlNqPwNSfKich/xXee6GOJwPG3tKJE8zIjxRw5eKqXmPP8bQHxW3Bgghxc1yTUDlVNajz7qoQvnPP2iJE5oqqdSYWAT6DjUF6tLuU5X9e851PyWogxg76H3EKGQaCpPkjq+UzxPBEtcy7nMOhxH+vosH+fTfTgoLhVQq132qs4ufOBiYVxM+6OGVW9FMcj7oz+agUSuMApTgX3szf3JN6RYTqHeRq8RV99Y0r8aWZyYV0+zyrjbbkE0CHFZJs4rbUy5AVC07QJNplwFQO/LAZL5h/5DiGWiORg/x80Dsw+55YD2zh8qKudiHgfBsw37p9T3lM942aY/Q/78iUEP3l/iEbKyHsuwddY0fBhuDwRyWgIK2CV/25g5TgYYwZaM3ipawAiUhIfEhguUUT2r2rnO96CATqcUwUDgcosB2AboGd28V/F1YM= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: b8a01c00-a9da-4c9e-92b6-08dec5349d7e X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jun 2026 08:04:50.5748 (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: rFq0+WBeU0kvBSIf2xPaEG/jdFwCu33Et4JazWyO85Y0ylm6hmm0lq4fbdktEfMgBDWZDB5Sxxj3UKBoRtRRf/R9DlDUFn6Z3FJhBcxCc1Q= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA6PR10MB8133 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-08_02,2026-06-05_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 lowpriorityscore=0 spamscore=0 mlxscore=0 malwarescore=0 mlxlogscore=999 adultscore=0 suspectscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2605130000 definitions=main-2606080073 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjA4MDA3NCBTYWx0ZWRfX4HbU/GjXBnZ0 6TU5JlOoYVj52cnzqtRzuaPct+gMlcfirZ0hHDOZ5+ZXxXwSwyYMizHThkYc3gz1rJJ5Y32GNGu I1bIKGr3Fm6bly4vrmIeB9OomhAR6TSTaq0Sc5nWRxiFHlBh+ufyYT8z8/DoLRlqbM9MNSy32J0 iBk/0zhi+kLqmmAVJlVOmTJFI7Woq3Gf0Su9SJIrfgqAnYTeiVa7GKHF71539KRIkiY4mF/q2ik qymvC12JqATNxy8FGx+nqLBovSa5WNDdiqmdfubBZWULU7nxOmhZdoBN5RLMLXLIQHUxTf+DQ1Q xUYGRm0UHSybCA/zOhnJgKapr0svlhYeXCxxwr2BPnXupOh2AccfQpLShCWTlsKqUeCVdLms/hz wVKvlQPJ1gN6medBomwhkzp4U6s0qjYYw524A/DTlfUXgVCOSArap0XT7bGzkIZ9lGLZfaFaM6Y EzPDQxf6WsWM/T/AbnHlBDBdqRlQgDFnpXIBK6kU= X-Authority-Analysis: v=2.4 cv=ROSD2Yi+ c=1 sm=1 tr=0 ts=6a2677a6 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=FelO9ux0wxsA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=jiCTI4zE5U7BLdzWsZGv:22 a=BqU2WV_vvsyTyxaotp0D:22 a=7CQSdrXTAAAA:8 a=VwQbUJbxAAAA:8 a=JfrnYn6hAAAA:8 a=NufY4J3AAAAA:8 a=yPCof4ZbAAAA:8 a=gQgDrPkycQ706KZxoKkA:9 a=a-qgeE7W1pNrGK8U0ZQC:22 a=1CNFftbPRP8L7MoqJWF3:22 a=TPcZfFuj8SYsoCJAFAiX:22 a=5yU3S35YU4bGjq-dph-N:22 a=Bho9c0fBagfJEIQBS7DQ:22 cc=ntf awl=host:13723 X-Proofpoint-GUID: ZU9nTXKRnrgzCWRDx0qDMwqhWsyrmftV X-Proofpoint-ORIG-GUID: ZU9nTXKRnrgzCWRDx0qDMwqhWsyrmftV Content-Type: text/plain; charset="utf-8" Moves some constants and functions related to xloops, cycles computation out to a new header. Also 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. No functional change. 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: - include (flagged by sashiko) --- arch/arm64/include/asm/delay-const.h | 28 ++++++++++++++++++++++++++++ arch/arm64/lib/delay.c | 15 ++++----------- drivers/soc/qcom/rpmh-rsc.c | 8 ++++---- 3 files changed, 36 insertions(+), 15 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..2a5acfb7bff1 --- /dev/null +++ b/arch/arm64/include/asm/delay-const.h @@ -0,0 +1,28 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +#ifndef _ASM_DELAY_CONST_H +#define _ASM_DELAY_CONST_H + +#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 unsigned long xloops_to_cycles(unsigned long xloops) +{ + return (xloops * loops_per_jiffy * HZ) >> 32; +} + +#define USECS_TO_CYCLES(time_usecs) \ + xloops_to_cycles((time_usecs) * __usecs_to_xloops_mult) + +#define NSECS_TO_CYCLES(time_nsecs) \ + 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..c660a7ea26dd 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(); @@ -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 c6f7d5c9c493..ad5ec5c0de0a 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; } @@ -819,7 +819,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.31.1 From nobody Thu Jun 11 12:16:26 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 D6E0839EF0F; Mon, 8 Jun 2026 08:05:26 +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=1780905930; cv=fail; b=eiW9DyEcOULfnGXl3NSuJvms6bQFZdaUndnMokX4ttaFkNdb9FJy5s/IKRLwB6xALNYO2EZeqqyePpw273rPBWvFWPmgVECVdgsyqQrDvpdVchOUujAQNKaxRA72d/BetSI+DGQNX7qxfLf5veKSVKeijVJ6ti37Bova0QFccg4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780905930; c=relaxed/simple; bh=1NGAlTyuy5/nklLZBJTuXxw4k1QISkNA+ebPo1LWYNw=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=Lc+SzKQG+IV9NEZ+Fx2qwV8DFUZo/RWkYb2aPMFhv5vZA3y0Gb9Xumio+R+M+g/hDStIcMY96a35ZkS4V82rUIRlGP10oomWmd0Q66LwZHnfBp0RvNu6ph9kiRG0ZK0micNPVXvNDdDtgjbyEC5oTejvvfymOUXmQLZIJHJevE8= 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=doQMuKW5; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=tAbsslJa; 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="doQMuKW5"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="tAbsslJa" 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 657NP0NR3893572; Mon, 8 Jun 2026 08:04:56 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=r89xWj/Kj2WKvY95K+JkAgfThnxCUMYLV9rdd7Hhit8=; b= doQMuKW5sZhezcrm1hzlXUPb9c+6lZ4a/bpDwxgO0q2rHEZnscERkPRlZyEP7eSP eqRZhmrdC1qJQbu0mugmc2QKEQI8NupCjePT1lJEzUAOLGMYyfsqSZ29PwnnHDlj YONnDqtZAmPMVMnuBerCi19mfTnyv20MNNFQdhK00qZJ6vEKOJt8J+l0QHdOIRfW BmLmjUJ5E1IwSYT1xGbv7RjeIXIabn5kQAX0rBc2p/XsihHz6OV+JESzqv9lXjMG R8TauC0GgFV7P+XDt0f+69OBf3QvCVg1Ad12xVyJlk5NtswNpRhBGW3Y8i5wdtJE HelN1hYnUUFZzmCJjWf4Iw== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4emb5st0f0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Jun 2026 08:04:56 +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 6587w6h5040442; Mon, 8 Jun 2026 08:04:55 GMT Received: from cy7pr03cu001.outbound.protection.outlook.com (mail-westcentralusazon11010044.outbound.protection.outlook.com [40.93.198.44]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4ema0dg6kn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Jun 2026 08:04:55 +0000 (GMT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=WDGhxuWcikjpx3nogLk+Fbwy5vF2ZvxfnZXC7GZYVlInOs70yTAHG4LnquB4uNb7NN45aeySsJigxBWMn/C0DoIqU6JIIYVeEd1XQjgh+7svXhHRo5KK+VpQFwyoiWkynMwBizcOndGstt9B+SNUqxeOBgcvtZ8+Y4pPt8v/YFDIzUQsLZmfvwz++wSmErf2PeSiJOGpWIAqIn0uGFXO/RVICwxLqAKdl8FOitGufl7F1FVs4itCwsJAcDAbnODEhDY2BnJVY4hOZy7sIr+9+jVbwbD427Nj7wyUcIl9Jmg0wgfI62bXHk/3gY7E+oNFEuTJGlTFztcTRMD4ebvkhA== 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=r89xWj/Kj2WKvY95K+JkAgfThnxCUMYLV9rdd7Hhit8=; b=yc1t2WMvTyq0J6Haxdz5JZDcNCDdcBTu0Q4q1kKhja4W/J9LwTe3c/6Ko5ToagzcgDfGh6oDKqn+7mOwev/Kz0Wxt90CKoavSL4NjSNxY8QV5Ayx+8eV9RfzxdtmK0xX/N0KeERZxPHmIZhPaOqvcdULeE2MNQKcLWvGn3rKXaQGLrteMDjgRZ1oLgU0LKf8EjZbBKuXcfaScn2dpu4yjHfTueEN34Eh5N+D9FLlx2GfaAKy1TVIUGn168ju0b1EEUafx6Q8xooLwIScOQG21wSG7YGuuebjQB58P6pHY0aidp02z16rr/Zj4mcTkw8z/nacLjKLzGWwqPkUoEv+CA== 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=r89xWj/Kj2WKvY95K+JkAgfThnxCUMYLV9rdd7Hhit8=; b=tAbsslJaEAe9bBaLjjxS8oEoAwLldym47L0T0TXjoIaXgbQoFJPau7QR8wtuuxKBIm6ZYU4R5NX9saNV7qhysj/EXFF87HWZ60ukTFwg1OPUofsy0E5eRqw6ETYo0r2aCdQ3Vo6vEV7BF/Dtrso1LyCejVLVACLMlHRA4No13V4= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by SA6PR10MB8133.namprd10.prod.outlook.com (2603:10b6:806:436::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.92.13; Mon, 8 Jun 2026 08:04:51 +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.0092.011; Mon, 8 Jun 2026 08:04:51 +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 v12 04/15] arm64: support WFET in smp_cond_load_relaxed_timeout() Date: Mon, 8 Jun 2026 01:04:29 -0700 Message-Id: <20260608080440.127491-5-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20260608080440.127491-1-ankur.a.arora@oracle.com> References: <20260608080440.127491-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4PR03CA0264.namprd03.prod.outlook.com (2603:10b6:303:b4::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_|SA6PR10MB8133:EE_ X-MS-Office365-Filtering-Correlation-Id: bdfaac27-67b5-4b5a-4d12-08dec5349e37 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|366016|6133799003|22082099003|18002099003|3023799007|56012099006; X-Microsoft-Antispam-Message-Info: TcjocJsrKIS3bG+9G3dBtBmhHDAWLcb4FA5oy1gJ1Gcqyb2i1zaTDlLu/3m/a1mfWYAMbAnp153omDEtlzKoUGmSBYQ7uxl3ryTOo4A4M1JrYKWfGY38kyjLYrg8H23JujQH2LLsBr703e4rpQAvO+S25DVCycTph6Y7W2+SXWxednSWtmio5A3VSC1nFGZYfN4XqyrDzJbUQsQeJwNkP+rca5P4q5V5XAtOBadfZi2w3ypRFw9Dg0jWFDqrW4UXWpSF9tnVHRhogiOjxNK2pdg8p8r091jtA17rC7P+N19+5vTBHs5UFsIb3gb5wZj+VguTkDgfnqcKtT8ZNYul1p46bY9gQE+LfLCUApnHqbTbBlcU025X/qY4ZM5lY6FlBkT+1wRDtZ58BoAsukbALn1kcgHjua8Sw3UhMMzxWBp+TBU4HU08/Ma38NTDVDu+Y2bQew7Qq/tP2jTskZiIu2xAAJZmBMUraaQ3SrapO9T/6KEebpUHxC5qgTT+oNeTB36/4tWJO+pHUaybaTs4wXjQyOhPx7HwO9x/5dqD2ISVNzjf4zNAZqY70G6KlDlbO8Ed6DXICMoFWzV3a6lRfU6Eey+X177nMwlCBJFmSaTGD3fkD7mw3mv3FZFq9mFDAFMX/yigthokq8+lVgUu1g== 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)(366016)(6133799003)(22082099003)(18002099003)(3023799007)(56012099006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?lOcjwQil+j6WXrsIsxBWR1IXpwXQhptiF7HfB1CjKxzWcGeUH5M1UQe3osm8?= =?us-ascii?Q?dcKMFavhEizNsvIufk70fMGg98q92vbERE8Zms48YZ+tlFuE9w6tZbPpWWjc?= =?us-ascii?Q?7JpLCXUWQyE2KEJTlcmXAtDihbLou7IfAI5UQs7aKqN9BSCzKhy+0uIsGDcd?= =?us-ascii?Q?OWY/5QKXy2PDP9CDP/RD2qraT8euuZjjRAJmHjfCwOoQ/cDNf9UlfswWsBF2?= =?us-ascii?Q?Q07avQYGDjqqNb75Y2x7qPe+3ZzVqOvInFkR5BxlE9p6xHM5vWorFPerqvVs?= =?us-ascii?Q?a182x68LnnBZppXF6oyDbIAE9a3A/qKHFRGpT7eikL7yQ8zH6FJLofOrgnsO?= =?us-ascii?Q?3s2GGzJ0e6gFQnvxv+tGWVfQDNMPSyT8ED6DlhvsrHIPplK07Y+mOnsyWJGE?= =?us-ascii?Q?03BZPbvFQ/I2/7QjByv45zciES2MHnbBRYnFx1YGDkK2EENw55S5FCnJuFkX?= =?us-ascii?Q?ab9EonYG2CUHE+AevZeaol/60GPUQn8ujFz8nrwXSCgUjomt2ecUzrb3Nplm?= =?us-ascii?Q?iSMK9GzjmVSCzXUeUAcZ7QaNiWDf6ODnqce2Y805wppeqhL/2uyvFPCyatES?= =?us-ascii?Q?coO0TNAlnQ0qeOe91AqPONj2BduQSJ+RPchkC4gdhmc7qxFFwvKvrL/1LReQ?= =?us-ascii?Q?9kKbkRer4mHTUiQnKZXHnNWaYjANgT+t07pGTM3Xt/SauXG3g8uTao9wtwN3?= =?us-ascii?Q?eM2ChvgNRFyt+ks3FELrdliqIVwDx3oz4r6GFI/EsUs19NlZw3GXJpJjvPv1?= =?us-ascii?Q?935Ub4+9hDcpBCjcS7pvsW3aRKEAHgDqlv8nw+/QFYJ+zUR/3/9S5Y2Uvz6G?= =?us-ascii?Q?Rc/SMuBaH/zUO5abMEnLe2ikYdXM06T/uXWsO2gWYdNrLoBb83dvh5JQ/I1y?= =?us-ascii?Q?56icu/DFUaRff6USv5qfU7uSxda9ngTiiTLkuOSK/Jihc6RESxhEFQmL0O5T?= =?us-ascii?Q?eHGNJxwn+R6Spch71UV1BBQqwRSjMrGugNAIe1OK8ha2f6lILMiYgnm85JEv?= =?us-ascii?Q?3dpvdbkXuaWmfNDlByAIY8sWSeGLi4nT9IoyzSLQF11FZpoEk3Na2iaMbnL7?= =?us-ascii?Q?+uSMVpp5Xl1AGPkdEJMLqOLYjWaRo7CNWMas7xDTiuaw7kgs/w+2Z3vSrw6Z?= =?us-ascii?Q?q/mrbCM63ODwl8R8datTuzNsN7ObgUKldE21b2yQpeXH51YLue4Wmaha2Ulk?= =?us-ascii?Q?YIO9l4mJV9pNxlXtpxfxEwoo66CdiR+vjO5+6gJq9mgxlaZUJ/XBanC7nPbp?= =?us-ascii?Q?Q2HHbnm9QPC7SB/Bi81Wos/RtJob0XCkwGQlxgEyb6PZKdunUCpkuZ4JaQ+g?= =?us-ascii?Q?51ivKJr44/HvO30/qwOeQuME3zbhnhyITHh7D1uu4nkQ/Dkkw6fA3odrWqFd?= =?us-ascii?Q?uIfBJw6o6qNoO6SA/FXnPbDZ9UQs0pWs3ty4ikaNbrRtTzSl8PNczb8VsuRK?= =?us-ascii?Q?M6WCozDKbNrGWvqj4G5QbmUf82oRpc4j8+AbNTGFGNi7f8lA0SMA2pVu6euA?= =?us-ascii?Q?jsPkkOY0t0aBduU3UDY1TdXiQisjOyw+8gq90X46poDbytjlCX4NRkw7DfiG?= =?us-ascii?Q?k535jk8f3RB+CtvEPmzW2ZBHcOzKGKyI53PDXX5ixZcngIK85BZhjLSu7JkN?= =?us-ascii?Q?Jg5gJh9I7pe9mcQFJbu7/Aor9DbhB6/QP66JUCIVPxJX1uUeQ5x2lAjeKw1V?= =?us-ascii?Q?ydGfXPd7Vb0lvhD7i/N6JOJEi22SEVxk4b5s2hB+oyQlB6UYjC39IlyVanDS?= =?us-ascii?Q?49ijgobMFw=3D=3D?= X-Exchange-RoutingPolicyChecked: KZ4IdRtrbJ5ydhNC7kA+OqnQ9pmcTAiIk32pl57vBnstalh5xRtT/cRopNVtBKlzu1PpAyqLXOWjl7ebsRSOuFFFicEzgaIpHcvIL1LGbECd1qGoQLQTy0UtZvTJTLEU4Cbf2MaE0XCFoo/gb2iz0tNyQKwCNx7Pwdpmyh8S2NZVWDavyrIlFnbd5TQyw6gtVwp/5ouWa30zAASQxeLcM82LoqZa56LccgGb1lcxc057RRpw6lm3eQzgefMvowTuY+Thnr8U4RXdbuGSL+D3E2Z9KkH4m/dATkTUNPzG0l0dLCNkyH23sdKAWnBvQbHGv307EqfT8peynfiqCGAl5A== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 0DqDE0OBb6C7Awgc9oR3IwKsNs5x9kdNPDMaSl8b4cqB6LUdlNrH4vfqfj3UNvQbaS+YWbTBUd5Pn83RkqKM78n1cdyjQWU1puGmxuHO+TaGlePeX1hih/D+Uomfyq20huRPToxHhFU8S0UxlOSFyx401Ih06iY3oJtvW8myX2veogmDe9AdJ4T2yNfxICvtM6TrR2cpUM1FhMRnS4XHt7rLGPGA18ApSMSEiQFqrvqgzjPOyH7EaWEZMWrsIDK5tdFgxiW5Ab4OYQ1U1zZ0QLfTSh/Gh3k7FAt5uzRQPP90oyaW9LBi3nHM12RfXkmRnB6HSEljWXsVELvSz4+FEk7PPkf4nnXC/XkQtjecHR9JEEjFr4fGM1doeojnGO6+EJqnoBd+ImHnbiD8486CXLbbpH5g43MDYrJkX220TGRSzqZDcVVVZesZMRN+NvyVyONvwKHYh1ASwcEKtsg8NebovKMaUc+vUMkJgfq/90lHaogcFQQ10PH/iVMtcZ0EzMrbQJsiVTo1IOxksPmet2O1S7PlBCFnpOrsHKX3RPCYKDwXaYsk95hfE0OgpKRs05yvDGnokJJSzLgdhJG3vHNX9/xfvUEB4FrZJqNGgA0= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: bdfaac27-67b5-4b5a-4d12-08dec5349e37 X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jun 2026 08:04:51.7513 (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: lIWn6T4fm3PxWrTmhj7Sm2MG+7q4Z7ZaDgKqKdcgDkD+j46jSQ11eU+YbGJG9EqAkyiKxL1MPvbhC1nEsjsDMtZqu55axPvMO8RforLvkN8= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA6PR10MB8133 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-08_02,2026-06-05_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 spamscore=0 malwarescore=0 bulkscore=0 mlxlogscore=999 suspectscore=0 mlxscore=0 lowpriorityscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2605130000 definitions=main-2606080073 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjA4MDA3NCBTYWx0ZWRfX9gtDNsTPWDw1 npxJZfr2q8Li0HIzbkTOKW1xC/g4yJaAdra/mxI+1jzpispAYc2wy1xhVe+uSc2D6TbVDMuyL4u 8ziQAJWoDoDGoAzGVZaNIXVYPShkXhQKTfGnYj8vNNMfCAF8YyLQqNGW0HzK4fGGCIZRim53Z/i DGHyIwrvWJ6lpNlX1d81x9DVrlunzbYSJMN/z12HTpCq+j2tfcQ8s2Upd1wQ3tfQj8t860TDpeM fh56xLpP6S95jd5ucyckIeLKKVwzwgBeTDUoQ3FHxUXi1T61qpkv7tV4pLPoKNQnpYtl5xyYAvz w3YGWp0Rzbz7yXhySO5jnBjJo/4lCUVToeguRgBZiFj/ggL9eAyKORuBkkNrA+a/7mL7nkZ7p53 wKrK0oEuy4Ed3oY3LGpFV91uGDbJroA/j/ZQCotmacF7S6C4GhSOZpGcsVDCZ0hwOjQRPlxPEbY t8+eJ69A94N2wIGk/bw== X-Authority-Analysis: v=2.4 cv=XeC5Co55 c=1 sm=1 tr=0 ts=6a2677a8 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=FelO9ux0wxsA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=jiCTI4zE5U7BLdzWsZGv:22 a=3I1J8UUJPc9JN9BFgKH3:22 a=c92rfblmAAAA:8 a=yPCof4ZbAAAA:8 a=7CQSdrXTAAAA:8 a=VwQbUJbxAAAA:8 a=JfrnYn6hAAAA:8 a=h2j_Ys_cKJEXrGAlRtsA:9 a=GvGzcOZaWPEFPQC_NcjD:22 a=a-qgeE7W1pNrGK8U0ZQC:22 a=1CNFftbPRP8L7MoqJWF3:22 X-Proofpoint-ORIG-GUID: zQwpY_6cnv9EMml1kvG-VTJkaFdGZRPu X-Proofpoint-GUID: zQwpY_6cnv9EMml1kvG-VTJkaFdGZRPu 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 --- Notes: Does not address sashiko [1] comments on: - timeout overshoot: intentional, not meant to be a precise interface. - range edge cases: as mentioned before, better addressed in code review. - loadable kernel modules using this will fail to build: niche interface, not worth fixing unless necessary. [1] https://sashiko.dev/#/patchset/20260408122538.3610871-1-ankur.a.arora%4= 0oracle.com --- 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 6190e178db51..fbd71cd4ef4e 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 the 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. * * Since this period is reasonably long, choose SMP_TIMEOUT_POLL_COUNT * to be 1, so smp_cond_load_{relaxed,acquire}_timeout() does a @@ -234,7 +234,9 @@ extern bool arch_timer_evtstrm_available(void); #define SMP_TIMEOUT_POLL_COUNT 1 =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..9e4cdc9e41d1 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.31.1 From nobody Thu Jun 11 12:16:26 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 9CFE139B951; Mon, 8 Jun 2026 08:05:41 +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=1780905944; cv=fail; b=o9L2ZdqvRPIHz5xHVIy+CWgoOwxiwbok0zrPvPwb4I/ZA9I1Q61ojr5oKbjK/CJf3P+nptq+phYuhKYQpOhXuOSvUCc8+X0vBoG70C0aaBmBeNMTFhCFemTpyAb/aSpfBXMazsJEGXoxHgIAG8/TSvvL4UM1gmS5ERydHcXzMPI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780905944; c=relaxed/simple; bh=6XIgY7TaBRHsz4S4u+4vB8tExQ4r4RVz8iZ9or24fL8=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=h7JpC7zxp9ROZ4G/UiFfMFL3MCHtBl9EK8mlVUIgLL7bIxoVGToqcqY0dmlOKB/AAxz2+hAvR3AzK5mI8jrsNhHi/rAU6U88YMhYNwEz4qz2r22qfLiVDol8is5fS0mGpRhnNO1f2pdsUUqwjXtEQVUlYWK3jFhvMxJe2+517c8= 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=Ma4KikEY; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=dS3GqiWR; 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="Ma4KikEY"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="dS3GqiWR" Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65809f1a3675269; Mon, 8 Jun 2026 08:04:57 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=JLMdsv7FCPI/iT8Tn5ckV61PIBlZzJSnbFNVrSOCfGI=; b= Ma4KikEY5/gluQVi76wTlL5R2NHA7PxCULSEtzuoTujOdfxL0jmvtK5IezTME/f1 Dd8fqCjI9mJZmovYLoLZ5HN2vPp3X/17Q4Pe5RuI0CdMH+wwC6hl5SpXC0E8mAdV L5zOr9bbXtlJpG6IybR0o5sTbuuTbWb9FEVCgEuVsNz23eogOfkx7NyBHFaiFsJY eBXNSaY0m6EN8ciPqM3BY39+8agyOd0VXRg52xLelr2qDtTQeGAxl0282kako7qj AKe+KSLI1HFq8ouELNWc5E6l3rvxUaM3LBS49xO96kAZT1BRBx19fu3JzCMLywCP HsAv6+VmxPYhsdxC37pnEQ== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4em9yba1c9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Jun 2026 08:04:57 +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 6587w6h6040442; Mon, 8 Jun 2026 08:04:56 GMT Received: from cy7pr03cu001.outbound.protection.outlook.com (mail-westcentralusazon11010044.outbound.protection.outlook.com [40.93.198.44]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4ema0dg6kn-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Jun 2026 08:04:56 +0000 (GMT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=EQ/izDrRsSgRhuYgmcNHyC7nLvgWITkCdx4XvzU32bTVCpy64XG0YbKydCzflmlqMg3jCJdryj0clByjMiwFpDFuXZ3Yvmq6NFiKiOEGg8pSWo2++SjJAIo3v4vEH0JpkpItDmD0+KWgpZB326CJd+PVgEEySCDwOmpC08Mu9w6VJnertGpOw3hZ7+qOgBgMB0y3t+SY/c9RlI7AyuK3z0KUUaIi2Y4e52BXCaqpSPlUNgJRNyS+Dp5u5pxcHTu6k0sYKFm/lQJRutkA02pN0qmjqWVbUfZjM/kfFvrGOXeiJp7mPbF2SP3rBwHMyPz6EVrVqz/+ThaGii55w3KMWg== 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=JLMdsv7FCPI/iT8Tn5ckV61PIBlZzJSnbFNVrSOCfGI=; b=gtxhs65MoHtxXDgATI/6oHmAczPxSYxokt3/ArtYhK2qlzxjq7IN3RqWK3P+suPZ68jEsVONCRh9NpgRPChxS+F+CXYfmXDyhD22tQGngHP8TLy+FHi5ivC7C9qdpOw08fgsw2s/rxaMBvPLYy7oPVS6nmDlToZoU5LNvy00fKooIWoQZ1TP2wuFKESquthWcEpBL9E8CHEVYR7dm6THsXbGPtrdJ3aU1DnbBRMXfsL8qnYvO4s8OAX6jgovgt8gVlAWzS8rQoLP/wWZMvKLdXNdNMhIqWw/94LuWTiJSfseI92xw95v4jIzzR0RgkaFzBJEJSSQBA0gkqqiP3Ebgw== 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=JLMdsv7FCPI/iT8Tn5ckV61PIBlZzJSnbFNVrSOCfGI=; b=dS3GqiWRAWWuVPBJWbTCqX7daxluQUrsUk3Msjn4NmMFlt0RuAPMxo5a82OJ6DqcCCPgJGuSHzEpzVG+jF6liFB8+vZI8SqaUzV5fpZWP9rtfaCgoPEkL1/9SHri2u2DboKV38Pmok6qYbHtOxs2TnVIXy2HAxl3BLOXjniZ1Ew= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by SA6PR10MB8133.namprd10.prod.outlook.com (2603:10b6:806:436::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.92.13; Mon, 8 Jun 2026 08:04:53 +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.0092.011; Mon, 8 Jun 2026 08:04:53 +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 v12 05/15] arm64: rqspinlock: Remove private copy of smp_cond_load_acquire_timewait() Date: Mon, 8 Jun 2026 01:04:30 -0700 Message-Id: <20260608080440.127491-6-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20260608080440.127491-1-ankur.a.arora@oracle.com> References: <20260608080440.127491-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4PR03CA0242.namprd03.prod.outlook.com (2603:10b6:303:b4::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_|SA6PR10MB8133:EE_ X-MS-Office365-Filtering-Correlation-Id: 9b116b63-01f3-49a4-40a8-08dec5349ef3 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|366016|22082099003|18002099003|56012099006; X-Microsoft-Antispam-Message-Info: cJ2PXM9fZyDSHGttHpRCRxp/opCaQ7Tb0NTkoZz6gEfzT7PNwy2j8Bs3h0DA9TjxD76L0vdah6faoiwPA+CHIzymFkBvctMZCv9XQvPDZoUuAo9XqcJGXCNYzJtQGGuTnE/5WQHMAynSix6Hyeek81xHCrLkzqy28CYzsqkk3t2+ylfbM+2FOuJpNyhp6k3iJiTVMacmpcGXmyDhKPhxbswMt/cPNSmH52V4nazCSyovTrcrpjjV8MYl/FCPsAiWkLNEIB/BQO9CbveQDXMEXnJt9Qwgxl7zLEw1zafzPsm31lzdLda7OmbGEHnVXMfJLc0RkZfmiAKu0TOyL8XC/tI8z9DlCl7KTie7CRvuYLMDPK2HqqpUz99TN0uPqLBPYijoJruqLV7KTmJZB5lC2v5oY8pFs7qmNMy9270bFqMGxkM0btt5ZUO6QIjmGhu8hGF3kbcsZN2is1HosLWDjrVWaCpP2+sznIYA2X+UCUSQTsKbh97k9itksO8l1oJ+lrCNLNS9FC52x3W9NU5Z7bBjwesuIwLBIYvkHO7/trOkZ76k2M9JV9M1Funz9DSwrf22NUSridWcDbvlO3fCrZJHn0PYAp7u71HCjZ3nmlOKh9QdX3lkq4GYV5iZJRoPuLCZMiEQKGhQ/dUIzqxX/V0duJDTFkUJqqffHxD4SEvCJ51NhDhB9X6SJtziSm0Q 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)(366016)(22082099003)(18002099003)(56012099006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?L85gM6P/hPLJ8X1/zDYLxGGyFXx/cqkemqNpKRHElVnQ9GlijdVJ8P5aoQ3A?= =?us-ascii?Q?jdvTBvb0ecs5YDKLv4pqC64oC5lWADXt7y1wxfJ6+al3yeYYgULy9cd/FrSe?= =?us-ascii?Q?mG2Y8eBl5V/jWM6pVmByql1L/xnxHbmvda24T4sLNJSuatRiKX4/DuaoZwEb?= =?us-ascii?Q?NJ/julXUHAl7AkntCRCxAENQ8AX/rcAyjzN808vTfQgrCTqotuniVC9J35j+?= =?us-ascii?Q?LyRBsXaC1NFSXmbwo2g8/wFRkD6Qr2wYvAMpPM7Vn4DzQErNi3i5NDrKiGQH?= =?us-ascii?Q?GwCAZ9rdoYHqw/Suhu5iex6b8JJuNhIhtpZjsif5CTjPbtQo/UX55MRPOQxw?= =?us-ascii?Q?dCSvSngv+YPR0CawONKA/RHnLAmtKqsPHbDZpvDOYUMDbDfvQsDWrYB2hWGU?= =?us-ascii?Q?d9lbc0y9Z6vfmYBiVuobzQDzLaP3Lu/7PV8tHVg5vsH97COfVn1tL0cN4iJH?= =?us-ascii?Q?loqs5BsVbfB75F8BxKqobpxxwugj9MILV4dKrri/yMQPPPlYzjSMXhdC2bW1?= =?us-ascii?Q?eW29sWChfT34YOipQDGYUxDUTRQlXWwGI9Jr+6FkJmFX0yhB+Li9tCm97Cbj?= =?us-ascii?Q?lnnFAJhcyPWUjVij+SaUEKEuOr7ZhHo6AlMur2FLmurqttfevOG6UQwg4u3P?= =?us-ascii?Q?UxYhbv6rqaMDfp5iJqsrZspmJRKoWKY2TUC9o3fOTJHrz1Ff/EPh+NmAPAbf?= =?us-ascii?Q?yoBLjV0J1HF7hPCD/pAutqpNzKwqOpP2v7QZY5QaBbWkgv6bkqHKFoMYeBsk?= =?us-ascii?Q?9Ct6HMx6t3x1ukTND90ixZbCWW6BMFW80ClUqVQWaKAqgLepQc1Bpa2lqW14?= =?us-ascii?Q?YwLGZRcrHh3o1DukA0HUN09E2BtbAum+5WL5otWcY6kEIaiXW1l7uFEw+B9w?= =?us-ascii?Q?QO/A7AducIqH8c7V1OpCCsjOATYEzG7EnZh5JSKASAQfNLmL0wO+Sob43Djt?= =?us-ascii?Q?od/cEIInrI7i0LdckLNG93JgJK1rO/Pa30ZexLHa0sG7qJjZ4ZBlACfYVqcE?= =?us-ascii?Q?KJNVSDo+jJ/+Y8OkClzSllbrr+XgRU08KZjL7x8vBgQXbzMy3+UJ9tFpuCAe?= =?us-ascii?Q?DK61jL6GPxZnc8QZRywFMtY3utvBk2S03qkFQuJXAxvGD12YDW5t+c56l25Z?= =?us-ascii?Q?vZmskGlIMidSmZRLvn0pwiIZTg677Dc+lCDQj75wm/chs+DV9WiGzjZI5FID?= =?us-ascii?Q?LDM/DJQsbaVRO8x1VAFP87CFFsTtDeKAAghe7ZIHaF5WNtw4LMVVnIAqXxKB?= =?us-ascii?Q?3YbY6HJkaPPJQt305Z91WkDOalGFjDL6hzZXDvMD8z5KgVKXfHR8v96mHEuS?= =?us-ascii?Q?4Bo3TPFPWMkNWi3K7wjaDUH6HnW7vuFpNv0UeOYBkE3eJkMSg8+eiJ0ImX60?= =?us-ascii?Q?cu9hse4NIGLIGVH0mVWkq1nIk5V7pKr8kQ3qgX3aweCVJlq+k2uA3f6Ad0Ss?= =?us-ascii?Q?l1WxNULKLH56BxYXldq0QNwfY7tdTNp5+WMd51v0+sXVxxDwAhm1+zed8O/q?= =?us-ascii?Q?xFhXrNOQYUtqwXC+qdAh6LfprTbkVWXAz0umwZl5KbKIFZHGubdO8kBCBrZL?= =?us-ascii?Q?ldXaTjiaOONvmkZRg41KZc6Rzqr6QC8ukJbKCWOqAaNJEAgI4DTq0Vg6OMsH?= =?us-ascii?Q?nzokmlPQcAMMJyc9WPmFDgbKln7RkiqvGKvNxU6P8B6CGoBuxo8aB00/P6B+?= =?us-ascii?Q?fzoc28I1RRJqO3H542fYqqbCP+q4g6yZJqPvZXhBQ1FBKDrCoAPpvsXdqSWM?= =?us-ascii?Q?Q+L0IbOkLg=3D=3D?= X-Exchange-RoutingPolicyChecked: cz+5EE4LTdkCDsIRtSAch4XdYeW5GZ47zkCQoSovmNQVog7UVzUH8LY9rkYWd642RgHZdYqABZbhiE+9ctUjQkSQ6y4DLplX2TrsaeNExneP7CBTqwDg8gpnRuyy4wLi+lqbHIna8CEHyZ6CiSw0K/WOxllVmPaRyVD0W3bP52xUhIBOuavBmM8cahBYiodwSl5zA5rhQiXzTTbA8FDlKL7sAQE63zwmf8tilk+0qo12LK3HdyP9oj+7eXqUV0YItLm9AFkSYDqv+vAtIUYuQtB4r0LToy6mN02asn1ov/ToJtvhKHwkxd0M+AFY8pSJfKcuxdvwkfA3Acq/MBxcEw== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 2Xfa9yYyI/DR9aDlb7kaDRcAGo+d1wxprAWaYqGwpU0Y0IV9PVnTcAo/p0e7oxoxK1znvhIGEYx/qkTODztCgrmZB5nMNrSJAAH4DQGqn6WTVdOeiSXMFxj9cXuSaVtyiVHIJACixX6O5CQLfDexdZ0sohYplI5V8x31qXhvp1aNqbOPZ04CnqvJ8PdqDmLSdSKvgWgPMCm1qyDJTuRuU9fpFGT2q+gMAWnjG2y274Of7Vev+wI9ByuMJGv7ckQ9O7/0rhazjuSYH1sEicH33CVrS3ZtWYLRxwCOx2+utB8jBep+7EuCS2cJbh3UVIL1Pix8UXoUrXWbcIiVu7SJxCXUgV+J+Q5bacVKlw82figuDjqjAqBE5VCWOtk5UcNMu4iQ7TS99GCnJkgy4GylC6E/oUj2zKXjqCx/GAmOchkOnZ5XmIiXXDNCMM/d4bYua6RRMOtUktXrGMj0Vo75CyZlswJd+wA4LdZSuK7TO/Tc94insq17sFFKLZdWgGHq8Y/81BmGFyAO93NuZo39rhP7/C96dLi5XMMiUwg5MEOrbIuiqkYvbHKiEi763RrhOQCaA6pljmpIWKbfU+VCQGKY244iv7jLzFhBkLvllKY= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9b116b63-01f3-49a4-40a8-08dec5349ef3 X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jun 2026 08:04:53.0177 (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: Y7iXJ2AA0qnDislHSM8k5BpRWKxBW3OxFZwOcZINs4HMZwaP4m0IfuVx2gOtoO7WQFM8mlN9dhJSjilv2SFo5CcP8yjM5yj4ABRVfHqQkjg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA6PR10MB8133 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-08_02,2026-06-05_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 spamscore=0 malwarescore=0 bulkscore=0 mlxlogscore=999 suspectscore=0 mlxscore=0 lowpriorityscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2605130000 definitions=main-2606080073 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjA4MDA3NCBTYWx0ZWRfXzzIgzWZgLOsz 1PJwQz/JF7hjsS1S/ANPRsOZRtifoc8o6bIAkTbvpitKJN4c9tp1fan1fYZhsScGK48t06Up7Cr RZAVEODhIUcUDueTrS3+wvr4rj0lnDzC1zK1lraOQkEM+JDX1Wr7OQhh+ILHpJVFjRlRLGFbJA5 JuqAIaG++y0lT38iMsVh0SYxS01fOw+8DLhSuixjDLpZ0f7Gp0LoPIHRGOYsDXwQ86NDwGwJ/XH PYPADpVnix02ywPnslV2s6qCD2EIi8Eum/e48vXkt0VtznycLgMelkXCIT7plsnSjH426q09tD0 r/UhquAOTWh1bXYA2LYG4Yw5gx2dMKK6P/px1mXE321tI7J2tNLQDFebcXxeYqmQisbwnSynIn3 2GEn6h10B9xPa+OCu4Rf/JNG6GsDynlMimykHqet+XF14sGmTngFEBl9q2N++2qsEwijpS2lNdx Nw0YB8uYRyQCSSI+ggA== X-Authority-Analysis: v=2.4 cv=IYK3n2qa c=1 sm=1 tr=0 ts=6a2677a9 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=FelO9ux0wxsA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=jiCTI4zE5U7BLdzWsZGv:22 a=x4eqshVgHu-cdnggieHk:22 a=VwQbUJbxAAAA:8 a=yPCof4ZbAAAA:8 a=pGLkceISAAAA:8 a=7CQSdrXTAAAA:8 a=vggBfdFIAAAA:8 a=pMBjG9WjWPNDpSeUJj0A:9 a=a-qgeE7W1pNrGK8U0ZQC:22 X-Proofpoint-GUID: UxF9dRgKbMyPHdWV_NcGs3BrVbshsUvu X-Proofpoint-ORIG-GUID: UxF9dRgKbMyPHdWV_NcGs3BrVbshsUvu 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 Signed-off-by: Ankur Arora --- Notes: Sashiko mentions that this introduces a bisection hole: this has been discussed in prior versions and doing it this way seems the cleanest. --- 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.31.1 From nobody Thu Jun 11 12:16:26 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 B0C3739EF2B; Mon, 8 Jun 2026 08:05:26 +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=1780905929; cv=fail; b=a6BY4mDWaDNO5m8TezyzlB5IO27iCypOWR8oUZg7h4JxJcEckooK90Ymm4Zgr+Ni4Ien2BMjWIXYH3QYP5qd7Q0CXfqP9n5dKv7qLBBRx06MXTXTGJ0xVzM0yxMRii0ZDTBzhVzpBJyqgwfze5yLzZ9bLFmipizSQ9UO2Hv6sag= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780905929; c=relaxed/simple; bh=O+wNl06gsVkIlkv/n7iX+JO0NqSOmZLLixDGwaow40E=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=q45866h8mq6au7lXYLfH/NA7c3G16+B+lJ6v+ZPnmug8k+LDgOPfACxx753gMPVkkmeyb6/PlY+7JtAHh/WREfBvc0ZhhjkcTgqqWvvpZlZUpqAn2JXHtA5C9NWRE4ND18lv4FnbAJYaryOb2BZb45EQD5gVOqn2BHH3sdHzOHM= 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=LJsgOLGQ; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=tRprvFfN; 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="LJsgOLGQ"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="tRprvFfN" 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 657NhEFP3923557; Mon, 8 Jun 2026 08:05:01 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=TbOIip8+SAoTVVtZN5aNRZqLtnrEvE/UsdvP9I12MeM=; b= LJsgOLGQK3pbUg21VpAntRPVyw1+q0Jw7U6JlCAovp6Z4hRUiaDWb3Ifw1qfQawi iGOhaVBqVCd5Bd2XrVcj8Zg72Fnel/XcDVGjMak9Si7WWemMJBE/7Z7r1x5StO0d JSu9W5/96L90gWpFJzUXLa95T6aUs0xiA6gMIWre/h8nll1YcRhJTor/nzZS4nkx gTakvE3bYXLeIqLi9gYizv0lcYQykDegaONxpvSto9qQXsX3019FSkFzCxibQeHu xLgciFhBH4vr93ju61sy1yDH89Ap05jT1HuIRA6HlWqk58pjn6ipDPVEQiTEzKbE NltOn4UYDDr+zR4plI6UYA== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4emb5st0f5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Jun 2026 08:05:01 +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 6587wT0G020263; Mon, 8 Jun 2026 08:05:00 GMT Received: from cy7pr03cu001.outbound.protection.outlook.com (mail-westcentralusazon11010054.outbound.protection.outlook.com [40.93.198.54]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4ema0ngqvp-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Jun 2026 08:05:00 +0000 (GMT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=EDEBL9MT1CZ0alRcDAULHf3PpDA+jzJ9aAQHK5wsHaIF7b/QMoqOWdJ49qGv8ZAr6lm/9iHgREeBFFauuYjqHVbfnj7fnbvquFJBwFryj2o6ISzjaThHzV09Hw0mXcswrayuVsmu2T34NzCIEGWwgVISXILbg55wZHenWiTnU5lOMqo8yP6XdZtVrxrqAQbtW6hda1uInhgLsG3P2eG/lNQvKWEvRvMlKxrzb9nTHLeSjk4gmASWFAvQw+qhJXGuZ3IWrqtDlfkaVWD1QIETUe01oI9jMS0UwppROL438TjSi2TjVnrrVVvN+oZaz/uhyBGxeZOn9Tqigiionw9fgg== 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=TbOIip8+SAoTVVtZN5aNRZqLtnrEvE/UsdvP9I12MeM=; b=S2k+At6JHk72YtrQFaTw0PeF/Z9OlQRy0+njJrUW7/JdiHib8ikqEI79sbipVVWZSi2NhZviGNvCDn3YcfninZr5Cg550o20gnJwzJrPzc7mphA37tVC9KKwcW/Uh1notBGIEdVHSDfsEqzmvVdMxo4bk8zER+BLhaCdRqqt6F6gQZ6Qf7L9F90lgnmMnSAmjlKNxBvp8JbuprN+PwJEQ5mgkFZsCCM5y7blCI+9jTq4mxIhxmbdPLp5XLZrfjjl8oW0t+ypn+pnAEOxrwx8ZeyYncjE/hkk9Y6LfAOh86ctKSWwXqMh7KmdXI5Fsi5wDbZ2QVAWYIUY5MsMFtVWCg== 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=TbOIip8+SAoTVVtZN5aNRZqLtnrEvE/UsdvP9I12MeM=; b=tRprvFfNAguzW2FzQgzkdZPFFLXGOZkHY4v94DEkXQxuRKAGma/QdqOz7XSL/4TV4jUu4ijALcfJZ4rRxxVn+imog51XsyFrQexjGe+qWku0R1TqAMOyG94UfX55Eg7rnzDnr8qWqQNpis1eAfi0Fuck981lLJmTRNyl9a/7GGQ= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by SA6PR10MB8133.namprd10.prod.outlook.com (2603:10b6:806:436::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.92.13; Mon, 8 Jun 2026 08:04:57 +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.0092.011; Mon, 8 Jun 2026 08:04:57 +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 v12 06/15] asm-generic: barrier: Add smp_cond_load_acquire_timeout() Date: Mon, 8 Jun 2026 01:04:31 -0700 Message-Id: <20260608080440.127491-7-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20260608080440.127491-1-ankur.a.arora@oracle.com> References: <20260608080440.127491-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4PR03CA0164.namprd03.prod.outlook.com (2603:10b6:303:8d::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_|SA6PR10MB8133:EE_ X-MS-Office365-Filtering-Correlation-Id: 73bbeb3c-8f28-4436-ef56-08dec534a183 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|366016|22082099003|18002099003|3023799007|56012099006; X-Microsoft-Antispam-Message-Info: NbV4WzZWQhW4mvcKtUiPC6oH3BfXYM2ihJAWGsNO18MfjiYYclLyOaDUX+yNb53+OKxi3+2zt852ZOTlDczTf4VTpB6LwFqkxmdl7bCBzKwRuXkXCBaKEJBUvCzswIwtbGu4cBIkvfj9eNu/OAfqWfRGdBNe9qC9FwtWoEm9tt27BGTbZvXeBwn40tsbhg9vcNmh1rxqxay3RwlLdQOE9ULSXAaoM0QUZ798TDH7U2FGfJdq89p/PjGSmxlQ/5spX0GhxyOQMfUydd3/5jEE51AfYmsJQjMCzMiKyUJj9BQzPO4lfL9iHupuACyW+u++OEuXKQmwg191PpS1JHgGqbunbrVOtz10UFOwY6RWnx5uBDARX+oDtANKKrcbE8mIS/H7G/6kUWKrhBqmbXYL3RmPvTBFyxfHj3jgcf1Xl9mA6C/U+U+bW/IaPDAlfubM5ITiY6lQUNqpMGJEY7dQ+DPnoM/GcdA8gmgd/N+PTmfs4WfN1wmCQ4Kv7kcaFmalxk4pEIdhStiN4GP3xxAIBcg9J6bBeTbvVg09qdyOn777+FQ0vBmOG2GsPGJBilc2R7BJUNkZgLd7Np3l14CctF7/JmYIgjdVZmIGblunYWxQ2TS9dvsoxfZezo0JDpi2DNKbMkq2FJnVfgrNVAHbgA== 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)(366016)(22082099003)(18002099003)(3023799007)(56012099006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?VDxY1i8A/Dyqhc66uvEui1DSZznneVaM5CQBST+Wd7yM0b8Dfecfy3pOWjYn?= =?us-ascii?Q?f8Zb8vwRi1JGk5Eg3C3X39Yw1wvglB0rp5/98G+zy3gzthtBbkWiMThblTsD?= =?us-ascii?Q?ZPcKodJ5+55gEv0geI0WogagBCiZELmePKNvsA+AokZ9EOjiJsBdRnZWU97E?= =?us-ascii?Q?ztHTeFa7f4srSTrdKB+rheY7Zzx9W7QLnlO6bVq6gJ7RLCRFQawUcCgIO8D+?= =?us-ascii?Q?lfxqtePjRAlDco5+2ZAHHVwQrMk2ExMK4rXP3/xp9f/JsvV8pI65lpswATNz?= =?us-ascii?Q?j1QwskgEtyDKixpG1dQixlOPLLK7AmzuqwAZJz8DH6AMTajgz9kEPh0hEEOu?= =?us-ascii?Q?oqoLKneDa10kJnFKx3fJkruj9+XaGXSGwDvDPxbeJZ5LZ40wEdTirXQwIV5s?= =?us-ascii?Q?MwTxTLr4OHWPxN917Jx0v8WyA/XS0Zc+usYebL37EhOtjqbT8xZqRaeZlSQV?= =?us-ascii?Q?8mbKVVMYijhspBhA1Ovj9O1vGZfTDgDxFRKQCaCQazLhzlDK+sWks1JURdYg?= =?us-ascii?Q?FbGLx/on6Alp9m8oXpLAEGjLJ0paPX4ohaAKoDWLeHmKyVJJC0sTHiR054gr?= =?us-ascii?Q?WXrdPSpNQGWZ0uGcfUFF1Gf8cozznlfoss8PGwmJhXuJZQyOABvUwlUddmA2?= =?us-ascii?Q?s8k9sMfV5yyHXAzqanvDMN7r1eaCFwG62L2HlEt40KKPfu9ZBsHGH5ZBWUOH?= =?us-ascii?Q?IXmCAhwaoXy1HC0dqS7GSKy5NN1OoV9567YoM48WORnW4uv8hAy7TSvuNQw8?= =?us-ascii?Q?OraTBJUUyvL8vqgmD9nLrPGC3KeDPW595m3A34JQxfejeP3npz/2kbcWzwAa?= =?us-ascii?Q?L+SOnkx9XM8lzxRut9lzivc/E/pfzdyUMoPIN3LPFSpSe/hMmmYdbmWtLTnz?= =?us-ascii?Q?CRDrNdsT0Viw8sGKEqw1jFxge9wbVdex/vEJyIGJNZ4aZ+CLh+8/6eD7NNGm?= =?us-ascii?Q?JCJRZTPljOxOLuiB+9uFMh1TIdlRemJg2A27rApOq2VA26GGxionGx9hqDDV?= =?us-ascii?Q?Jk2QoqZIyA65sQmpMSTUaQTGOsEZkgQZzDQoeKC/eRmHhb0p5VeuCxpEFpWa?= =?us-ascii?Q?xYxUYxoRtNja1zQ9ztX+aYQouFyzPXmaAyEVpugPE4P06IYlSBQzCKhkCdkO?= =?us-ascii?Q?UBTNMYxWDCFf6MdQ3NGqLrs5f3g6QRMRMKoZN6rVacViCwTdLUJ2Uj3sKVCY?= =?us-ascii?Q?6Y0VvbYNSZvyqAcWcPqR1kRFkwSvoBEc36jN+g+sc7BPtuAG4KNU1FcXdyID?= =?us-ascii?Q?QhqHG6aynA/zPtrXwRm7kHGQsb467pJPGhbB3kFZJiqwZQD+NEt2+qQ0r023?= =?us-ascii?Q?C5CH7bIuhlVfQCm79FqpELzJHHV3u5Y8ygtoYAKSvisHhnbJLwnksa78Zu3i?= =?us-ascii?Q?1LUkk6nr6tQV8FJS1oYcWSvGZ2lE6ZiG6DC7iQXnmvDI90GZnplBfqoAQghh?= =?us-ascii?Q?bBSFh91XSrbTwjUpwlMUdsrNWtTty5NQ6wcV/v6bX0rF3R/CzIp8Nb4nqzA8?= =?us-ascii?Q?rUDHOe+/b0ePoHlIfp4a97b+Ho5i4rI2N+DYNXst2yYR1zSolL1qXVK/JIO2?= =?us-ascii?Q?SiYJBoK22BqRBGOxV8KeFJCp+ag0RB+Ki7jUssEwypMGcabITXZFG/qhtUIV?= =?us-ascii?Q?zRfwd74vPXVAqBgfp+RYBLfiypeYjY9dTixL0Em0IniFQurr/zWQBDB4hLHU?= =?us-ascii?Q?XXfMGDTrBgiqzl+vvAmBA6DOLHBPvjJfhsuB4EBgpUIVJ5tBHpWDRYjo56IH?= =?us-ascii?Q?C/WfngmF7A=3D=3D?= X-Exchange-RoutingPolicyChecked: V1Bqj4YB/IQjtf2KXlWixaUsX2ZJ+1E9f0tWxsR1Zi2SmQF48SewIo+RgFVtKlPaaH36l7a9yOcn/cIw9Yg39z69KCZr3Scdoo9+hknX0R+7EtKr42Sw8ekXYQ0aI+71FEXFsGGniw0gdrOGYC5POBXgbeaXqfWJHRvLrDOGgHpBBq9XSWS0jGnVoFl8bzqimiYIuVN2v0MSU/PpSkWncO3cMrXbcXXaT/F3FnEuL/s2g/VhCo7cuXoaIpLJXjeYu8l26LsR6dazLg8uBZXZsyXoS+Mvc292PRkveIQf3PhPP6lIwt+v4FaonV8lvk6ZXIDtYzlFdst2ZejT96mSRg== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: MiRas3YiIT6+DYSWqR7xrRPmEupsrRr47xHcH9m6dIFPHzuKEBq8i6aRQJSfXoPa2jq3Gs5mYzUepRhod01Nebg+dkx7BW9RKm9Ivq16U/ALuYmqZdWGeOcjhbJ6qJ6TebUNL0iVH/2P1mqrmOcX26/DLcP3fu8dyTqzVcC2Ou/CxWnkyAUxBLC1uN3LPuFxl7y6rJMB7BdlvNEVLY1DKU3iHpghS45NA4ymDApS+JZwp0sOtnDI0IehRlG3EFAZEH0tTYacwjg0rM87htJHNJYP9F+jYcd9D5oAZJ6bdUdk2ojLrwjE/zeWCJgMmZDgyCh7DrXeDkSW/L5ox6wWQBdBbSf5ftKzZbfV2tg4g022p2Et3HfLgYhxB0/Zn65jWUffFm1uKethmBEl+Vq7dAspMblS8E3vZggtFC+QqYlj7rLHd6ty0ZJHguNYTVnxH8h6yyZXSnFz3Xg7nefPVQhqfB3+yC1k8ca8GWBxtbRYRwI4CU4Nfjvs2X9TLPSiapUvPG27OqyCz2ZxwJFVyZ7OZxFu0ur2wbFsYTVXLqrGbTi+Xw27l4n7A6diJATFvVUVNMkP5RvceTg/J5djadebKdeEOWzj2Bt2pEC5XSc= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 73bbeb3c-8f28-4436-ef56-08dec534a183 X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jun 2026 08:04:57.3108 (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: YEgP3iZnbsTAUG4v8/LNlLq1QeEWqKMoCDJ/bnKR3KcW5o8GlMiAZIKiJd8BTQilWYAZERRCi7LpiO5nNm76uvexUb3ZnZRiYshbA6+yZE8= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA6PR10MB8133 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-08_02,2026-06-05_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 mlxscore=0 phishscore=0 spamscore=0 suspectscore=0 adultscore=0 mlxlogscore=999 lowpriorityscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2605130000 definitions=main-2606080073 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjA4MDA3NCBTYWx0ZWRfX7yLvVtAHG8Iv 89AbYV3S2VXqUNBYb0zItbC5r5Rt2gACSxh9GciJqszQh/HhrVBJZfKILDqwOBHdPchmfT9xiwP B2NLpTswjeW3ZZ7Z8pFuPKLTVbeR4wABip4A4eYrs/BtGI2mwj4OYobpa7S+ZQuNK5Fnhjh5hJj YB8l20QdKyG0vskfWS1DEgC3oMjPmtf6qrCcyxmIOtrB0kdAmiqlYHQdoehC/2B+Axgg3uxQS3K 0NwywmSUvzJeq2QakmyRPOyo32m9oMnaeyoDH3yr5IYdeiV8LBxVaOlOyzBc8mjcWRIZX760nRd twULbDvXWxudPnQIyelcUnhSh/Gi79pN+1Mh5trdtn1nkTLwkrkfPG/oypW4f2DI82VSSc3GxWG myQVekUq98jeTEb80Vj+Hhh5C7f+ZzCC0P7V+oc1kNSIaD7mMXOnQwRSDUzpHo1vEMAMkxgvtJl 8o3MZ6D5AB9ZTQuibrAn8fQ01aMWIOyHSulU1nTk= X-Authority-Analysis: v=2.4 cv=XeC5Co55 c=1 sm=1 tr=0 ts=6a2677ad 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=FelO9ux0wxsA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=jiCTI4zE5U7BLdzWsZGv:22 a=3I1J8UUJPc9JN9BFgKH3:22 a=c92rfblmAAAA:8 a=yPCof4ZbAAAA:8 a=VwQbUJbxAAAA:8 a=7CQSdrXTAAAA:8 a=JfrnYn6hAAAA:8 a=vggBfdFIAAAA:8 a=2JwLO8b5TkYCcQbzNysA:9 a=GvGzcOZaWPEFPQC_NcjD:22 a=a-qgeE7W1pNrGK8U0ZQC:22 a=1CNFftbPRP8L7MoqJWF3:22 a=5yU3S35YU4bGjq-dph-N:22 a=Bho9c0fBagfJEIQBS7DQ:22 cc=ntf awl=host:12313 X-Proofpoint-ORIG-GUID: qZtUqDzjnxtzxH9TwSmZ_CWbhRkKPzGA X-Proofpoint-GUID: qZtUqDzjnxtzxH9TwSmZ_CWbhRkKPzGA Content-Type: text/plain; charset="utf-8" Add the acquire variant of smp_cond_load_relaxed_timeout(). This reuses the relaxed variant, with additional LOAD->LOAD ordering via smp_acquire__after_ctrl_dep(). To ensure that the necessary control dependency on the dereference of @ptr exists (which does not in the timeout path), introduce an empty evaluation of the cond_expr branch. Cc: Arnd Bergmann Cc: Will Deacon Cc: Catalin Marinas Cc: Peter Zijlstra Cc: linux-arch@vger.kernel.org Reviewed-by: Catalin Marinas Reviewed-by: Haris Okanovic Tested-by: Haris Okanovic Signed-off-by: Ankur Arora --- Notes: Sashiko notes [1] that there's a missed control dependency in the timeout path. Fix that by forcing evaluation of the cond_expr branch. Catalin, Haris: I've kept your R-by on this. Please let me know if you aren't okay with this change. [1] https://sashiko.dev/#/patchset/20260408122538.3610871-1-ankur.a.arora%4= 0oracle.com --- include/asm-generic/barrier.h | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/include/asm-generic/barrier.h b/include/asm-generic/barrier.h index c56df9513a08..0ab26e98842c 100644 --- a/include/asm-generic/barrier.h +++ b/include/asm-generic/barrier.h @@ -342,6 +342,34 @@ 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); \ + if (cond_expr) \ + barrier(); \ + smp_acquire__after_ctrl_dep(); \ + (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.31.1 From nobody Thu Jun 11 12:16:26 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 023873AA9CA; Mon, 8 Jun 2026 08:05:47 +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=1780905952; cv=fail; b=eBr6VgmQT21luxnRMkhOgEfyLXy0GYEQiHka01/jk2wyCNHr9oIf5ISs3uEhEW5m686St/04dr3B6LhtXrCUofZ58a5qPh4hbXwHmwTdr7uOfmhxA/WAnx+1DBI7sZk5HE71zjMTelJhstZwbtZ8CqiLOBgpTACzBUPzjZZM44Q= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780905952; c=relaxed/simple; bh=5x2tK/Ql+7Zqf48PmfkGIoyFtOYoEf2nKlcIq33DQWk=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=f/fzvu6XTANRQbz+okkBtEE6B/N/X94qYAY6OS6xPw/RVEkU2gfszit0BL3xEV0SkOyzPHqD2KvAEPUb+2vb5FxJWEND7JkHjQW4zd7djwXExIyDKaQrNA+ojMS0jqiGcPnX2gt8VUPgJhJW6SR/AwQ5oZ54s9zsCdSB87+ekM0= 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=Mbn1vyYR; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=PtLnNUZQ; 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="Mbn1vyYR"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="PtLnNUZQ" Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65809f1b3675269; Mon, 8 Jun 2026 08:05: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=Fe7QSbuiQhAvxYsAtxLdlN/T2c5ItPvuopoCfg1hU9k=; b= Mbn1vyYR1cQR4ILGYUVl52qKZHntyBZ8RdeSA7osVRudvufcwG1vDJGh089CFos0 5uqbM4mVWQ+p0dv1tj6mF91aNtN1rDVVHONxrtivj7W4Dz5YwtVDjZ9ectr8mW2F 6u8YzfJgsKnkrvnTBs7SDGHKpdSRgo9KXzI5MhAw5U7ZD0/BbVwfRVe3eHX4sUjT OJ87JXbq83atIyQZI4Lyut5u/Cr1k/KqUO6WgkQZJdO0ObXTiSq8NVpaHFb3K6ul lpZjyrBw6pxRwy0Gaq8xYlATV5jePe9cEVTu8yiGtphMU8sW5I38wazXpT9LekqD HsvNuckkq8j7zQW+IUDAuw== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4em9yba1cp-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Jun 2026 08:05:06 +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 6587w7p1040494; Mon, 8 Jun 2026 08:05:05 GMT Received: from co1pr03cu002.outbound.protection.outlook.com (mail-westus2azon11010052.outbound.protection.outlook.com [52.101.46.52]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4ema0dg6pq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Jun 2026 08:05:05 +0000 (GMT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=WteFRc/vQesnxBhhQkv3/bdN+ThGlMQDrYFI3trR880MbeCRjzhSo8Te47u5xaccNU8HiCe99a5i0KGZqFLngLsxfyv4AkXr05WzmLDJQ/xWBMnQHw7wfpIq3Fuml7E8K5M1aslXB9tJFz1NeA75bPQrB5oJLlojXQfQFI7gobMtUeqVIbHqHeYPx6fjGT7fxB1h1hbUBe/qCX1hCUmJJwiQdDZODe4GphTxvFbhawGdRX9FmI5eAJ9UfKNJqYYrNWQ8Bi8dXitpSr//hAKk5U9tZ1gdMoboin/+Ju6EkV7+6lkY8jiMwyMRWgvzL3Ad1s6U3VDG9Vc9LHdPLPxx9Q== 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=Fe7QSbuiQhAvxYsAtxLdlN/T2c5ItPvuopoCfg1hU9k=; b=jeJb8HRNWL0MDU9VlB/dyBa6ojw6pIx+e8KtyO3vtDxv6/BkOtDXYzUfA4OwdpF0/xQMfnXJ2mVtSX5L5PyGTPDrTgPvjJTs+cOKhKUgbknth6HevNMgA2X0q88o6O0M2d9ewB/BHbvN2ozWidXA62fRbkG0ltl9z4WEjibPiLThVNGCybC3TGUBnZ0e7UigwT/qyZphP4Pf6puDYCyguw5qPkAED5M4lsOQCIJx5CFNy43+quFgfNQQNp8VoQjjVdlBDTOlXo4HTnPuMGC142JtPdp0sOnIH+Xg3mMkGnYMLR3s1y0JTku8zyDOgawhG0NLjYlLtE9SqYw7+m1nww== 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=Fe7QSbuiQhAvxYsAtxLdlN/T2c5ItPvuopoCfg1hU9k=; b=PtLnNUZQSmuhf+nwKifZcyusOy0zJkOrE9LqM2Cb27l9kBL37xg9M0cCa88ReVipN0c9OiXdUBCMompfQ7cK7DW5DDDTqiH9ch5H6yHcvgBc9G7l8fgZj6S38a3Io7RrwSKvsleYKdZhJljaam72WgAdWn7geNlfFWM2n/hiLfo= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by SA6PR10MB8133.namprd10.prod.outlook.com (2603:10b6:806:436::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.92.13; Mon, 8 Jun 2026 08:05: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.0092.011; Mon, 8 Jun 2026 08:05: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 , Boqun Feng Subject: [PATCH v12 07/15] atomic: Add atomic_cond_read_*_timeout() Date: Mon, 8 Jun 2026 01:04:32 -0700 Message-Id: <20260608080440.127491-8-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20260608080440.127491-1-ankur.a.arora@oracle.com> References: <20260608080440.127491-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0127.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:d5::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_|SA6PR10MB8133:EE_ X-MS-Office365-Filtering-Correlation-Id: 00287f8f-d031-4ec8-bda3-08dec534a320 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|366016|22082099003|18002099003|56012099006; X-Microsoft-Antispam-Message-Info: oFEUhK5tMQZwlCQYunmyEypYCPSvomEpFKBpN50bQkgbSaqBKm92s6LjQI09j12ul3K3eqQ5kP7eEgwmshZpB75yjCIVAaFHd71KG07FHEJAG3cwkBHs/Lf7wx/OqjbZfOqasD5b4IRwBwyx7AfLrG+U5zKNiG3kyR/woWD7kJTMV6xByCd9dlxR4fuihKKh0SM+iPPvAXlzoicalrlNKobkrckdG+PgOyjcMHmfhAAxoRKxIQimRMwqZW3bb7W8x8v22HlyHW7bQMjeX71qPj/8LLGBb1TYBWR5H7Ok+LsD1E3BeGLaeNLnyQa4lmoNZLMQ2zaZFGJtJxvwMm7lKRvPn2PRl1EbAWWX4MzDAerrHIhc5/8duGr/6J1qyJVAkYDu4ds8v/RdoVL59Xmk7nqTvRhMS5W6S5cy6Z+FSGJV3gHV+4K3tOb5UPjho15/0iBKzEgiW3qJBX66ezTjjZO/UtE0twBawnO5zeQS2x02niYLhAM7CHE0KAjF8V9by2FKpNk0Ad688cB3Mp03zONUZdqQNQe2V32gC0HtAYcjwdxYlqathCM2RKHoGLEWayvUIcYwhRvvAl0SP0HQEQ2Pq9oOVPryGXsLqUN1b9t7/kHKHX/IwwhRtB42Wuz16hkYXuXFWNLR18iL+UkVAIHK8EgcKvLLuJOzXWCv2O4MbZSVhlVeSFA5Uz+QAi6D 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)(366016)(22082099003)(18002099003)(56012099006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?dxOUzkvBsKhCpljgVLERqiWkyxcsPudux/qrYDNJ2XlRR/x3QRiZtiI8Xg3h?= =?us-ascii?Q?pBvHQveq3krNAF8iMMTcymtBaOEYPqT7m9XP2RfBA82aKJ/YTDH53WrSqRgG?= =?us-ascii?Q?VWANjByurPxairETu90GQ1Tv6+GDjw1iFGwsYBmdRjUGNXZ5Z0PZPJJatC2x?= =?us-ascii?Q?BqlR2AqBO174mwfN7uYRuLmDyxRXHdhO/N0L6E2PBxu6YZVN3bqOq4ro19qM?= =?us-ascii?Q?EozMBHCqsdUF0pSZ3bhMXV5Hs3mtj+LarTAfWjlxxGuVQM6pfpDYJIRfF5CG?= =?us-ascii?Q?xQYbE0LyE5PWkpeNbxszS8n+nn+POPqBrfQ5Z1zKX+GMc5cHbabVJrnVI0U7?= =?us-ascii?Q?kJvgK4homJiK50LPrD6Fv7m18OlQrEBiiJtPptrh/vkM+eo0vxRKfgcaM/FC?= =?us-ascii?Q?hWh339GdyWATbwKeqHHvA/uId/kr56o7JIF6VNwKUBWzwBw76Pbcv7F26bwR?= =?us-ascii?Q?wZI5d/47kFzVscCKcFPyJ/wgy+ybRJosynFRb2jI8O7CbQNBHNfIaQwbaiV/?= =?us-ascii?Q?y7U/8yeUneyOM6VUED47L1nvm+UnETMvVOYSSOebdQHC4UEfwFju/KLNOU8t?= =?us-ascii?Q?rEuvxvne6s60KTlbHEB7QJrwM6PWU2OLl0LN+c6eczX800nPQp9gAu0+NYs0?= =?us-ascii?Q?Jvm2gG1B5ip3oSxkrzmYPsuRPajZnF7qDaLewv6IzUXv7uJ/NpOQdXUC9o4i?= =?us-ascii?Q?+HKL464ZUmLRmAbALXOwKcuWoxiUvVq0wXU1sGc4JeHKohrNREceybQTvvkW?= =?us-ascii?Q?oB54MV80R6W7YOhsyMFA5MW4NRfjNlxuhounGg4QWciHgBtubWT/SeNwAK8Y?= =?us-ascii?Q?dCqB0CP3dOMXaUS2OpuWBhK5WfYD6lt8BSDA+V4TshhDhBdViVlMZAqqbcnx?= =?us-ascii?Q?DyISfW/b3sfQdAE+slGtCdVxegUT/d5wQt0/nxZhGZIoCcNmDXYlr5LWr2LK?= =?us-ascii?Q?RijJBXg7tTQmnmYjYdeu3JObY2vXRPZTm2C0RZQ5FhZA3H/9c0NrHfWDyIIU?= =?us-ascii?Q?DSIajCnH+eKXxro8LCvlPQU6vVfJttmgjpLiq5EMOTS2sWyf+MDP6zk/7dzq?= =?us-ascii?Q?jN86KL9BJfa1GI8wlMM/MWiNgfIUj3RFumdbyDpnyfqtNzYr5i4Jhke0CmPd?= =?us-ascii?Q?UGHGhyVVdBnw0xC9IObozJ/fZuIWPXwNfELtpOWY+yFmEpOuvIrBoKvmDwW4?= =?us-ascii?Q?YAX0E0k8NySF2coktJi+NfqAvjqDrnD/kujVnDwH1rU/X22BRf8FmlHUuhde?= =?us-ascii?Q?23XYNyNyJtfPcIk8VNljDIY+GvPOT77/Ll3P2iuBCGlQ3Scfwx5b7bblvPYP?= =?us-ascii?Q?araS4TrnBMutbqDWgpSbsx+6lZ4F8Rk/HhJnUfmXfMr/QxTB447ik7dZD7SV?= =?us-ascii?Q?sGaffp8o0+FVk3dQorhseLU6hnQLTKoYDBTVZhNs52K+3R9ntOZVkez4hZ0D?= =?us-ascii?Q?Z9FE2ylvg3SD9obMhx3FvifH0cmkwshWfWIqcBp7OkDTX3iz57odYEDSmZr8?= =?us-ascii?Q?Q79gzhzgGZ3X2/Hc+rrdoctHJddBiXC4rhC4ZhZyBAmiukgW2iQt4IEgqRFA?= =?us-ascii?Q?Y2JM4zJ6dOGYmbXtylON7+TYId2HiMIfwtCmgx99mtFZxJda66TANMaVQKK+?= =?us-ascii?Q?tpH3fnXnrTBZm1sjxBi0qB+kEn7Qy2TWdPjUEnfYkSCrXNEVwh+YV8T+bl20?= =?us-ascii?Q?opxOy94NJm4kot8JOltC6EuDh+IYWB4/iAeQ8UxpgBDByiFNsVr1GO1tr1PF?= =?us-ascii?Q?yWe4f8WrJQ=3D=3D?= X-Exchange-RoutingPolicyChecked: EduQKAQ3iM8JwEa6XzkeAp6QSHpY4hqT7I/ESDEv6j6C3iyNtH5fCo5A94OF2491N96X1ErbBo4vd5/QOwkDLe8SK9Kbivj0UIUsXZv6E139O6tFFgGfXkmy/z7YYm1ssDnCb4xujbzCPJy+VASeTkP0EHwYD+nTM6XomixfeStGdtGsC2fc+gc0NdUttSmOcU1J6ijKJetss6q7QwLtT+1gKGbBNLXaknBVSIIxB+b4mDU3zEIB2qjAIuSc/88V00cJEQ0geF/Y8VPriTqow5QBxyFdie69lnEfHNMDHxS6d43+vMq3g8hdxC5Beao9piO729bPvxRQjwc0xkJjHg== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: znQaWn67MOeMOlTmt1Ix0510kZmPRLJ/ffJea+4qgwfzlv9lFIHfRgR+tBTE7bFXZhjulZQnJe3jSI3w+sUJ1/jHGMyIKYTEgGGE4xD/BBtdnai0kPO7FvhNZBESTQK6HBUruyulitPZzH6q8OeLUMhjcJgSZnKo+Q6DW2Q5+1uOhibAXsL6rTtMbJmegpUMWVJxTFJ4NeE7uHTHqye6nljPKuTIiFKsdoaQhlhpzAgVIRAh4KSRbo1tMIv/cJKJwRlCeG3SGJjMGgAcWgn7DgZtq+0XchuZw3ibWwNNfuYPEviC6jFNDVMg4dt5GgKd1w5FP+loaehgcgrkTE4yQWGQ2MFGFHpj/lBf5MybPbVxncyE48deQxbvDDPM9Tox5P6d/62swIU6qF7T6gzDIjSAn9g+GPYMmfWR+FJlzHUBBjUJVTBnNhBTb+zyiBsWyrO/FI/JiP9lhLVCzUaAQHH3Xdb5WBOsA2iMRoW9JICzPE3nnLqGj2PBB4gI1plOIQHB1+SChPDO6GQ7ifD1+ee5aK7wUVvh9jdjNX9FwYDah+D0VwKvIhbibzACO2YwU+7WBmenOhEeiibIrpcg2iyTOSVja57rAaINENCqRWA= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 00287f8f-d031-4ec8-bda3-08dec534a320 X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jun 2026 08:04:59.9832 (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: X79uh9RZAhwMyggtoEUNxLwSebpJbjGpD3eKLyHhmH6WQ3tTimvG2B4OsnQqrdd4f03HXvkTecH093pLHsWpepnb2fW3zdLeEJWBZWtxkd4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA6PR10MB8133 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-08_02,2026-06-05_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 spamscore=0 malwarescore=0 bulkscore=0 mlxlogscore=999 suspectscore=0 mlxscore=0 lowpriorityscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2605130000 definitions=main-2606080073 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjA4MDA3NCBTYWx0ZWRfX/tRd+AIt68Ed BO8RUIjOMjJUhJ4424c39OHkLYzhLehFqkP6EIuPvQzt7wHrqI8j18qR7r/jmFtkyTBUJhAQ2s0 jF2HdFOn1n7eFMEmkaye6ty8M8qmJU9bzfVungpEZhuB8BbG+xQvqVcGIBkDCcgSQAh405yJnRP zhv1XrIRX6CHIDxLzSZS3Kfy+6kdIqPE5tF5sYs+iHOtIiG376sW8gUMfg8wRObTg1EnZqY9HcV MLh/oS3SSHvv1mMtQLZtIrrRW+2h5lj/1UCuJrIjZ3euAi8crWFqgioPVH8oX6aRSCl59Xk9/9W F1++2Kd5/ffosGe3MvkcnKqc3DqgNATBW2gXtIZNnbNWBqBhhrWZryDCuYtFYkmOxsrQBD0Mvyl XHxqTC+BZafolScczWLguCHX0fjxBC58raJB7kR3qerIonfvLbJjt73gOgRY0SSvt3GO0z6jkhF uGN8qLMHOTiNyskJcXw== X-Authority-Analysis: v=2.4 cv=IYK3n2qa c=1 sm=1 tr=0 ts=6a2677b2 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=FelO9ux0wxsA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=jiCTI4zE5U7BLdzWsZGv:22 a=x4eqshVgHu-cdnggieHk: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 X-Proofpoint-GUID: RX9gSq-w5Y-YdY-aIX0IjnJ9dMehXzKi X-Proofpoint-ORIG-GUID: RX9gSq-w5Y-YdY-aIX0IjnJ9dMehXzKi 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.31.1 From nobody Thu Jun 11 12:16:26 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 483C43AA9D4; Mon, 8 Jun 2026 08:05: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=1780905951; cv=fail; b=kPx3UEL+woEuGfGnGkVoWkjuUeLU1OdZX4Jo1FWhNX1qflqd+v+ZR0xUqEQRPcmvoqljF1NfoRoYbps3giH32kFNTUQYA1PDukvpgak/rbHP9tihoxJjgMvZGz6eitu0gkHULC1uYZ5JDdR/ugb37t+7el2x6cbN0l8o+RQKp5w= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780905951; c=relaxed/simple; bh=tyKyeS/2jLpr49Q3e1dU8wpSrToIlZAHNWmT99aDwP4=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=CbJSsymHX2v5wgu0kjBWz3wKjjtAkdOtCmF7OB/szgP4e85yJghEbPBlsFsbjQaK0VYo/K+ibuhn+OucKj8h4ZEXTfQk4AuX3yvwsLIbiZoho+7eRFZOcacLzpx9T1f7gUlqAJEjTDUR0mqQzvatqvzdd6+64MI8W8FGzt0IFAs= 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=bW4Gt46p; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=zE5NsCJt; 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="bW4Gt46p"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="zE5NsCJt" 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 657NNtEY3891636; Mon, 8 Jun 2026 08:05: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=YyobJUMrCqoQpiemBzB2+HPq7GVYfYiMd0Ms2zfNasw=; b= bW4Gt46pHrs8Xx/BEevZbUq7MJGFIQEDDjaEeljKVZyDjgXeFTkNXMqaYRkjGJQh uvKXEwAalSz7uMB2nhTrDfMYk+OBSSDC0k5xygAu37eQ6WU9Gvr/oGLbsSixjBzK x8I0QwOLOYGK5k0aISV2WEvYgb/HEOOaLm9inmkRvyt7rXLcbtYV0jXqckLUxJ1J QOCXknLRYyjpU9JLS33gwQ+Z4NSxTHy56c4FxMse7IeF8jX7nXtkWUPTNhb6PoQG G9pq9S7rHgddQsp2qfk++9zBSXbpduWcviEfh++zfTOk4NpNCDINQHYca70Nr0WX JmylVzS3ZJg4XkoX98+71w== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4emb5st0ff-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Jun 2026 08:05:07 +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 6587w7p2040494; Mon, 8 Jun 2026 08:05:06 GMT Received: from co1pr03cu002.outbound.protection.outlook.com (mail-westus2azon11010052.outbound.protection.outlook.com [52.101.46.52]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4ema0dg6pq-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Jun 2026 08:05:06 +0000 (GMT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=XdRLYHmydHwe1ts2xL95V9muEqoTe3Q4nUEMI5RLKJoKGognLIgkOKIzfd0Zeqhs/qti+yHOkn0+ypaYGmFX8tPvmqM/l6vIwZvOJ1q9IgMqHXDbo5olyMLlG0YEXzot+cO5yWpW3yjREDufjSq7AOqmMO/GeJRdBP3qPIBmtpJR8hXRUOv+cHF1+9kZeXY4V0ApB4j+ONBTIPXoSF5tH8bteLuJWISNgHhKmDB0+kdrj2229EiR+5RiswK80D+cebcBnVX6sk+z3wEHcBHdlLMSyVzxd34VSfsSkwHBwWSso4VjUjmKx3A06QBIY20NshsSwEM8/V0YJVUDUlB/Og== 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=YyobJUMrCqoQpiemBzB2+HPq7GVYfYiMd0Ms2zfNasw=; b=nJM6NBKBe/Z8EwHHLzDu4DXwUaZLrvxjh2kDEywYwljM0HAeSLRBBYJoDDp5g6GBKx1E9+6S14TPmDBTAnCZ/f2OhfVsre8LUKUaQz+BCYo7Auyxsx4kSB5I1oifzGytNUrZanLry3+BUoY+c4ccqWjlpLItcQ3FOKVP54ifCq/CkcUEakPPHCe64Q77YeI9r0ipdpkIVpweM1fG0BVYXHBd0o8vA3a87/sn6E0nRvNmE3g1Dj8CNXUtBZkmp1omM3/y4vjGNBiZeR4gjVW4W8EJyiC+V1gcRXN3AJpuIx+fDMs047eKsVcLyoQrsRDUJpNOeXtBncUEP9oW34EUUQ== 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=YyobJUMrCqoQpiemBzB2+HPq7GVYfYiMd0Ms2zfNasw=; b=zE5NsCJthdYeVtA3gY/SXEb9O1L8BrB3CiNUDzN8pdHfNR4/9zxeKH2iUwvnK1fYPvQ7SjePBdrzDaJSSIdjVwLwXIJrz27Nt5HjWT+YCC4ndIcHzuaTbIFZngzpz8s2IaJf8aGQzsPQy2aYoOicMacjDbQ+ojdExKi+zpMny6Y= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by SA6PR10MB8133.namprd10.prod.outlook.com (2603:10b6:806:436::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.92.13; Mon, 8 Jun 2026 08:05:03 +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.0092.011; Mon, 8 Jun 2026 08:05:03 +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 v12 08/15] locking/atomic: scripts: build atomic_long_cond_read_*_timeout() Date: Mon, 8 Jun 2026 01:04:33 -0700 Message-Id: <20260608080440.127491-9-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20260608080440.127491-1-ankur.a.arora@oracle.com> References: <20260608080440.127491-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0276.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:109::13) 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_|SA6PR10MB8133:EE_ X-MS-Office365-Filtering-Correlation-Id: a9f3d1de-320c-486c-5ff0-08dec534a4df X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|366016|22082099003|18002099003|56012099006; X-Microsoft-Antispam-Message-Info: 9JNh96ljOHCamhEKcy2qVPqY3ThZxne9jsZG0+sVSs0bY9+pJg0mVRxF9tpZsAoysyu77QdmDQgxXLxjzmC5yqXfKhmhd5PM3AnCCwm9ESyEhWc05ktnx7U1KVTzAEbY2DS7nogPJFJ04ET8RAUbPMMUc0W+zPVIz+PKMSLKZvLmpllN1gHr+OOUKDE8h757exp9tLaedcCbV+LLrcSQk3ds03a90NZ7jhgueeVByFd0YUqAyMCfF0f2BYSDuz6odppTAs65IVjN2PmiMl8+HiFJJpqCmE/CVIJCvcNDb/PA+60WwgihEX/0L6Rjfg+gBK2MC5/YD9BqxQXvGSTJ7vVZEQ9weDzahktycwskzowDxROY+drcy9INONRFyNvTIVT4ZVgngyS451WvspwrIFJa+wemKClA4X3qAu4p4x1oNNJa0y8u4HuRtK8brkVV7UmxlXCnJ2RZgY6h27V9ehdXht8cHtYcLrE8xGnr3uE/vnnEUlIge1xGSguAKi+wAmTu5shvP1qt1vdX8GbyfnBUGBbuQj7nb3hfdb6lH/P9dvcJ+Vp9qYVdZ1hRT5F1KKxt+9E84Hz9t5CiUgc396q8TjHfx4JA+mTivkIzbvlbB/PMLqSHvuOD7qKms1mtbwjZAja0/mInpcRfAk+rvRKwS3oJfBQsG6QkiwBnX/PIDrFu/Fo59sKN6TZILeoz 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)(366016)(22082099003)(18002099003)(56012099006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?JYUlmQ9CJ2rc6v76YGHYcgBaFniQhCwjoSi9IpXGdl2qWGpPZGtBZjmaT+FE?= =?us-ascii?Q?HVO0rAlWmdJxLFvxpQK4ffTUdS58DzihJCm3DfkRFOXTCg0N5bxqkbvVbNzi?= =?us-ascii?Q?0hPukLbM3VBALh0h9VOhdvB8XnkZWYXDcxuMSdKJdIjhLYI28JI8wfUIxQQX?= =?us-ascii?Q?c+weu3Cy0tp8mU93bkgiiAmqXMfVa+O+2Z8K2i+y4MdjujePf9YIASSua2h+?= =?us-ascii?Q?PrrjGCvaZAEvqooiKSSq0KO3sERRz6hoHlawH2n4X9PdlkokIuUalq2FAs+R?= =?us-ascii?Q?B9bEfBnQVTlziEEKJURXGV/FWTe8nzhSsSovYnObXpjh7Tklqne3sUfw+e9S?= =?us-ascii?Q?/F9IZGLUEIQZzV7/jDTX/eAuPfhHfS1TELqWNQYYTntrN07MnXj4DZMTiIv1?= =?us-ascii?Q?50IrmXyG8OKUxjFKlFWRf/FX9K2dR9qx7trmmCdcBlQR3fLN7Q1HFICz/s8P?= =?us-ascii?Q?9wCS6YfVzSQlRiQ2Ff/Gy0Dq4q67rCHIvCqbcs05c0y+xncwN5b1Fl/qcgY/?= =?us-ascii?Q?dtksaHzEAP03XehQgwW88qL/wHVSI9wZ1XHJhrNqrjRBbCPiKFD3GsJlnROQ?= =?us-ascii?Q?m6w3CT47B9PtQYPJnnB5/YeQl0OJyfu8n0l1PYZR7J8Nn+P+38008Z1QQ5yk?= =?us-ascii?Q?9nsvoxbaKyez5qUkXOb3600/KnN+mZ5vYzLDYa2DdKRpJjarSGMv1DWEDSk3?= =?us-ascii?Q?pqQpYzR+jpu/t/PRgkLVOuHhy0tTcYN4OAhXfk03S9PK58Cv92YfFbNI0mAL?= =?us-ascii?Q?ESC+UCWMqvFYbbFdKpnCbKS/PAzRjUmCK4Utbf+dxqNVponhmDNzygI0ZlN4?= =?us-ascii?Q?tmxGkdaFGNLzwFaWE5bYy4RCVHXDC5EBw5G8cK477hR38f9hjtKQ2cwHLFQK?= =?us-ascii?Q?o4oGCInO/FJpd7xr5bFsvgDHOQT/Y+VOmp+zln5rIVWMXbwc3hW19RzS/8Om?= =?us-ascii?Q?f6wlE4Jrq5d59xweqwflE8eLUZ80AuFYma2BMkIBN2lMBlYz4UDLewfhqtPW?= =?us-ascii?Q?B35T97U06vOymvDmUCPdcuPn9lwZdFUnk488t8Va0au2hkP+CvJ4EJ3zRq++?= =?us-ascii?Q?JbS/3pRHqO5TDL11dltJC4RR0XShKerdhj63Nh/jrjGGJLdJH4i8wa9wGGod?= =?us-ascii?Q?IXNo1KX1t5HHOyTTuD/8FHBHyvg047X4mp6cFHNVLmiOo1Wga/F0F34wFRqz?= =?us-ascii?Q?qERY6g/gP3eZ3MN5gbQBqjxDkPwOTtMunYSP0GyOAh71PXODlZgK4JhgYj9+?= =?us-ascii?Q?GxlF2yf1SWA048yX1nNidFaJ6vRjG9cyCaX/jISpBfvyyum8RsSeYYzCSXfR?= =?us-ascii?Q?6NonklAVFMbbdSR7SF5nW0JjPXm2eoZZfiU7KUPmvp0tYGMUxSGITx13Q5C7?= =?us-ascii?Q?8hYJv+DBE+mBM1n5bF5igiaPlRMF1PlFm7tQ3qlWKqgvXwqDJh9d8R5RIrUQ?= =?us-ascii?Q?BtL4/nSDNrsqXlAOZAQzNPn36dUAgFEavFTDsvcbjuc3igZuCp/nH4ElZWzH?= =?us-ascii?Q?tJj44UjVW8//b8rGkPzL+bap9wyiiZ7XoiugpAqcNQtmvBjzL1EYLxZ33wKK?= =?us-ascii?Q?fQG2s2OhRWMiWe+oSJgmHIhzObYiD/rSHvyMl9lot6hDhiCj3kPRBbfTn/tL?= =?us-ascii?Q?nx3Ie3JtKJEe+hDlBUJ10/r2RPdgM8KdhlRnV7LZqATKn9IicF5un9pmfa6Y?= =?us-ascii?Q?k7l/HmqzM+aj51JGR/xMG1sAeRrUeXNC86Hh8H/HZAsGuHuL9MgxR7FzJSg2?= =?us-ascii?Q?JpQLKipVsg=3D=3D?= X-Exchange-RoutingPolicyChecked: iSXpbeKSei1yhgyuYaP160osPz20wrvxQGhsYrO5Tt/FceE9uGAhIILqKOHi2FVBoivbHVHrM4/XwWDaavsgSBJs2hRNjDtXJNVUiy5fj3FMLCdLDkZAxEDHykOpyP4mm32nqShMJtcQjiaWDyxuhUi+vZxnmdwrCKfVLXpEMe3biiE6YxvfGzXWU6ouH445qryu/C63CdpWc0/cMLESF1GUrplkyTc8Z6ZldHTz3eQYT1b6+X9AD6XFZMfSGGl9vuyKFlGPbaM759CMonAlh7HTMODQGVO6IXeeIjNdr5Cw5WzZHhG66dODHbt0sapV1+KM+hxVH9n/ARZbNNrW3Q== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: e0yEirDXfL7L7uu8x3LHL2QutUsRkXmUh37FNq2KjNdYzMfRuUQcddR9n+nLWFXfj0QsbKjwdst+DJAe3VicFVT7oXXU8ansejd2GVZvr9OVp6gu2drtRiWMNJkp9GOFMfoWgs3wIksawMwDC7zqxPtP/CV28q9AD+iYjHxmtqxH4a8VpReiuS9vuuBlmaCbH19s8WE8Nz7sbSxXBVf6cIuLxdbH8r+fSgujYXjeF9GrFr6o45J8ismYgFDmDVaoRc+cbZqQXye+CW9zWJdMbDzH3qoDuNWufY9KTTti90kDqZlK+4eMXST6EndSOx2osgAILxmOG39ANwKdm+F0RfQtfiMCCoBm2+Z4vUFDtzgf69MkniZ/U0yudABiBpdvGNiOdRPstur+/k199nfh7r3I6NDtBxu0hdZxzsSMsQgmbGNOfJb/SsVxDqRp6IWLBeTvj02P37Dt6jNcseX1W0LRka95SuKmk9jw86TAs5D6aXFbAu1X7egFAa+GuwyLnoRlKOmtU1lXxB1gvAjSZsrpZnyGvXhMTFj4kfl6zqVU8PcFhLru7esbDviIlFeX7fc/e+c0Na70JxKEZQyrgGkXlrxwd6DcnMNFLaudW+E= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: a9f3d1de-320c-486c-5ff0-08dec534a4df X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jun 2026 08:05:02.9974 (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: Z8uCgFm+T8SOpIUvOICzVjiCDuo/AGrTIj4zFx8/9XCUX35IKh6S6MYkRa7wzq7jy3Mv/iPNpNEerxm89YjZWQq27XaGq7ooj1Pdu8rd3pk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA6PR10MB8133 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-08_02,2026-06-05_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 spamscore=0 malwarescore=0 bulkscore=0 mlxlogscore=999 suspectscore=0 mlxscore=0 lowpriorityscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2605130000 definitions=main-2606080073 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjA4MDA3NCBTYWx0ZWRfX2J+BdT1/pFMb +sizMy3yrOHzrf9B+iiQ3fEnS1l27xB624wuSEFXf2Zhyol+NbyGd49n/M5g8cOf7BL8h81N/qk GwTSgugOlSyG8adx+2kkuzDSSJFBt9NKqCLkpZ48i+CavUZHcYJ9fKNZWdVhTwbe1nI9a8/6RnZ Q3QRaGRjSUiKFPMsZS63O2v4AekOcCL1bfhR94UY8durmcxNDV+DOYcboY6LOw/zsacWORGa84Y nBJmk4OWpTRCKLBn7xG2ORN89JP22F/4KmHPER2JJRgat/ZoRVJkVlQzg7QBlm0IHvfG/D5mZyC /2h8xBRt1NvEEa5aH6hJ8asSoLdZbyjJcRwdgdwlybSo3BGH5AJ4Xw9l7aeozTTj3sJWVHQF2mo d40cHpKkUUCdULxoIoxvg1JUsanK/nl5P7KcZsrz68Mixs/gED2vN2z7mArzWyXTjn1ImASc2dY lah8gjrLx2b8Cpun4oA== X-Authority-Analysis: v=2.4 cv=XeC5Co55 c=1 sm=1 tr=0 ts=6a2677b3 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=FelO9ux0wxsA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=jiCTI4zE5U7BLdzWsZGv:22 a=3I1J8UUJPc9JN9BFgKH3: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 X-Proofpoint-ORIG-GUID: Z31ZLgy1yBBZtbD0LSl5F4769iX2FJgT X-Proofpoint-GUID: Z31ZLgy1yBBZtbD0LSl5F4769iX2FJgT 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.31.1 From nobody Thu Jun 11 12:16:26 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 209023AE718; Mon, 8 Jun 2026 08:05:56 +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=1780905960; cv=fail; b=l0TWXXEguWH1XJA3ULL0gnfPloKFRAMm776EF2hx/DC8axj5WxApOhxiiIBhq7UuC0NmDEGGTyCd7UJ/Oevm2r68PkCmqiR9GCL3Dii7iH0bNAW4IO/ARKl2CE92+WZekVxvErlISjo8dRCfW/A44fdXLKf1f4keH4HYs4S5alU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780905960; c=relaxed/simple; bh=MYshbieWQnP0tYWq2yV2v8uPqi0VCMZk3YuYFERR/pA=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=pIoaDFvPsWb94zBMOZ9rPpRrYJsc382YcsOluFwXw3VlBZYIJ92F6zB2uhZ+pE/2ChQrINHP0m9QMGO9PAT/iFEBMpyRTuBE121k1dZ2FBuOCYTtnnMiQV/lj+z0fHlh0Qnxl3DLddGpqghiKJar8a8Kzur9eAcJCiRxJAP8vUk= 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=ViSbNSOJ; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=e8ZHYfM0; 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="ViSbNSOJ"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="e8ZHYfM0" 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 6580r9iY2285698; Mon, 8 Jun 2026 08:05: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=NxiYtykFdSzVQMiGjeYMTLioAPuSw5F2JzJBDcdDhRE=; b= ViSbNSOJ5RyK7vlsI1tMcn2FJ+8DwUXVaid6xs1gUX+0GU2ASXfilSUEhV/QriT+ L+yo4dENQx4Hq/zShNdPW6mx2sm/uixnsnDhHwFsqWXzthiHlchr436spABRVVDI yGvUZi8PulODa6Cz+AGLSPxPSVL9woMOEtzc0bHxh0tZ2VuRJnQEfYOEPQc0erUs 5zsZ0UekMf1JIXhydlPUZNu6KuHm4BRJxjtWSdDd+i4ZaSJNV2Cy+4Wo6kb9LnLL /c/TPcbQb4oPdKCK02QtoBg/FOG7xbuV1k/XrKLchYAm1sfmMTG7xPJbpAMkfISG oflrUtPj/LNZm8A2q84sCQ== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4embkja0ss-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Jun 2026 08:05:13 +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 6587w6CZ036652; Mon, 8 Jun 2026 08:05:11 GMT Received: from sn4pr0501cu005.outbound.protection.outlook.com (mail-southcentralusazon11011031.outbound.protection.outlook.com [40.93.194.31]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4ema0d8a4n-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Jun 2026 08:05:11 +0000 (GMT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=GwczVF6yNA/td2+dwsdtm7RsSozgI3uV1KTH/278hReDmm9Y3E28n+oQS7CBwlviACT97HdJWmqxUuqyRIrZdRiG/Re0kuosSR2NPd844xBsuQRvErA5mw0fgYddJCxA1z/mvyW1a4cD8Pgx4SRRBdPEEQkhO28PukTq9oDJ6nXp2JDaCtB1btevv913rHWm3q4Td7Mi/inLwSjbYvu3732Vk8Qb7XaoiOVDo8fBuQbsHH4MMmpEiDxeZRFhd4xltWC8EosLWNZ+NZpFyT+hqvH8vi7m78AQaA7DvubwgEHBsjb3vX7VzHanZ8w4K51u7lWD19GPrezNtENrZwQfcw== 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=NxiYtykFdSzVQMiGjeYMTLioAPuSw5F2JzJBDcdDhRE=; b=FdwDjbuyXW2Negr/L9RQHM7IPUOEKHZ2ep+Q84Tmj+odl6WaaDRSoJ6nr6WWrDTbz1Wk1FWM/gB2sNOjFen2aZYQz1Nz9/zYf/54m+yWOO5y+8I2DyWhNQuzOD/Ze9a/C5JAVqpo0pNoDXtfTS6/BSn9vd48/Oi5zMsJMxB1NzGBUHBOqIDFq24cul/rxPwPR+fDC8lkbF9w9Q2ZiVrvi4/JbeIOClp3ymtLOyARHIrGIeAFDAaupt94jLtJEpjrWsLpqRmYr55qf53lBgofEBAkaNdE67/W5H0mIvc8v9gZqUmYSWt/9DZ3AeiIgVQXrqdI9jscUUlkFnMSAPIzdw== 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=NxiYtykFdSzVQMiGjeYMTLioAPuSw5F2JzJBDcdDhRE=; b=e8ZHYfM0XoNH1nFhuQrAodAkXOtuFqZ1AZABFz06f1ECa1BjRaivscAQSOG6SjnsskstE+UGSMLoIx6kLBoORAO59svMkxFj24zLTcN8V5mbh3XaRu1q9fGbzEILQuWk/cenNvxy7ohihcyeEKGruE956dOESpkvGr3BVdStWzM= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by SA6PR10MB8133.namprd10.prod.outlook.com (2603:10b6:806:436::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.92.13; Mon, 8 Jun 2026 08:05:07 +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.0092.011; Mon, 8 Jun 2026 08:05:07 +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 v12 09/15] bpf/rqspinlock: switch check_timeout() to a clock interface Date: Mon, 8 Jun 2026 01:04:34 -0700 Message-Id: <20260608080440.127491-10-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20260608080440.127491-1-ankur.a.arora@oracle.com> References: <20260608080440.127491-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4PR04CA0381.namprd04.prod.outlook.com (2603:10b6:303:81::26) 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_|SA6PR10MB8133:EE_ X-MS-Office365-Filtering-Correlation-Id: 8e4af27e-93b9-4ee3-0732-08dec534a7b0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|366016|6133799003|22082099003|18002099003|56012099006; X-Microsoft-Antispam-Message-Info: DYWKhnzgE132QrzmWKeOdxfK32nO/OY+3Ipfux7CPDJ6+aCuKZluXBQK2rgMQXRq3smtbC5tPQLz4HknSInNSvAs7RJ7YhMNAHQdpWRjHyc+g8JtGEncU63PBU5AMKaER+Hbbee/tHpRveSUcY1nZUV3Oj8d2EMLzeYxXYmX7sA45MiOYr6xFMDFnrhnYfp4w33AgTxORAleKgMyTmUJUCbbGrzcDiK/uEcPwxeZRREXTWRjLlOiAUHvGfdHcvNC+O7pj9rvT2EoOlO2RtBt307dQEu2Pdmm7c195CJFHBAHTUNyelY/KZrUEZI2g1zEOwnjuSGn+liuzEq5RhcN0RDsLHgvFY/MKfQDHFKWRk92UNHkl6/P+gnUqIUTt5C3eAWTcz3x4MVrzdu4dv1GM9yOAeuiKGqJa4W/Txa9+lKnhDyvyjgTya0t4ztpRnePP0pFIGPqwGdUMx/KgbG8hsAYULxlocNsn4OBz099gEBfWtn12JH1hiO0cm6BjOPndjORsRtU0bQlFEQUhMawh9rNgdtVLJHd881yoRBcdTbf5ChqXjQ8UsbNSMu9jaQLAHEGh2R2VnVjK10wuQiKOIX3iLpDv/M3ZpLYm0aM9jwlhr78GIt86D6hD0zJCHT1N0wFGtKczb+I9APH0JsRBJ7y9fmV6O8RUhCUiIFTapo5vVM/Fn3mwo2U7X8lu65c 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)(366016)(6133799003)(22082099003)(18002099003)(56012099006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?SeXlc4wcPSJKacIA0LNTZeWilZ1Xv32ATb99eJl6immcKS/lLcPtXiF8IU22?= =?us-ascii?Q?wujfQO0ziZ56lNhotw4xDRi+Zi0pPHG5R7xLwWuvZMIc5LRu7fIpcwwOwjBh?= =?us-ascii?Q?we6c/MmQp+QmhZeNQhfZLuMiJKS0FyVsdo+5pbJbmCF8+4HZgRKMkym4rJSJ?= =?us-ascii?Q?3vHFY3K/yyYudByY0GR7aG4cBi0ievNkWCirEr23MQbY/y/bmtwy5JS3QoRw?= =?us-ascii?Q?Kb+KbY2OV0iO9qQulNSlQ5SpW/NYvSzuFcqC1Uw32hrFlDX/J5g5KJBeCOj/?= =?us-ascii?Q?QRrAeOUHl6GapDmm1sjLVHB6CVIdp76by6zsLwBaU/12oboPmiY1vqafaEJh?= =?us-ascii?Q?mtd5pgiC8sDJSypSZf0yMXM7vI61enCDfp7WiRak/bkgQckfgYuobsLzg3Uv?= =?us-ascii?Q?GMptPof9NawE8m8PmPoLgCJOpSXWXgWed1gAHPNnXGyik3RDF3pEDBih2TYP?= =?us-ascii?Q?m9VvU4/pD+Lh8TlKN94bAW4hDuTsrWgJ5WSq1RdM9ylH1ysT0nwJwySD5dmH?= =?us-ascii?Q?CZuBSqZbEaF1m8fnK2Q0gy3t8M0s5PbisMcddSbOjD6ftUnW55k9rUVQJyo6?= =?us-ascii?Q?6ryn2xaLLULn8DqV+P7PEnr+ifHJB+SlogeZO+ss+mhYPNEyX99q6LvTv5a6?= =?us-ascii?Q?EXpoqFq01xdV5qBirx1ujpnMb0zsy046lciJ++KaWGlVRxfUbwBYGJdvI0pr?= =?us-ascii?Q?I/ZNhH7KInhwHEUslQohHALKpza18qT5MV0K7PiC8vIrlKG5SoV82PJmS/tu?= =?us-ascii?Q?GEQWs/drV43uIV7UulW27sxTfpKyZgfFuhMqkek8Q1n5X4hUZVbfuNhCtd+i?= =?us-ascii?Q?CcGID5DKJxSgCztaTd8pLsl95DH/eahuDcxlx/kaEZrmSvcyVceTtK7BFZx1?= =?us-ascii?Q?WjX+lh5t1GaTlySuIWgPQYGdeofzn9y4Z75YbCXrngDLQ87hwRX7gjXWRmSc?= =?us-ascii?Q?yfInFSFcFtsIQ3xbgFIWGkWypdzHK41oH7n0uCg3/YeaqbMzpBlRFsydj8pY?= =?us-ascii?Q?YYRgf4D/aLFs+wlzxH43L6+noKwnVgLQYtqs1ri/5qHZhCw1ZZHZNE2l/3tv?= =?us-ascii?Q?S/KmeYy43IEBBXrXuvnm06hpCIW3Owd82k1+HszhgBGT1kjP9pOzaTE2uh8U?= =?us-ascii?Q?r+5VxAnU5NcY7nn3lAgYupCdVUWnRVtKCylRa6NcxjtiGy7J74qWqUJW6KLY?= =?us-ascii?Q?+AbjWqZU548Fy4h5NNSo6EPYDKbVjW2qkIPahdp/GR64cdME0M0F2ns2prgI?= =?us-ascii?Q?DCUDwiCFSbHSLw3CDX6lV0pvxFq3Yj5mZQVTyKIfmmHnKY8CxUYZxDYESeW9?= =?us-ascii?Q?KnXb42iBLPi5HNjkALqFals1i7KS3KiaYIjhcKs3SCLFeI79qTHJ+QxpI0Q4?= =?us-ascii?Q?DGzolcTijHXo4BrgboCRR5bEoB0GIFwajJ+DIl0IkrA/OuInN/itXO4zHKZG?= =?us-ascii?Q?AZsS+sD+XDX4HmP0Awydr7zOvU30syCbYGEGVSE38DDL4N2YcrcUwH1KZaFt?= =?us-ascii?Q?KjwwpVjiRKDnbmFvMfaHvXjAU37rBs2NE8MTXkmdQ0eOKP/DTItanqIyZ6Rm?= =?us-ascii?Q?diJfzaGAFGDD9o02kxgrdyBrpooRY6MMuzmxWuOrGdcBiPexbeL8HebK6RW4?= =?us-ascii?Q?qffNNejpdSoUToVGAU5VYvKm21JKYqEk/yvF+ivtNekX2rxlRTcAC/uYaRGM?= =?us-ascii?Q?On9TBfIlmrH//NkSVz8+Os7KkJirFVwooZ3SgrBBhMpzE2umcaAy7B0ig//7?= =?us-ascii?Q?3Qx+Cibe9g=3D=3D?= X-Exchange-RoutingPolicyChecked: YXK24g4WF9NnsZpcQnqN/HkuO5mzHei+M0tl0rTVOgI3vhUJKE8jP7rSOvGvWp0jA3/VfhXlhjZh5YiERXDu0J1a8hd6OVAy3S1tAdhcjJ482D9COvmwfHWEidek2HgHwKUpaEwe3F2iZSmbKXzPGoqNDeX9JzEh55s3+zVCAeNNVVVMPW6hEn52J7JEIiA9JJ+JalPFzKgBYZaz0X1ahgpXBDtg/o7zP1lc/lTrXbE3RCVQF1wUgGOEMH9XJUlybEDC9KKsc7DFewsyaAh795uoU+CEUVPLb+2+bu53ZOVZvMk9SZI9UIqpI75GmoRLF+qQuVgwk1S5doX8bOjtaA== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: z0H2nAa5zdQa3z9jytx4WyRlK1GSIQEJPtTxE3wxbWXH1U4f3aBgrRB1JFw+BWu+dgYZTNrm708zL4O0GF7xBz1xYBS/JuzlOHdIZwkd5KMlJQgVnOI5NkGkLc6l81mdVJtAC3+s/HwxipIdSMC+CgbjbUciQMbHAdrTIVdW09WLjM0M3lpvKP4xFGqlHoDpVOJSJBoJIMyHyCjPRH5g0QwwuUvZJ2UoEPQ03WxpqRZnXfSfyJQbi41AjNi1T34T0HgBH2dGkpCrk2Jv9vKbS3jWVG4vQifxeJba9lG6EbKmb0glZ2FKzfGn3wLGINvDKVn8gre06KCd89MEAlENX5luPleZHNzkE9NlVNQLtww/uKxNeEttxO3p2qZajwwTEZr/UR1fm4ctQBCDaIID76X4p3H3dlxM7NcNw6Tnw9y35kSVV17b2VHMAZEpnb468eH6KcOZGiMtefGz9Xa70l8Fvsnv04iWO0FpXvX3OSvHtxSFZTGQ/iegeVC/xB9mhSEXPUuCUhhXSz3m3YbL8vxPZwfPKvSXwUp+VyjVlyQXfbym9YJVffBC3VwWJ7kSY/HVGrtHuwyi8JRHRgtXdZZJ6aaJnpAHialRXbRTglU= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8e4af27e-93b9-4ee3-0732-08dec534a7b0 X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jun 2026 08:05:07.6919 (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: wnrmeACqgOBnFlg2bQgVhHCrkkvqJJFhdI635EVAvFhQ2+lstWGj72alEbe7KDIpf5YBQZR0cou2ZHdkqD5AkN9gX2DkT35Cc6R+NMcR2yE= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA6PR10MB8133 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-08_02,2026-06-05_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 suspectscore=0 mlxlogscore=999 bulkscore=0 spamscore=0 malwarescore=0 mlxscore=0 phishscore=0 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2605130000 definitions=main-2606080073 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjA4MDA3NCBTYWx0ZWRfX6y5NdNgFfkY6 vq2bOnxVDyH104R6nM0iKhb7/4BEL3oyirlk3csO4ZFWQk5VP2sHh+3CSwe8XlMPL4q1nL1olUU dZdxD2Hz6EzkM3Tgad8xvjpubQ4rihw8sODFDYfDb52eJjYjmhWmHB5YmsjJ0wNo/TD53DH9BTf xx5OM04iW/inNnPVNCtTmPF4onYfWcpHIURV5FwwLCT69PGhtmoShzS3hJ1eqkZ05kLNd+vU4Rm tADlkv++Be/4cJTi7U7Nrg93nNeIreZFpDp6kwObgo3ZhBFOvKgao9pcITPXxNnWQDt6iqT5Uqn Js5hngSWqbvbCz1oSu694LmWRbX2xcrqpwpnSfZxBTLSogSO4QtGfpJ3XbA3983gnONR9fRN2NY h1wh6B5wg/J8cv+cptkCeHLTDCCs0TSt3/2kfNnABapRY8BACcaVnfBk3M06VjYs0ZyLnp/x0io u/sosQQJbp/K4qNXGcA== X-Authority-Analysis: v=2.4 cv=ROSD2Yi+ c=1 sm=1 tr=0 ts=6a2677b9 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=FelO9ux0wxsA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=jiCTI4zE5U7BLdzWsZGv:22 a=BqU2WV_vvsyTyxaotp0D:22 a=VwQbUJbxAAAA:8 a=pGLkceISAAAA:8 a=yPCof4ZbAAAA:8 a=LqkqbBbWekfmbT-3qckA:9 X-Proofpoint-GUID: MycJBKV74Xi6yi50QKvkbowtM8Pn29yP X-Proofpoint-ORIG-GUID: MycJBKV74Xi6yi50QKvkbowtM8Pn29yP 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 e4e338cdb437..0ec17ebb67c1 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.31.1 From nobody Thu Jun 11 12:16:26 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 CDA8039B960; Mon, 8 Jun 2026 08:05:51 +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=1780905955; cv=fail; b=U0GW6rSP3rVpAPswd543yUdqhJZX48k09BikG/t0SRwEEAR/XxgGgPaDxy2/LQRof8MCGB58bci+hMPR/8MKm9vdjymhhTP+9y2Gl8RmlOK73KhGO7uuHAsDu7G48mtdeJSwmv8IXCNF++dyVTpDOehn5dXyEnqLev+CggdhQmM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780905955; c=relaxed/simple; bh=lIvdq2ptReGCR1ITHOBzKBm4LMVb1Gv7EaE/NdSPZUc=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=i7Wf89cO1WcaQ7mLVTyAjdu5oP1dgQPBvjEJY7mDnm0stWRoQtymVze5DHTGL+TvsjqC3Z92yg9+lIXxb+ICz09etByWVJsNCL3Hlx4vuaLeaza5e5Bew7Cp3CO6ZCPEs+sed9Zf/BBVHjnyKSgQ1Scmkd79ZNlEP1/RY5HIvUY= 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=fm61THky; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=oF13q8x5; 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="fm61THky"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="oF13q8x5" Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 657NXGJC3617585; Mon, 8 Jun 2026 08:05:14 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=tuUS0TFhzqO341CoqvioBpprDqRr6Rg2beA96f0n6C4=; b= fm61THkyLUpi0i0EjiV+LIVdmXQUSutXEhgI1f18dKYm9CNF9j1IQk5yPkliPjv/ 2loMuP/oPlraboP8aEbSPPD71tiux97ZifIFub90fY+ZOwlwHtm6aQuZ2Uzajc8E IAflwhiTDmyRfHEGRK6y1k71l3+urgG7Vrqyv3BAf/fdaNzPmqd68U8dWSSHsmlF v7IFU67lC2pXujAklywKk/J+4GFIbpCRJ1cz9TLBY/JQ2YGXzvhMWCywnG1EIaIH OJ5GR4NOpgy8BkdsW23u55u025G9lje2r2vy2K45MGssR/psClWY1tONy04bWrA+ vlbiAWErZNsMChL7l6tGQg== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4em9yba1cv-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Jun 2026 08:05:13 +0000 (GMT) Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.7/8.18.1.7) with ESMTP id 6587wNn6026343; Mon, 8 Jun 2026 08:05:12 GMT Received: from sn4pr0501cu005.outbound.protection.outlook.com (mail-southcentralusazon11011069.outbound.protection.outlook.com [40.93.194.69]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4ema0d2dc4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Jun 2026 08:05:12 +0000 (GMT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=e2ZuEyZRJA5P+sBQ6f68iS0DhPide93058/2IgLQUtjxCQJg6tqZMZNto6Gj9dqRzklPCsK5xbYboWljYuJMLcGhz/f/x6CRW2JaYBWN9tvex+JQBOKos1HvvTd3/qvifBKJnzQqFq82pj1r4K21zTzq03ty22GdOzq3Yqn41trtWa1bZ2dE2ejw6H2IvpPw9wyOtHO9QN8xuL8Bcdyi+QL4SvqqDPIC4+bEm7o+080G5SrornPbG4jdJ6i4S1TI08iAVgGujUA+eiEBv6fDSKiSdcrOfVSNQTDJAEwXHlk7H+PcCBVtM4Zb7oEW3iH/swqFoZOVwFsHOfMcbFBl+w== 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=tuUS0TFhzqO341CoqvioBpprDqRr6Rg2beA96f0n6C4=; b=jBu431SXgcmt9h4isVap4vCUlilqNRSktb/iJwMoZbMP8B7hXmvjKe3utdHnMGdRnnw3+kqvzBsFB/AIr0NToMCFP7vVL4QDr6rWDGoXXJatmgj1hnb2ATvdWQpfKGSJkqF7lJXTSptOtHt/vubGL78v8Q3WJDWkaQJuLvyyVg91FBsiXbWKf/Rf4PvNFKYoEH/kBW9hNM65FTT6C4D/8fFzFejxLme+/ov2Mr7mOwW1N1/Z5Yl+LgRoM7SFhstV1a8ZZQZTv9sO/ceDqWprN/pko/iEJzyWrAMJPrf+zLhusieJgM8zEYqyGEAIDuAC4k/bfYrIoDK1OfTC3GGgEg== 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=tuUS0TFhzqO341CoqvioBpprDqRr6Rg2beA96f0n6C4=; b=oF13q8x5Mg2UqIavop/PIyTq5HhzSIP156I6hrR/uWcL5FvCRQz1xzAu1WvykYrb5w0v10jc3r/IBv7fY2QZjYkVv8Yb25N7r/KjKliBkQKmOUODz6hretOasa0WaL43rWihZC4ZETJKeEDfoWpAdBV62ZglBejEOkYynN6z/SY= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by SA6PR10MB8133.namprd10.prod.outlook.com (2603:10b6:806:436::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.92.13; Mon, 8 Jun 2026 08:05:09 +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.0092.011; Mon, 8 Jun 2026 08:05:09 +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 v12 10/15] bpf/rqspinlock: Use smp_cond_load_acquire_timeout() Date: Mon, 8 Jun 2026 01:04:35 -0700 Message-Id: <20260608080440.127491-11-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20260608080440.127491-1-ankur.a.arora@oracle.com> References: <20260608080440.127491-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4PR03CA0320.namprd03.prod.outlook.com (2603:10b6:303:dd::25) 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_|SA6PR10MB8133:EE_ X-MS-Office365-Filtering-Correlation-Id: d1a61949-4579-4326-c604-08dec534a878 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|366016|6133799003|22082099003|18002099003|3023799007|56012099006|5023799004; X-Microsoft-Antispam-Message-Info: Dz06Qt56whGRIUEdnOWAKvkklaegLj62eUV0pfb7Xy9FuELKfpYyiVrBHSNpxmZJ8JONsLJW3N8gzY/1Rcxoo9uVzwR9GYs3NWIThqJNo4rfLG//1GrJkBhj3JTMqwa3LsTwxSTvi6hx9rOXOTGMg0H5kvcypnX4bl4t7qqO01j2bc1qJh497zpjnIsAUK226TFICnDmtHaJzkIloY9n/DGss0Zd2dO5HJOcHZDmGSObH1nZrf6PwMcWNMhoW99WDaLuDbDj7IOMR3zK40JtTDOmOekG6V0Srbx4v3nN0LWw27lU9DKv0CGag8JAY3wEuct7PQ0P7zqzhU8flwKE8YcZtCdW/SvoS2t7hMVp9LBLaD2mOu+bTdwjjjrm0qfjrbvtTcPj1drow28Q5ma9rYQBaWfvipMxHHf4atFWttR1PaSwfkXfxk1zdhw48Y3riOBFz1T1YzuYqW4nYBTGtv8hzm5o8/Du/MHt6UwIrSDsrK2Ra+lv6U81BWj6drdZaJr657OWVUIPuNwDnetQxR3uWDO8UjbiySXKBl3W+ssuXufyLXrCu2h2GUOBw9gUsq3avqitmXqjZK/Pt7uPa64CWnJDGAwebc/T+0nWn06sLXgQ+B3o4VgEoOoOJjsoNJepseNYmNgsH1dfJfYePaCVLbrSuec+HKqLQVkV3DN2HfhvPbdP09lQrhEwLQ54 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)(366016)(6133799003)(22082099003)(18002099003)(3023799007)(56012099006)(5023799004);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Kb0T0dWyankLOirU8Nk7CjxEYmI5zLfHSpmDNtfaeSF+WhnbNLIAF78cUjKT?= =?us-ascii?Q?CKrScJ++Zd3PKgV9YWyHum72+Iw7dfJDEvlWZtorkvRypZCj0auT7lh9pZ4A?= =?us-ascii?Q?tO6XlCQYNYo8Aeb04RpUw8SqXJ95DWf11PNfLJ+iHb8aA8d8oPc7SmEWbF8t?= =?us-ascii?Q?6kQm707SCBjaAl+OkCF+fIPfGNLsisUzfeuXI3QMkxb+uwrEvSDkWXLw+jz5?= =?us-ascii?Q?9DNfihJz8BCwaGlwVlxVKNQu4hKfcPS3z64kNgBSCTxaJZGpajVoaKeXDaDg?= =?us-ascii?Q?TQuem5xpCtcVv8pflHgGB8/gHeHZjS/SYZMFoqBqSptpaUiFuqTi8MBbHwm9?= =?us-ascii?Q?Re4NNQhj9dQVfZrnfoFLaz7l0F+8mac79uXClmWvptKMb/OP7WTzfpccZ5eZ?= =?us-ascii?Q?RBSSAJTFkCYh8JlPh6hyenwZXyshpT2c1sn6yhXSfaioatLY/o/f0oFMLsJU?= =?us-ascii?Q?x0Png2QUjn56b176lSQSWSgztjfdksJZFuz5fWU9E/s2RHJkHJGyQds2V80s?= =?us-ascii?Q?qsY5l81Ei8BtNsVA0nWaKvrSSoc7zpR6/dXCMMnDn0Jb7ZGGUmqCOaYL6/Wc?= =?us-ascii?Q?DttTEslaGyolWApk7iP8U1xhM012JiRhHoH0JXLRxMtCOThcPjT2e9qZSpsX?= =?us-ascii?Q?FS2UWJO+r0iXCGM++l++UFlP2wb6Qi91/a/DyWyVeuUdgi9RSOdNlExcJYL2?= =?us-ascii?Q?gd2VYiUB2sEByca/34UMmIQcJzEZBfm2M46JJntkBw7wQaf3RqLfCfeFQNMm?= =?us-ascii?Q?reWjVpdo8p2gY3kCWFQJagU5zzUxQVqzTcLSldvVs0tL4Kx8hQlP56OS5UCN?= =?us-ascii?Q?fS/9j5rAxMd/xFVU9B4kRq4dElPoJKUJfRb63tKEj3GxBIXrZsKzJS9jt6nD?= =?us-ascii?Q?5fYYbmYFZ6mcbBivV95ROgtZamppljewSDDBW4b+78PbXqISERRcsMcCPCbj?= =?us-ascii?Q?vW637H+mBuMlK+qsFh+n+VbgWNA2WqT86iw9aqKK9qpMGdmZl8YDHC967GM7?= =?us-ascii?Q?JiGGjidftFOu3QM33S88qT09GXpIJvT1opb9cbMbLQcEIKhp0XZCEEGDD193?= =?us-ascii?Q?fsc1L/dcAkqLYeoAi3UUcSuYnbxFzkKM94FaE5PPmIicqmkOxT6Ih9T5qHfs?= =?us-ascii?Q?/QtxfYn76qur+MNMXzhsywAM1YUyXwXcuCtgNi8AuvbQdHL+PiD5RmRZ5r9V?= =?us-ascii?Q?6EMYeYTo1E230B3iTjf61qpNS7BrEnvwLHkuScp4uu1hKu8WYBNbrT8PPN3m?= =?us-ascii?Q?6JVsNabil3xBqGc3qW/F/jPZ9eRdYkPMMZMNMdKssE+4Cg+XvgCxrDErx8y/?= =?us-ascii?Q?mCTcO0C41MeO9UiuwFVSknlVtxG9jqmr8ttBs6PHJp+X5MQF5nxvaSTjddDM?= =?us-ascii?Q?fb79NlDfZ7vRIKZDJx3uMB74saPdCWMl4+Xgivq5UKQ1yLvhBSjp5w/x4SkE?= =?us-ascii?Q?R5wY+dmKU8xGcjLUcBI7FvlOjW2mtsD1hqY5FmmFZle9GlNXS1Pr8JXS3faf?= =?us-ascii?Q?2MdsyLaPsgwyfUd0/sk9IcfHag6FwIn3hossjquywtc3w0EJKEdFb5W8YF2a?= =?us-ascii?Q?E/e6cwBB/es23CMwrR8ZiIn6w+xPFTG9HReuXACvtpYo8vJs06pq080Ij3tm?= =?us-ascii?Q?d5QBZxvJzhxO4QRu5289L0G+3YUSGW5JLk9mEmCummgFx1vdiRlCFT1n620E?= =?us-ascii?Q?C04fWpjnIDSdfU1tGiTdib6RjZawx7bpnQQkgNbCGi+UhXz1mIsbM1woxdQ3?= =?us-ascii?Q?TpA15y+270eCHalaqL2hLFJZDGnf7KE=3D?= X-Exchange-RoutingPolicyChecked: WxnWnijRue5QBIjYYTopiTMi7h/jCMYoSgof9TH+uCukCEsZLraHn3/1mRQnO0qff3qtGYtWzZ+Pjv6PkKCfB0vB13IHTB5pY8BpOipndY0XdZsBlPn/1EXcWibtTQAW/oixkUJiol39UZK1pcXWfRmvAYLN1CntYLHDLA3vRvFatGjqr3sbhl7NG1LG88UOUOIJb41vBhJHRiEE+BjKtTLzJWz74efogNmXY+dkOC4BW139hJKm4nnt9NSw1/f3ZAq5nKPLHqVtJhKBk9rfwotEuc5Na9/WiQg01hnpM0qntcgLpHhEmkW9wOzHqIyp0K6AVBC9MeCttzdNtVud+w== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: O0DkXCrhK8YmLsDFtgQ46tOWU13YogGePHYMHA/Pyv/B4A0MuJ/AKaEz5wX9D8JkEv/2nCAWNF9sPjSNLm+869y2rgVRm01RtPm2Kxu4LzUA5gTiNfMeNkGeOil+wceQkWNFHJ61U6EF4pzzgRFsGwtczWNbwKhCsHC8nMl1b51N1QNhcPf1z4nb7R0Vt6rjpwmqimR9v4RMOQZFw8pcwO5kc7FogVWyw2PGXICsb24+Tz6bMjE/USUqzXGyc15ildYeJYqKm4A2u+2uMOiGH7k8/OYIK2aCW/tpK9KYsHAbaHxwRqrKbBsNLEDl07HwNItVRMHOpyiwAE/PWD3NGioGnKoRyOvY0MgX9ogAZJ9aJtbQDbAt27T6Ydu3NwLVsjLOZKTCXfjpihppJL5vvBIDbc03JyoGtF4d74KAmK2ADh36BF9gPMG2sd4xSURHklt94sE9SUo/Wput5zvmHDqNvQUUqLx5zlKEUlSPolT+imjr2+LFNNL58UghucA+mRWYYl17aWZ85O02b60HN6Kx4gFLQ8pjByJ+4+sFfGy3GqtNuX79ClllhHUph4dYGXhG4v2vTy0IS2RSMVbkYAwCkglWU6rMzaissJo8tSA= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: d1a61949-4579-4326-c604-08dec534a878 X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jun 2026 08:05:08.9902 (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: 5WTafLJXA/Pb1A1ghr/neFYxgWmxi9DSyfhKWFd0hUlFkHLDvlEOslwV2wYUMVpYEKJKqdoLtGcI/+8dhT4x3QGVxqCgoXSqQGxEREsrhBg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA6PR10MB8133 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-08_02,2026-06-05_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 phishscore=0 suspectscore=0 mlxscore=0 spamscore=0 bulkscore=0 lowpriorityscore=0 mlxlogscore=999 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2605130000 definitions=main-2606080073 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjA4MDA3NCBTYWx0ZWRfXxMYksVsBn+rJ svZJ4QUnFAI1wXGvVaIX63/oyZvmw/Dd+GKp2fdxur0q4OGe/LvB83OeBjB8GlUYr+jLLF7nyag W4r51YlH2z7us50ifCQ3P9ffp8zRpx/2C1tNKegug7ISGI6C+tgIhN2oBjYGBrCYb/DD5R16DbK kIfXus2HMMapKxQnkav+GXHCVdAARTByF3tC6iuhi305nNmoYuT0UCNbuWU11UsSito4wOAJepM SzoFTXPo6M5BjQcDgYEnAv0E7kJ975g86QBt+pr5Z+CtPbKre+MD89KPrQhys+3+BrOWHsKX+nC yDhAn3W2FTYuXgP4BjtJ1c8DuGNPea10ZMGQ7rKT+IXRxTAw3kA7/7Bws24n0O/S7RuFUKfTLUI FF5XB0YiqLtrLgl5k2ijb2N0hKZf0rfma0l+MNAdRqy4plkcXLantvt9FD5P+MvKeRBxHClwWkl /qdARnp0oQpzX8UtmMA== X-Authority-Analysis: v=2.4 cv=IYK3n2qa c=1 sm=1 tr=0 ts=6a2677b9 cx=c_pps a=XiAAW1AwiKB2Y8Wsi+sD2Q==:117 a=XiAAW1AwiKB2Y8Wsi+sD2Q==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=FelO9ux0wxsA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=jiCTI4zE5U7BLdzWsZGv:22 a=x4eqshVgHu-cdnggieHk:22 a=VwQbUJbxAAAA:8 a=pGLkceISAAAA:8 a=yPCof4ZbAAAA:8 a=Ru_WXoCZngTtvYUXGSoA:9 X-Proofpoint-GUID: 3E_6Sd97xRGSXh2E6CCl4MwagLpqe1au X-Proofpoint-ORIG-GUID: 3E_6Sd97xRGSXh2E6CCl4MwagLpqe1au Content-Type: text/plain; charset="utf-8" Switch out the conditional load interfaces used by rqspinlock to smp_cond_read_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 non-arm64 as that uses a waiting implementation. 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 | 40 +++++++++++++++++++++++----------------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/kernel/bpf/rqspinlock.c b/kernel/bpf/rqspinlock.c index 0ec17ebb67c1..e5e27266b813 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,17 @@ 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 not superceding ARM64's override. + */ +#ifndef CONFIG_ARM64 +#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 +305,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 +328,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 +424,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 +587,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.31.1 From nobody Thu Jun 11 12:16:26 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 E10CA396D2C; Mon, 8 Jun 2026 08:05:49 +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=1780905953; cv=fail; b=H54qTOIgp4b82iebl2nwYLwTgAfglnuoz3oR+b52sr+4yMSV89NYdxE9vYz0A8sOYxFgOGe9F1ZX2elVKuhpucfI9MvI6Soe2NlO/8r+1XHp3wNMi3q5xp1ppdx9CI2DyXx0syJKeGDjDFlQryfmwFu8MQHUqBn7n3sgLV+qi7M= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780905953; c=relaxed/simple; bh=PFT5rG5/F+SHTERKtv0STIs3QyoahP6Kvg5/BO7yjhw=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=kPSh2ce8tH9xfU+rOHZNr5OicceIa+TjRWxAb6K61pU+rk/pU7yjqa1wozlHsnG0XfnH1wZwlvBba9nDOe5vr1KJrmk+DTO0TgS5pGT8WvkHpoyVzGcYo5n5jtlw7Gj+davrZZgu2liUpqW9KDtMVFnxNURlwP3UhS2UywXA4Tk= 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=aSJywQZQ; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=XOh6b+rH; 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="aSJywQZQ"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="XOh6b+rH" 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 657NNmh22141400; Mon, 8 Jun 2026 08:05:14 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=4Lg9Ao/NY7+O+dHBfbLTCASHr6xXDLmXSvijPaYixZc=; b= aSJywQZQiQ12pnDebGfNk38eUBIZQ9ti3RdNztawf4WmrkLr8L2nNlvY3F+/s3Wn VcvDayst3L2Hh9gOv4AFIhgHxAKET5duw1oR3JUYeoT9jH4OVZrYmXynM/IuEggP irnyzRQCcZBkYAwvqTe0/tJQ86opRNKU4o7GT86BMg7CQSz4Tgkamyu71w9HhHTj NB1+xUORKq/MrkeX59EadQBYEZql3IXKff9bbDlfpDPvf4l8vR5u0Ne4U0SzHts1 TL4R06bCfp8wrdyCRKDPWZmR7JcUGJ0bSmu4EYNmdeX2WvZZ0iAGsq7PkvGQddh+ mPLufEokfjFqtxvfcKLhGA== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4embkja0su-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Jun 2026 08:05:14 +0000 (GMT) Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.7/8.18.1.7) with ESMTP id 6587wNn7026343; Mon, 8 Jun 2026 08:05:13 GMT Received: from sn4pr0501cu005.outbound.protection.outlook.com (mail-southcentralusazon11011069.outbound.protection.outlook.com [40.93.194.69]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4ema0d2dc4-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Jun 2026 08:05:13 +0000 (GMT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=MGsKWrLtM7xjleB5lMlgXtQ8rAL32Hsssz34IjJlRpSk/A5T35/nJFrZG1Gw8Y5jCFn9TPn/mqfnUHRU+bGGzq1QBEn4s7XpUp15xj+z3eOIEScxKEdOKN40uik78a2qKSdQ9Ez7pLug1KulcWehlqlLNgdpt4mkX3TEsY4yjHtJe1QmlVfBCS6Nw43Bs8YzqeCZUHKmdw+/bHfoDLTVvO6qmAOx/hes7bbHl19wWovxKtK5HhRwuTK60MaOlEcJYXlao66kIc4lDFcUvyiJAPIEbyw4l0S1ZHPc/H8C9lQhfUOFrA2Nz34V2QAmE80GAMg1s6JmiKBVq1FaEuY6AQ== 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=4Lg9Ao/NY7+O+dHBfbLTCASHr6xXDLmXSvijPaYixZc=; b=eM2ZOni9Z9xxptMY+/I2WlUkv9Fa3QBhUtaMSA4dVi8BzP8mFEVx31tvboAsiMUvR20gQCchLyceMsAPEXM2RTMiRoMEI8GOi5lGArE1VhPjFwj0bmAP6DRAFrwCSZNwxbHJoqNWVdEmROr2jFvT3tDRCUAe6iElI7de00Q0iUer6ZVhnFGTOaXIwwG0ql5QmGyT+cXbcecsqMMjx+C9eHg4l7bnKl4vlurYkalSje2OcefeyD8J7TXQVYYuje6WlDc2udWA5+qAkGOrk4uGFQnwSvAi2UwCNs10zz4H/xPGwz28SzT0+N7eAPEigTeXonNa1pB+w0f/qlewrjCu0w== 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=4Lg9Ao/NY7+O+dHBfbLTCASHr6xXDLmXSvijPaYixZc=; b=XOh6b+rHmyD3s7cz6JaOpOk7c1u/mIPbYioWaWSv85X8r9OWGX1v31naWsUq5WlMPMCcI+SLT8zdc5qrp6idzpb9/NvPXnChI/zB6TswlRY+8sMQHCQsDV5DclaWL0UDXgz6XL3Vf1r6iyUl4NIv6S7LZ+wAwxRv7ToB0M8WXAE= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by SA6PR10MB8133.namprd10.prod.outlook.com (2603:10b6:806:436::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.92.13; Mon, 8 Jun 2026 08:05:10 +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.0092.011; Mon, 8 Jun 2026 08:05:10 +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 v12 11/15] sched: add need-resched timed wait interface Date: Mon, 8 Jun 2026 01:04:36 -0700 Message-Id: <20260608080440.127491-12-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20260608080440.127491-1-ankur.a.arora@oracle.com> References: <20260608080440.127491-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4PR03CA0324.namprd03.prod.outlook.com (2603:10b6:303:dd::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_|SA6PR10MB8133:EE_ X-MS-Office365-Filtering-Correlation-Id: 30e842e2-7f40-4444-a32f-08dec534a946 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|366016|22082099003|18002099003|3023799007|56012099006; X-Microsoft-Antispam-Message-Info: N+C3IwaJiY+C7MVvXET2us35Zu5xxRrmw8CCwmefpGP++nz6iEQTW9N/ERyVpPGcNWDEJ0J3VhezBsQGJqJd64ACQweBP7RIG2ZdqEvbjW3p35Z7KbxJgKA4B0Ibkkm/+YAXX5cja1kVWcuTrY/FeJVfJGr8uS+gGUanKWG4yQC/Q49CNue/jlUKg77QshD974fYmKO0ldE3A27Wc9MzQmNxUeYBXDPAGSW26wjJvnFSDICCGSeZJyhkPrCI/WZ9CpJLq64WMlPLKYfsOjYXpjlcTL7ooHB/i21tUZoHBM94ur8h5rtNOyswJIhnPo3ASxf6+HktQQLjRpZm97aCSHYuLJAD2nLIWs6ddVUECEP9cQ2HiCAxL4mhZqSTO9Yvz+xwCTnEsQ6RtfFMqxoS4GJlZl4joMSS+p+F5+xeNS/jOdVo4YSkdDdosgoph5bnZBKhr/qvesAj9KF26o/SB5FtpzGYxlw13Bz43gpGFeJmAE7oKoCv7Rz/qJa04bvibNCUraeIoTUqhUlzMjRKL6d/AP17GlWa4TZQGiCcL5czjpBLQ/tuH/FWwJsCI1Ium5ntnx+cMqM/WI7MtaMxlDfFKOIPs/Hv4ay+5mb5zU5aBMTGL/0cYMdQPQ0oKprzW1m+QGhug/FnEYGAHyX9KLLU0W+pgEDWPYQteEE3zwxXuPMStDBViyCTju6zQ5xE 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)(366016)(22082099003)(18002099003)(3023799007)(56012099006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?EhTpAG28KBrSweF4/NnReSksK8jpQms+queBqWk1h0GhwXUuvLeDkrIdd/QF?= =?us-ascii?Q?YxZBRQA8/cSiI49KKBO02P7+LE4xtr+Ld64gdd7lXg+aLnOs7bqkLA/ovyvY?= =?us-ascii?Q?9vlAlhjCBSbNWzroXHCPb2CeVxz70u7ueghOfHytNfSFLIZkGzCtr+aI5PRd?= =?us-ascii?Q?CEPO7KzhaZE7qHomVoh6yy6+5n093vziyK47KXNXDlPaapnZXfL2Zi3KpfHm?= =?us-ascii?Q?jJl8w2qbsCjppVv8ieIkWwGYKc/e2BMIX5XDNDS3Xbo1+K6LvA9M0cIq/9HG?= =?us-ascii?Q?J0Vup6R/rHJM1gEua81yj+00uKXauyP2yW7HwKms7y9KFPryEjR1BN+KiQW1?= =?us-ascii?Q?pwmX3l7gaoHRRD7omhW1Bqqhx0+dwp72MMcLDhSW5+choxmqBU5Z3hqIy3af?= =?us-ascii?Q?i4xF+B/EopkzBGSNvcXzjW9bWV4aS0fLEwA0n4dROfLEgzd+/PLLrS+n9WpE?= =?us-ascii?Q?Lb+s8pdg3AWFLTVySj/Uzo42kH7hpquhRh9SECA88TLNxFWGPu2IL9FHWJbx?= =?us-ascii?Q?aQ5SaHx+ZCWRr+tNo49ghrqqmTz+rBBaqLhJEm17j8l3v7B5/n79FeKuN2hM?= =?us-ascii?Q?q+hbPtMe5SCeaDyat0F2FSm2B9EvjGlYJIlaVS7MAIITGqUYeLyzhTwe82P2?= =?us-ascii?Q?5MwYznazY1bdtHCqVvyYuXW+5Fsua/TF5DyUHvQWWQ7b9MMkdUKvJhyAjZsN?= =?us-ascii?Q?z82l552Vw8WsQOUPBNJEg9vFIvT7sozGkF5jqgz56OOnRSCxShkDRJ8HnmOW?= =?us-ascii?Q?++4tQgvCLkafoHyN9jneF5LZIB+p32eIbJJN7YRC8dqtKZigM2elj8zDqCPb?= =?us-ascii?Q?ndONsYa7TFbghBeB5pt1SLP31Sk80VkTckkZKyYrPJZImQ/GkteCDLc3/qsG?= =?us-ascii?Q?JeWkq6iqAz3RWZr2Rgn1OkSzoqaH7vh1HiXfrC7/lP9vVcthw+cOHJGUMkBX?= =?us-ascii?Q?3OSAhq6fTK8wcnn4Sz7xuaKYWYD9rSCWN6wdsrg4c7iA+4zmfeHOBNjQHDbl?= =?us-ascii?Q?T8kd63fAB+o37BJe08og6YCKa8BDbGQOk/aaYzsBNdNmRQlvftI8WqH/Ws60?= =?us-ascii?Q?uWzC0DT/buIJRH3TV6Ch3QLHZ/tnhWT/JVuvlAp+H6bEztXuZspN2gwHbNuB?= =?us-ascii?Q?50fy+WkQH9JqY2CjzKW0i6wSTmd7QnsJubZX34245Ptj4RrRBwYewc6rRX1a?= =?us-ascii?Q?aOu0Ah7cTBQA5Vwx/rWvMCyOsfdv10ZwXCIiM2LxzWp9Cb+WTeDj70fd/Isf?= =?us-ascii?Q?DUYpXGu3Jdk/UYn2LFIs+VnbqQoYPSRo1KhlT6+6lC2JS9a55lgJ8EuxvGSW?= =?us-ascii?Q?7Q0d10k51dW+CT3rckvAkrMzdc2BuikvKMC/VTxQpNsWKJ//i84HJ0igFoFu?= =?us-ascii?Q?9D6/qh5evYsTQgC21g6ocZdShs9IsbSkIYTr+OSpEaExcBfYVUgvB20FMSCH?= =?us-ascii?Q?dlYhrPNWel0Pi1EuVhfmvudlrQAik7rQM3YvGExr048CWWKAdBlJx8a/RAsu?= =?us-ascii?Q?obkzS5JLd81rvOA8XJbQ3whliZV8mwxdoQhxv5YoeRPKzuFK+T/afLrzKDkz?= =?us-ascii?Q?8AsvWg6f4aoMkNMgjkJ+oPw37pbvfZbl32fuzaImZ09Ga/vZgpAd9C68BZiu?= =?us-ascii?Q?avWs926/blyJbMSljsnAIISlV+w1a8Yvcy9TsiWwDMGiJ65JWCIiPi3MO8Js?= =?us-ascii?Q?DGKjQyOGihv6hz8Oj0rv8d8M7UMnkVWB+Ybn/Eqx2komcj7ItpJyt+mXGjt8?= =?us-ascii?Q?pOHBpb77Dl1ruMj9CNRonu5wsmZrhNo=3D?= X-Exchange-RoutingPolicyChecked: RO1m8x9UyRQfpILeC9vzwhf79kD174PupoYSgjOkUCtJ+OYAdNqp4P14T32pLzFmwSQPQuIgHqbo2HRGqBNXLEFn94iejWRHT9G6VBZV5IlWixy0hhoIyIfBx1iqz2nJvhieDwpQvadSsPrkYcMH/AQ8MEDLgMiJenF9pwySQQDRLmJpmZJS33DBzO6O0uLKK/w0PQDlIekwmRFNopTFGSNcUT9K5FLtbz4r//pug2rDFn6PjtTnNevu7GskyPQXagT3l9Zi9W3oisbUuWCVL5n6bLeUjQeV9xjKUOaSe9c42aR3Z20baaz9Kp7hxOt6szc4Efh53TNqL5t4j4RBrw== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: v8o7YMb7ylnuUlaR/YCpspEYCU3CHYwHhMRKVEpoNkRxsCFVV2xzzhNAN0hG86yNRNa9BI42bmnpg2FHekPYwK0iRoSJg7sAVODKn/jddH61jUc+4lp1go2CuPNTwVtoPdXq8z3xy26rY1H5i+/LB+7ziBSHRFknIXbh4qjCGCGJVO1Xx5NKQ2Hx2weNsWw2/NE4G6qrgdoth0u5CPHyxcG/87U8HdLc2Hu2OKJX1i4FXct9nhtRemu/Jzj5aq1KmvqN9/6pEwjiCYi9WuMRIatrRCu71wl8VDwpLCNNwCtohiNW5A9wZkT8xaLU8EYzMC+tSo4Tm1pmx0k6yhzbN74gkqT8WnslYPWCrE/BC6UnCv53psWKJTBGijMynq94M+yJo2Uv/ZSkkFkDic5DA6rTiTCJIl4zh2jTVfqucaBgsR0DP5sUYmyv8enPNCSGQFBH5RWHDueNn9TcjtBDpvIBitnhFIhe/Wmyp/vaL0VCfKJ//GC2KkvSXaTDbm7wdkkZa7XKr4HdUVzNpy3tMuNv8qTj28NWkvZckpl4vFMqG5Vd+GfrJzl24Jj74Qm8mgn6AlhIqbyaJLuVnTRhT2lOHOsdnRFOQ1PnUVSeg7k= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 30e842e2-7f40-4444-a32f-08dec534a946 X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jun 2026 08:05:10.3398 (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: fX4NS6SlJd5NtdmGF1ZSmbukmvwpLs9MoEfyZxpJWvHOZQCMVCPvHsEhLd2f/SOVCIhMwfb30Jc/TKJB2Vt/9cOmDm4K3+Xlt7FsskRnvjs= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA6PR10MB8133 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-08_02,2026-06-05_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 phishscore=0 suspectscore=0 mlxscore=0 spamscore=0 bulkscore=0 lowpriorityscore=0 mlxlogscore=999 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2605130000 definitions=main-2606080073 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjA4MDA3NCBTYWx0ZWRfX6bg9rPY5GQk5 wmBb9jMZaofV2ImBPg8vVSOqG+L4YEhyWl/uQB0qmcogedgB95m2Pu9l7IDTww+U4GCoF8Ycf2J AOCZ3a02TI/16hVTkM325wEGhbEfPFnz45JEL4cCRf9v9jSRO6VRdyhqKcq8TbgacWWVu2374dC F1k2beEadNmLbxTBBAnRoxPg3hWc9Stg6XFCCAcmK1G4vjtIEOjm2L2DTH+D+Mx6csen+tmbT74 vQzoL/3F39DB/U87cmSa2yyo3pK4fmh1NH6aD2f2z5wm0hZXZfmC5Qz129j8ntHq0g5tYL+ocAi r9IjKyXFIG8Ov0rnK6ZPGTDBXQebKCBpv+rNgQb5tn6NIlItygtoVYymoFYTNt4rK9TJwim8lr0 h8+bGBbV0gt7RRznxKUWRhllyrWoTEKMHz2zjW8eHHPjQez33g+jeDaizUXJqgR159JewfWaemB Bwdb8ws6eZZrA3jcqHw== X-Authority-Analysis: v=2.4 cv=ROSD2Yi+ c=1 sm=1 tr=0 ts=6a2677ba cx=c_pps a=XiAAW1AwiKB2Y8Wsi+sD2Q==:117 a=XiAAW1AwiKB2Y8Wsi+sD2Q==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=FelO9ux0wxsA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=jiCTI4zE5U7BLdzWsZGv:22 a=BqU2WV_vvsyTyxaotp0D:22 a=VwQbUJbxAAAA:8 a=JfrnYn6hAAAA:8 a=KKAkSRfTAAAA:8 a=yPCof4ZbAAAA:8 a=DC2jtUcBNbVnd9lHvZoA:9 a=1CNFftbPRP8L7MoqJWF3:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-GUID: -7TzJiW-1zjDDTAdkG-Cq6qV4IIA7gDc X-Proofpoint-ORIG-GUID: -7TzJiW-1zjDDTAdkG-Cq6qV4IIA7gDc 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.31.1 From nobody Thu Jun 11 12:16:26 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 00D63395AC4; Mon, 8 Jun 2026 08:10:51 +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=1780906253; cv=fail; b=oO4PXL21Q5H49nkSvGr1eoUllHICu0z5+4hRkNUnGeToTUunIKPC1qZsn1mzpZCJ2BfEbk6vsf9BeRg7N+DgVyUqvsnKzRDjs3UOMcpoeMN6ly8EOrWcxLKjdssz6LBIyRe0rNi/5EC5EJ8d78mra5k847282Zcyx159QkmEllQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780906253; c=relaxed/simple; bh=d4gRDdvJqMFSUTNxWZNeK+fpI5wn+nxfWjJZLthdJEE=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=kEMo0RXI0jHRnQOUbxeGpM5RwKgboiBI7fFYn4Yta6Hdh8ItilCWm+7cMwEuANyMpu9QKhEZ1hV/LHc8Z2LBgw2NV3ifzYeAJJTnBjJ6gpGhOOJMv6N6r8zBWnh0SVQ2jpyrjWh5n//FV7y5pXAyGIT6zT94RWSw4MJ+JbrfI/k= 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=XvigtKoK; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=OgdLJeBb; 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="XvigtKoK"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="OgdLJeBb" Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 6581KUkY3791268; Mon, 8 Jun 2026 08:05:18 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=don0OFfZ/7DOC6BlzY+fDiBURFg1EnbCCjhr7mhLjyI=; b= XvigtKoK/LURfnUDItpflNkiB6dANLZ2m4uBGAVpsFXw8HLNVFaG0A4qcSdcBcQn mz/MJmrAR3fD507EAswb1vZxCsch9Sqydx8BpXD2VWKzs13dXeH/E7IVvEmPPkQq UtYgTyuKW/7Q4y/TZ6mq1yBkPYk1hJHug3t2vJsPhIgaMrOQb3MW6KTr4VZbxCAL NPviY5c5bxKrX+RRbLCvjDjQ13i+ndA+WwnC4lnRGrGbtAw+yK18xpTCKQiF+UyX NDdZKgdm72VXHsHpTl4xoQTfLSvhseBubJ1YeetHTmn9CH63AmOdBMDzdNWru680 9AcAajTpCPd6eI2nIqy+VA== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4em9yba1d1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Jun 2026 08:05:18 +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 6587wTDF005914; Mon, 8 Jun 2026 08:05:17 GMT Received: from sn4pr0501cu005.outbound.protection.outlook.com (mail-southcentralusazon11011013.outbound.protection.outlook.com [40.93.194.13]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4ema0nggnh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Jun 2026 08:05:17 +0000 (GMT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=pc1qEJK35bMI52AVaJgq3SCt1D2VAOUBOT7G0xzTdjb0sdmQUOfOgaKcVXks6hLMt4EyzJFlBgQzZe3LVzZ4cUDNe3dadgthvEKbKZV5RTYMrC7nFov2XQAIAMXutUAGmU/xuOpRoClIFMNaqKJ4gmlq2OIwYKqt8seEbjfZkDaXAcYXKBoMVLtpEbMmgVSfVyOPjRvWbSWd1Aiqg9/Yu5Wny0ZiCCsDSi66vsqT8kzHU69ieZvzL0ReKfFWHMntFOSOHtvLYxNQuA0GH/pczkE9ADch+BbjaxGo28eGQQ/HnQ4AsUcMscz6+QfvGkI6kMOjCToDhdl1BqYtrCyrOA== 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=don0OFfZ/7DOC6BlzY+fDiBURFg1EnbCCjhr7mhLjyI=; b=Th8yQkJhauGZw+ptyvdAR7rO6kuZ7o/5VRUAxzLrP6aO2fiHnUBdFbaFsSGFzJn2vG1YwnBmVKUf5bZOp6vb1X48+BH9Xs7Rcn7ZEN038e69zmJM38G/1rtPCvwReLQA9W5mqn0McOCjO6Me1wsnIXII0dq9z+jhft6uDzrixqeJ4hlsF6DrmfLQE/vy1U/smFpZepy7ohmW8XFcI+PYGJVJj6ePJ4vg0uyCIWfxEVJU0C/I44oXD4wo9lc3WutEiG48Y2Ih9/NxJSJPpO/ZFtkgJj+6DPiSWjdSSzqefXRSrmT/w+BNn5RCqBi8Q+uxREe/+OQOiVt2hRM2NRJVVA== 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=don0OFfZ/7DOC6BlzY+fDiBURFg1EnbCCjhr7mhLjyI=; b=OgdLJeBbhFPJvkHgqFEAkbjUlSQc/bcY9vKK4MGDlRiyl1Y8jg1zwzeKiaFMnYw9MB2r0lzVgkcjP33bcIJ/SJ5TU5ZGrldvFHzcGMMTlVPOi0+6ggP+UZR3OPcE3upYbP+6MQjOYctKG2sqBRx9G5/LhEZAhgV0ZGvTC+BEaFY= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by SA6PR10MB8133.namprd10.prod.outlook.com (2603:10b6:806:436::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.92.13; Mon, 8 Jun 2026 08:05:14 +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.0092.011; Mon, 8 Jun 2026 08:05: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 Subject: [PATCH v12 12/15] cpuidle/poll_state: Wait for need-resched via tif_need_resched_relaxed_wait() Date: Mon, 8 Jun 2026 01:04:37 -0700 Message-Id: <20260608080440.127491-13-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20260608080440.127491-1-ankur.a.arora@oracle.com> References: <20260608080440.127491-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4PR04CA0360.namprd04.prod.outlook.com (2603:10b6:303:8a::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_|SA6PR10MB8133:EE_ X-MS-Office365-Filtering-Correlation-Id: 3dc61c38-3164-450d-e7e8-08dec534abd6 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|366016|6133799003|22082099003|18002099003|3023799007|4133799003|56012099006; X-Microsoft-Antispam-Message-Info: mhg9UmtguGePSMBogRY+CpN4sYsZzoyMltQMtSzenxJxnOZkwFm2etLvffzQqcceuqXMotaspin7asct6EXLVVqRokNDZjSZd1rs0Lc39lm+OvwxmSv0i5X5cmaxd3lwi50Yi/wTdmHuQVP46UHZLJnNVzfiIyJTvVnDADARwVnsOpoGtAn3L2612dN1mFtVlqgP/RnhlLTOORnuBTxfL6BcmyHN96cvQld/ofQ+R5JoYSy8FTfjgPu2Yn5eJc9N9LuPdVC4RQV02pB+FfhMwaUGd2r9jFdwwO/nkYePfVSyoZMDy0N5mZS/ktUZZs7fjPJaUpX0LJdFRO7v9he/XZ78GqbHhstSQdQKoYs7PgON6arIFof4TI6hnjsg5wnAKidhxOzUmYoiOx5v8RaVrAwDeivrzx75uD8vjM8G0n+Mx6NYrT/gNkjdKf25QWxK0hXYF/n1R8pD22ABhvaQqB8RO/oQJkIIrBGT+c6UszVR/WIbx2igc31jNe1jDxGORg57ODYDgy8sk1Pn+sxw8dmKPxRnrUVSayVp+tkGCsqYi8SGUt6WK0wo/mo78RhG0btl60lF7Y2P5j+R8v6TcFCXOtWWwrODRjTLQ6j9dd/L7c+O1GVTswFszDNArB2wjc/qcdBK7LPrkcNPs4cTIA== 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)(366016)(6133799003)(22082099003)(18002099003)(3023799007)(4133799003)(56012099006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Wkl4SKc8fvhUednYyKb2sX4BeYamIqx1s0FVKMmYObvJrUCx5t12IkQxqT+r?= =?us-ascii?Q?miwLwfq95zdHkFnMtnhqB621lthNkaSaRRKZZ8Or3AdIa7ze3eEoY2dQUIJM?= =?us-ascii?Q?0xBYGtFDtwrR+u2setqMp8vGn3zrUQDTK2pgllGjILwDEWq1Eg0inSblNfBB?= =?us-ascii?Q?2mEXTAJ8qzK3RuO0+S5QtCp6+agrGR9lpgkd9TN2gXh7QqMaqpMI1oOdCT9k?= =?us-ascii?Q?rSG28rxG15gHJaeLoSdmEOQ9qNzVPiUGqpyZKeKcFWH4D7GM7itQaHgcrjzE?= =?us-ascii?Q?UOWwDGjjgXluBAJd8A4f2FNw1qF+dmwOlB1VtyEsg2tcVM1H+hqSrsM0PFJD?= =?us-ascii?Q?7ku9ZakuihxH0BHf15TsTCh/MdJ5bL4u+NHUZ83sYckZZtcQdzHiB44tLLoP?= =?us-ascii?Q?PVW7Mt+nd+pdlGUWd3QYKyovuqJVV6ycJa4zRONT7xtoUN1f4XCzz2nvAEOJ?= =?us-ascii?Q?o/NzL0rgzM2Nkd5N/IxHKZgDE7tH6vfCzAOrFYnt2MQjTZa6o+J7pwbIccq7?= =?us-ascii?Q?2dnCO2MTbaVojNhC8esSvRhKliqtYUfFWohdu3hUkl++rMNuQspRgWP8EKwi?= =?us-ascii?Q?CKlRlFnfyjTJeae1z6/ciRwdXsSD9cFmQXnlQjVu13e61U1OKD73pUzIsMUz?= =?us-ascii?Q?lZnNfqJwbx5IQJQmYdL707Cl5KS7jCLmPZq0XZ2OBWFVod1W21aTUk2Ox7YE?= =?us-ascii?Q?6igGWjr1e9hiFLRfpqPfAxj8sPBTBaRT/Sv6ZPPIvMPgii6UMGTgigdZwaTv?= =?us-ascii?Q?mo8SU/wRVZHWLWF2Gf0bf26y70xEgECFkfEKJiEkEVMjt+4Ue2T7ZlEP4ShE?= =?us-ascii?Q?K2+UwGhE4t9DhCvERy+Ia/fAYZEzw0poMQ/eSQaVPH9G7up5R0ljGSffyjij?= =?us-ascii?Q?Y1mt0QbdZbdzT0wl9wlYEEZCEKaIpAvA4s6Joem60dYgo7HXhKNSD18rCmFE?= =?us-ascii?Q?XiZ2YzomUHY/+2EQLKQZJEvdnMV0ZbhVH1e/ZXh7A4YTmQ/l84G4OAvof4La?= =?us-ascii?Q?OdssDA2unxID+VtBTZNoXQwWFRKZVWsSqJKfQd53RKZis5f2djiiGB7FQCuN?= =?us-ascii?Q?q+dQDNDqL1iUBPFw3WeGCgxcmgHS4im5UzNauBa+k/7vJmOAAUL+GmueQCt9?= =?us-ascii?Q?d2DV7gRFNT+6/R6ziHjfSq59QP57I1AoA7w46DR/iLZhneHgsLLhPL3cxUUW?= =?us-ascii?Q?s0L802gyz/ERhqtdfxlBEzo+Cut935bQL45XVFUDOAjJP9Ja++GoY2cKdNwU?= =?us-ascii?Q?BPUHImp/23DPUvn5ulCxnXFn3BFs+wgReU6iMMqzjXK1kMmn3hKgIUgukxWq?= =?us-ascii?Q?45z6W8cCE0WRfAeQj3Che5Hl28cU0tfA8wyihKnqZ5lahOIpmvf8YrxIzsQp?= =?us-ascii?Q?GnkyDTOAVmgOyuSKOzfu9IRzqMUv7JFJ3/LgS62xcg6+g+J6GT4B4jRpe2PN?= =?us-ascii?Q?5W80FAbmPZXDYcx9Aqn9HX0TEsLgzDQK2CBPlttIgbuu5Q9k+DuBQ6A/wMMn?= =?us-ascii?Q?PSyNrK3reInxzlwX/27RqfnHrxoEFWDL8iptt8FCx8yB/u0No7A2tqSCAnfb?= =?us-ascii?Q?gk/T74HtiDqazkqxZn6nL3MzwanNgnwCcfBJq2QHdFge/mT7+IJZ/8tiA+8D?= =?us-ascii?Q?4B0rxF57Jvbq0zMnEI4FAPDbOhZhvwlUlqSltceiNZNs8pkoTQnbOaHfqLOe?= =?us-ascii?Q?HM2yMnUyXtS24fuqxzNhCKkL0FHkxW+cZoY5eGt/v+VXdA3r5rMZsipXvzqR?= =?us-ascii?Q?rSzhNXx3aaW2TMidwWzmVmj+F1vgICs=3D?= X-Exchange-RoutingPolicyChecked: MxvJiuSpn485aG3zxpDCJuRmOCqze/DkRBKrwPif8ps0rbfvq3mTp2R7N5ET6P5uL/CQQwzS4Ple3sJyAfWjYRVjrdcGZzMam+n8lWz77MHe2tSmJx/Fman+Dsh1tFPvUFYwNhmOBRPC4EI2a1VpSJKQMBUlScCXNyycesqHbeLv/iMptFsj4TePZlbMNAT+vPTIS2vnkkaqClxXW+7ShsniUXPrXPXbRWlW7lJHitiRA1czL9p/9sB7djC9mBZfbdW2/f1wDMNLbm55Bv7zhpelChM8kWy35EAAzDfPgrUAINg12oSA8Ibb6235RNDeqzqXHHp7lxhJt3JYT0ykRA== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: yJU7qX0ml2oteEiy2ZCXpX0VOCh7pp4Wxf6MUGwk81V+UAe4NueQfZC8m54lPnIN7UDLidd9JY8z/dS1fnAV+Pp5zO6tB1tJsuy1WK/GmuBnexRfC9lakOVEtXlhOI3hN2Zx2kDXEGOJb0J3fxpxH69JLpmdfWXZIz/27B+/s9AsB6PGvbbOGWQ6lmQ88uFNpGeQRRKv8gf5J6zvaiAgb973xpi5HAo/QLFJ9s+2Eku3JBFgCflmJhOsjUnfXWAcRmPxLITSf5jsRX7d0qFURVzW7j5fRTLBOU61cdyarZjVTJbff4rZaAO0b6++UALOaZFXtLst07xL3nEukLMGkb8KEpyVo/RaATbuVcXl6/QVJhtD0mL6pelRCWHXFZYym3GHMspMulWZ+gN5icJhZxWdVrleRCXDCoGGBLEPjAhox7scz+a0pDQrvzwj2t6+J8LbCgBC77FAgcdp/LeEpXLQ2APxpfCT4mV0cr2O0awD5lpl9zcaMAhc7szQlcwr5V+sfft4+s0Y9biw4oEJHwv0Il7XKwFqIX8ymjO6vXa4f8qa2Ac80dpVlBrQe0hgFVD+LspqQU7peW42nq7WCei2ES/aiBTj8soIFqhDYz4= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3dc61c38-3164-450d-e7e8-08dec534abd6 X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jun 2026 08:05:14.6376 (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: 9fbLXDvl1nNOjnKPls9/O3L2wxTliSGaNyKM6BIgksCRedf0Z2/RLfzCyao4nN5tXrpdLpzrKd602cFJm9cLPDgd+EVcT9Aq8sKMWn28hZw= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA6PR10MB8133 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-08_02,2026-06-05_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 lowpriorityscore=0 spamscore=0 mlxscore=0 malwarescore=0 mlxlogscore=999 adultscore=0 suspectscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2605130000 definitions=main-2606080073 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjA4MDA3NCBTYWx0ZWRfX8UrGvEoNXnDt dhPPquFG/kLrlD5SbeRhoaKuvcHl94cMWo4WqP8sL8GwG108RWeeBDzl2kZ46MifbuFkWx9UPjZ nzpfGwfisicO9h2n4H+XIN9c6nQiKpKv9D7YqObiY3v2GkSbqT1Eo6xKvgVrcdHkilkRqC4WeAI Zs51W3GPzmyCaCD5G3wi++I9BzGm9COXXozRjf4gyFbZZJjY79TPgw27lfciySPu7T3DE7g+gB6 pOhWQs7iYTlJFrj3ilsz//tj8MJW+qWwP1R3DlZ2CWCrCqUtlMQEgS75+EZTkOSgzENyZxQ1m5j mk7M5LpGNou1Kin2MW6tHDDsO0t4G+WFhDUGfcrraxbzssgInpUIYcDN4yR1rpfvHYZP96nEgHF 2z7gnnQPO1PrEqm4OVpTIss7qPOj4psO0Cdd6BzU8s0dDDYt/AfLKDl9LWhLn1zOT71j8Q99rwk jI+X8sQhe8om/Kgpk8I2RwA931fiors09xfz0ZVk= X-Authority-Analysis: v=2.4 cv=IYK3n2qa c=1 sm=1 tr=0 ts=6a2677be 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=FelO9ux0wxsA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=jiCTI4zE5U7BLdzWsZGv:22 a=x4eqshVgHu-cdnggieHk:22 a=c92rfblmAAAA:8 a=yPCof4ZbAAAA:8 a=VwQbUJbxAAAA:8 a=pGLkceISAAAA:8 a=KKAkSRfTAAAA:8 a=vggBfdFIAAAA:8 a=7gr8-LgUhGOHEYCj_R8A:9 a=GvGzcOZaWPEFPQC_NcjD:22 a=cvBusfyB2V15izCimMoJ:22 a=5yU3S35YU4bGjq-dph-N:22 a=Bho9c0fBagfJEIQBS7DQ:22 cc=ntf awl=host:13723 X-Proofpoint-GUID: aEQc16x1jGYrzvdOn02TMikBNYltl5pn X-Proofpoint-ORIG-GUID: aEQc16x1jGYrzvdOn02TMikBNYltl5pn 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_acquire_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 --- Notes: Sashiko notes [1] that lazy initialization of the timeout deadline will cause an overshoot of the wakeup deadline: this was discussed earlier=20 and shouldn't be a big concern [2]. Cpuidle ranges aren't meant to be precise and in any case we are only waiting to go into a deeper idle state. [1] https://sashiko.dev/#/patchset/20260408122538.3610871-1-ankur.a.arora%4= 0oracle.com [2] https://lore.kernel.org/lkml/CAJZ5v0izSBR0_DeH5HVnSLFGRfV9WoSzbu9Mh5yvv= uyrvw7fLg@mail.gmail.com/ --- 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.31.1 From nobody Thu Jun 11 12:16:26 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 0112E39D6FD; Mon, 8 Jun 2026 08:05: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=1780905957; cv=fail; b=mIcO7305s5Ed9mpR4jBC5q0kv6D3iC+eG1dARmTv2dKHMvmHaseK0oXPg+IcYQcIBg45wLxccDBAHx5QnvizE1ZKL6CDig5iq8rXBUUDl3Z/FrpkXmnM/HhL3D0koqTNzvNZL54cLt19CslqzLSwFZSOoOYDSVZPwOibrX/U7O0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780905957; c=relaxed/simple; bh=8dG4wS8IlRQPAQsGk05r56CV1kpHBr0zVYXB8v6oJTw=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=R0WUVnFm1VtfonCyHPg0NxBsjMKM7lFnmDVcjfyqdtsm7n437OeLuZ2i5y93X2ubgBPUOqU59LYTeBoncUJ+CV+21SoaKTklKlwX3kTKPwV5Tp07vXaUpTfzn/vnI5zMDf1gJnjJG9NbDBa8r2B04zc/bfEeNwcuNkYs+BWQgZw= 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=rBtVwg6E; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=BvOiXFCa; 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="rBtVwg6E"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="BvOiXFCa" 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 657MujDf2098651; Mon, 8 Jun 2026 08:05: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=Jv5eACUEK6cT0sLPxVCS9b1EbxvU55GTImTUklK2Pxw=; b= rBtVwg6Ea/FnsuKpkG9O3iOG/81BtZsjvYUjrkTMe0tBF8mLWzboPcOzQcaNYxWK tTb4YGjA1OEADrJySrQ8S2Dm0sNzYyWDeNQWZeummY70c3ijI4APBwXTLBp9YXAC fTl+w6tlt/8vA7z/N4ahzcsUDtGrhtdyOhFKo5pJvcCy3hlq8Qr/6qLICNwJVSGn lL15Pc4vn9BizV3BQSTQ7cRHxNlcUQjkk1auFBwG1/B89ZqLyFFhkbyYf+5iddS+ V15c3WoGJ1CozaqVCZ4E1JDYXNMapWJ59o4sz2d/l/EWtjfixrVsj2X+FhXVEdVw E6bT87qfbPpGIKBJMIR3cA== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4embkja0sy-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Jun 2026 08:05:21 +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 6587w60d040403; Mon, 8 Jun 2026 08:05:20 GMT Received: from sn4pr0501cu005.outbound.protection.outlook.com (mail-southcentralusazon11011020.outbound.protection.outlook.com [40.93.194.20]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4ema0dg736-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Jun 2026 08:05:20 +0000 (GMT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=rHMchIaDmmMUDfLyg95zTnfOx/4v6YxchGfMg283hKH8M50GDk6tJBYSqG6P2I5spxaF6KXwtp210SvzZXkXrVs5gLIQA+ZiHnfAXkIcbTUepLj4zjjJvXq8GBBBjqRRzU/McrqgR1aujM+L2qRmbR2aVZaMyaLxvSsUARDetG7+OVJJywD4Uq7j2vYtCFtSo7o/lud15SU2eiaPEnQn7TsUe+LQLlT7fqEv+3dFdw8PkNSF1+KhsGxyYf9Bigi63n/qv6bNd1GxDe4TEswL46bRX46aIGAR2lhKnutuYRK88msXUSE0VIacDy6zuQrNA3BO3867GF1SyFx3snce6A== 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=Jv5eACUEK6cT0sLPxVCS9b1EbxvU55GTImTUklK2Pxw=; b=Y38jXiq9XhEliH3xSI6OOzDaSZmPgxZgtIOmmXs8h9DFqVoP+MghGCozzhPnQG39o+HqZMIsGem612ufOD7BONM+DssV5/AzLgZvCVQJ0fyPEjEpMHNjxt6p6bLf5yH4q483W4GyNS+F6qDBDd2IqmFIuy4Zq3H3c6NMcFGlqnfIHs8jsTiBb+Qx82I3KfaJUQ7up1PlMaTTU8edzo2hLcrPHEi5T2fKtuAkTuLoaNnAof/NjbArefmKNram6UxQJe+KecGZHEu0+e6+lZTzf4GbGcGIWDn2jCTb6E5zJ0BFV/SNj/iQmQEz7UXxBFm839IfIIpwPBW4JaAkyGXBBQ== 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=Jv5eACUEK6cT0sLPxVCS9b1EbxvU55GTImTUklK2Pxw=; b=BvOiXFCauRRxxpwePsLH2y8J0u9AAdqZ5rmLR02FBDye1kTwwwPexAzHXiBehBV+N1os7nLy1DJZ6YtzLMKY6/SN68EOHcAdAPaWeo75BqsNTTcXKEScZkbKzA2MkcKjUNpvfqf1MWN6bch1jMIjehyvq8qFlyEs4uodAzB1R28= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by SA6PR10MB8133.namprd10.prod.outlook.com (2603:10b6:806:436::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.92.13; Mon, 8 Jun 2026 08:05:17 +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.0092.011; Mon, 8 Jun 2026 08:05:17 +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 v12 13/15] arm64/delay: enable testing smp_cond_load_relaxed_timeout() Date: Mon, 8 Jun 2026 01:04:38 -0700 Message-Id: <20260608080440.127491-14-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20260608080440.127491-1-ankur.a.arora@oracle.com> References: <20260608080440.127491-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0331.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:10a::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_|SA6PR10MB8133:EE_ X-MS-Office365-Filtering-Correlation-Id: f6a60dcb-196c-47c5-446d-08dec534ad7a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|366016|22082099003|18002099003|56012099006; X-Microsoft-Antispam-Message-Info: ye9lapyO4ZHpq41rwQhdUBqNuM4Q1UwyBnNRFD7aZEd8pXkow6Dv1smWnNHZPQqTyZe77w134O4lYARRBGWaGxnWyW/Y+Jr4q6g9JGxuii4ZEsbT3vHevQgWhirOiCOTPd/3Xyc9DPCBdxnb12D2F43XirsVgcLsy1GYvaiyfgYxNY0xBhUR49v+XMzcrcnUwd0Horrkdj9f7MSZ8sF8HHqVW0128TITjrxqCabsVy0DIfDPl/jc+zTPcu147J/w7/Z25X/G949dV88D9rO1XjzWmUqwZ0bECvyUA2UDwzMTLkwej4Dc0uyY+AP+eiP3Q7Y/JMVIn17UDWqDxpgWnHjyCTQZxE9In9/fPEWTz2MpTt99jfBLmnpO6lWCQIjBydNIyCKqQb/sFykD7e0C7kbaVx4HkFKGKHMnZCf0on3deAON8ZLb/7gY4XcUFo1YtV4zXOPIS1dlPM54pLF+O1+K5Bhy9zMoBpajYTbfaMnuShphw3PDGs9HHFn9acAdqhR6yIsilu9BhxV6gpslBcHXBtrz1Atr1ljcjo5mACqK5QOfa6lfG/MBuZW85gw4gC4j8KckitPsgnq2VeC/ZB/hFJImmbSXE1jLcHv9hLj87pyQw7lCZrLMWfjK/7K48gYLSPyego2OcjDXkS3VotYQcZRe3NFiDbj9iBIraveV6kbgKOhDi4amXQbSWrUt 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)(366016)(22082099003)(18002099003)(56012099006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?+pVvjC+LxC8gvH8EUExrma3Db+Ya8OJToFzwh+5hnVkhUQzx/dQj8Tlsfy+z?= =?us-ascii?Q?aI+WH/yJo+cj/nbrDRiwVPawkujNtRw8a5CJx8qW0+752kjVpve5ZKwCqbUa?= =?us-ascii?Q?Zrf+grO6Mv/kpXqa+o7Pg7dde+KaA3N7gEwdjaGo+kJUWUD0PycbNkG90/T+?= =?us-ascii?Q?PL1j8SC8lGHxd7OqoQk5dhkuggwCCQTjENuzLGRZGMMSlkiEnb1L11YNKoQL?= =?us-ascii?Q?N5rwWRCXiauo4FKgxWLd0MGCBZ30QMHGcqJk60xE09jKcPI/5HON6NA0meT8?= =?us-ascii?Q?zCa6MVLSjELZV9tjgYx05VDr0uqjok4p0nWsnLlX1yuYUg5HTQoRK0dP1ipe?= =?us-ascii?Q?bWq1mMV4b35k96Z7sM9V8KUCxwz7EM6VpNjOSGkJj2gd68dl5wpy0tJYTct5?= =?us-ascii?Q?QN4E/xdDDBPgdu/lzyPKVBBFGaQ9Pznnazra+9LhUKs9UZqU9xlRkh8T7xi1?= =?us-ascii?Q?UwRnVJ6ycfbPGhu4uxZrGu5R0v9SudolboV08G8D45fvXmj/MXL+Q6RQbFyV?= =?us-ascii?Q?+stl5LlUjKAIftszlyZUP92x0VGpE0Wa6pNO23dd3M/b5WPfXmiJE6o4TMzQ?= =?us-ascii?Q?kUkVJfw14Db6IQX7xK/ECmX029KULKzZVw5fCuiiV9FhLJnbDVOeSXV4Zczy?= =?us-ascii?Q?b1SjNK63m1a1fG1kmnP17KEpi7d0h7bC+FwlNl/sRHqIg0teaU2OU3jEE8kH?= =?us-ascii?Q?43aFZdC1cfx5loUxbHfUHQBSoZIhVwasb1COtbLVPelNry1d36EBJ6mP82zt?= =?us-ascii?Q?iE+rTIu4/r+8SxgDr2+Utg+NWLF19ARCHScHQApiM+aDocTiQDEJsKqRrYSN?= =?us-ascii?Q?y/wId51UpW/3JDSt0RWDxTuuK0UI+7hbXFg7HCZAPzqzHHwBp1vt2hgTzPrf?= =?us-ascii?Q?9hCeec8BQOR0NMUao+JPty9jw3PagZTSvRqaNHkTii7CgTPyI3P29/vNLxbz?= =?us-ascii?Q?ix0a8+ttAvGWFQtPlFGDAQW3vmEQTJyzsPHyxw/K0ECUd9et+oPMnwS7NRA+?= =?us-ascii?Q?DFCtKDvmDj5mafIDDDRzMTBpeZoxtFl4HyMTS4etkwZT/inoOY2GGScsgr76?= =?us-ascii?Q?WO8746Ft/vJDOwsj6yLFJ/Avo4f00eK53NCGOFcRdGDOJlCnypI1zFOVhAK1?= =?us-ascii?Q?9uZdpdyMhpcro1h+u4CMUnr2nwXQ6nj9dS37QiSA6wJDTcELf9gYRburIOwL?= =?us-ascii?Q?kmTEiE2ImDpNhXP/wr7/xwVv7VWrgYgoEpbSIsJIFaqcn52IAH2flC25FwT0?= =?us-ascii?Q?egDZxh4YCMrNz65DXzk7e9qllp0tTTTxw7/0GH863DRO5hp7jXuurnZH6yF1?= =?us-ascii?Q?lPUicG6qIGFW6fX/DmxlxUciVmWqbwbWP9OQ/hATAU9j2dV9Zd82L93+UyDz?= =?us-ascii?Q?y6b59Hc+wPW/ERwtYmtdbZzawBp/FDsEo1jdK0uOmcqdGFgI2iu4qEgXc54f?= =?us-ascii?Q?ERI3Iy2+o10wK41OT03GQn9ESrpPgzvjy3sQk27UDSLi+g1IdGVVeBkilm6Y?= =?us-ascii?Q?3b3D+kwHNEHrTVUiWHLA0AwO1HIIV13OiwqRzZijV0VqIcRDtngY4h6F/e45?= =?us-ascii?Q?nC+el6NIuCtrEeculhIZs0sVOwdUENEzbaC/JupfGETNtLngoaND2AUv0UEw?= =?us-ascii?Q?IK9MU3UOiY0+kETtcAKkvM7F99SMfbcq1/cUDTM7ert95TWYc5Vlkz4YF3Ic?= =?us-ascii?Q?+OSHnlmGB+/e7w0DDTL4un9jVkpE962TyNn5fC7cl4jCo9R0gLxRJliX8+9g?= =?us-ascii?Q?CyIyozALGJh0ATQ6ZvjmEvQ7w1zTXjE=3D?= X-Exchange-RoutingPolicyChecked: jx5xvGSzEzh2XgU5Az/cOeHmVSG0fwxkzWLaIUDcPA92rSf02t5f6siUX71knpeUiCJ8UsuJqf+6iv8pBF9IMZTGJ2NT41U4YFPoNqJareHgRo4ZEBHa2lT3LEoPcdhS0JUR3Tq6PGkH87a8O9/TLW0ub/yXJhktx0Nk3EQmSVhV3HtMCgsy+HoKj/9Nr28smkW2NrDSf6o6FbjezkY0VwJY75PmYMuWlBkZdQhyrBWRlMf14p6rMMOjyg6/e3XB4cdhgwKItd/DLQMLO6E+8luNdQ0oHBV8G/SvawKyOpJWUc0cXHTsJFYhWn4fqq1hJ7l5LfC2bAN3/ROHowZFNg== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 0kcmK9S45jqe4aZ/MeKX10Z1hkqKCQiCGgjWerOp+Na9q9zvzGEzXtIGxHZgHs89fWFua4L6+at3JZgyYO+4o7gZw3jg6BSwSwbtDnYtSYmEpcAc7PUEXCnMHvdaEdtDkteqnDTV9aTRoaijdcTAC/GCo5ANm2LUtEZC6Jkm1BYpb2+EWqfSS/sMXSKpHX55JNKy1YqkXKxteKp8WUWp7+iK2mwDsanB68J7ubMlSlhtYYpvc9+O2b+hSwVCm19I7ROwab1ajMCyFcdf8t+YYgovkRMx3f67gF+A7LczFJJ61SMkdZieYIbZYBc/JnoLEtXUwWrILP5ZuQ2/aDevM8xri60q7P3srKcRXjSctq7R/pkxYtooyxzaMDOAww7LN3k2WT5N4WBE6/skATVDI9Hm0mdA1L3/P9QmO4xeisqUAgBlpS2pGHCK/AcYcJ1iUp0ozSIS3tRCgFdmOi+8vbT0v1Ybh9fT6WKVnOX9nrH8+y2BJLNg1cpgX/4LdF5ZRLwlJN150qTFy13PAy/t326itgUG3iKd35GEQm1PRKDQnIq1umLAPGyR13K9VThPEbqRKDBKAWDLGHQ2hpGqRhve5QTO9RhmHH7g4J/cwgs= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: f6a60dcb-196c-47c5-446d-08dec534ad7a X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jun 2026 08:05:17.4427 (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: 7ONq0Sh92nNckHrdIkd4vjuwznJY6+mCgHwJqgZbz/ourneCWJwiveM+xeUWQjmrJ8Gr+TgeSoNqNhumJsdP0fmWWm5+/bzS7N0tVUWx84U= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA6PR10MB8133 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-08_02,2026-06-05_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 spamscore=0 malwarescore=0 bulkscore=0 mlxlogscore=999 suspectscore=0 mlxscore=0 lowpriorityscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2605130000 definitions=main-2606080073 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjA4MDA3NCBTYWx0ZWRfXy3lKxGBsdVJx im3jTTlOS2yQb8OYe5sarRYhK6rPXD2ER2DIZ3G6jz5BcG55BJoqhGRcuu7/Qyp19uZZl8GaqWR sP/pS+ulCw7/I2BCMGBAmwUlZq/PJ/Sxg5FA98veo4y0m3jLQm2dD/je59DvmigbN1qgiDZtenc DsXBu2kBrm0RStlIaDBh5gScRaTjAnISwA+W3dhw9iOPPmq2XPXcs2m5+uob1TzEmsFT0Wkwf/8 PvzLZvKI+TMfliVdK6c8ReqvDlRWX62kaLY7ba0hHr+ivmy36pQtVrVOFSqojGJnDfyyu9LYbIg pUGqww3c3WVWRbKM7toUsJifZGG8UBv7X7UqVUcRsTrYuM3pctp5BA/Cc84M+YNijQ33Stmt7iu 5Pw3wgAUz+URoVoC2K9Vg/w8XCiX4KEJVEljUSXMLR7yuPM6XBp+fQT1X0PNKbEiJB9egkXLNRY 3chSzgqJ6az+SrLja+A== X-Authority-Analysis: v=2.4 cv=ROSD2Yi+ c=1 sm=1 tr=0 ts=6a2677c1 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=FelO9ux0wxsA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=jiCTI4zE5U7BLdzWsZGv:22 a=BqU2WV_vvsyTyxaotp0D:22 a=7CQSdrXTAAAA:8 a=VwQbUJbxAAAA:8 a=yPCof4ZbAAAA:8 a=bb9Fw_vXVJAL2FTmegcA:9 a=a-qgeE7W1pNrGK8U0ZQC:22 X-Proofpoint-GUID: LW8TiLK7J6IrD8ZZ2dxSrEZKnDMDtJrz X-Proofpoint-ORIG-GUID: LW8TiLK7J6IrD8ZZ2dxSrEZKnDMDtJrz Content-Type: text/plain; charset="utf-8" This enables the barrier tests to be built as a module. Cc: Catalin Marinas Cc: 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 c660a7ea26dd..dfb102ce3009 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 90aeff44a276..1de63e1a2cd2 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 @@ -896,6 +897,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.31.1 From nobody Thu Jun 11 12:16:26 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 D75E13A900B; Mon, 8 Jun 2026 08:05:49 +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=1780905954; cv=fail; b=LviS1b/U3SDs6+uUBGipc7PzSkUmGBoeuGgM+8/IYVFmSofTvR2p7A2SyZuBDHyQYt++tC9khPNAcR3nMO8gwehTDLzZ7M0308yOs/eyfA3oiy/5VmZr3TX+ZRwKyPwZqy6pCWU/JHkzrP+Q0R6aCxb1MnRrKDTG58Y1NwIaAvE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780905954; c=relaxed/simple; bh=Hs77ngWo0nhZ8pFZQS15oSSu5mZTHileuhNP0dDxDMk=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=HwZN2VzErEDVMwlxWAJL765D6zxFAdSoez8BbAMGAg4U4XJk2pJlCYGyJdce4vPsHIFS2G/O50Rs8hSNjwI0xA+MqYQYl633yqHuwA9Y3TecrEOPr4FgP7HJa1cZWHv5txxTFb8xpKw/V99OJmp+etkLMZvnf+nUnPS4l9c5bqU= 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=OiWdxYRi; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=i7Tv5GeY; 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="OiWdxYRi"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="i7Tv5GeY" 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 657NnIkY3933133; Mon, 8 Jun 2026 08:05:24 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=9zCdyk5E6crTcNzxQ9ESHuxMMNtczyfEbmig4L116J0=; b= OiWdxYRiE3r+41LvJ3BoJQBzrUcz0FuXp5F7+Ru6qEIeXeJKj+vVWuZyo+2h5SW+ 9ikwhyMzRbNpFNQ77hn2zKcL41XkH8rvVms9WrMgWpEVIjImhgeKacBUmT21J5dh VMlPlWiJ23XeLH4rN8zWF/G6ouYSrxvXSyPQkkpEGkb+AYA3bB0RiphOb5fPl2mt xpKAKYvBKpDDe10tFNvr/vaOa0/sE/yenTSVUHjwMJA7V8BtGxw6K6J2uZ+KbcNm z7xeWbwCZ3CuWvkNB+VNShWqOCOCEUuM+kQ1cuKwXkNMcqWJO4aqD2R6x1DawLXt luaZ8gkuZbLZ9xMaWWF7CA== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4emb5st0fw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Jun 2026 08:05:24 +0000 (GMT) Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.7/8.18.1.7) with ESMTP id 6587wURG009166; Mon, 8 Jun 2026 08:05:23 GMT Received: from co1pr03cu002.outbound.protection.outlook.com (mail-westus2azon11010028.outbound.protection.outlook.com [52.101.46.28]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4ema0ngbac-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Jun 2026 08:05:23 +0000 (GMT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=h/on8BFqyymVRd1Z0GuLrczDLWzhAmHvFY5IppdiVf4IWjFhbqFI0B3F/DXJqFeZvT2lgMu3CysudyXkNwgr0tp6M0fK762wlC5Ug4ZNSD2QQonUxDnb+K+/pi99Ws33KnGr6B8TdYTFXVcdGeUF0YaAJgWA1aRufSlDtWaCd4v+VYNt58XCp1onfDVDjjtIqhnSxV8l7ofFFzAbLI4XhN8QKctVb1J0yBZwVkk/zfvDeHf7zA3dmXbCdrUuCpICIJ0wYOw+qruodfJ/xaqs2uZ5E5dlIeQP43C1tWPFK3H2WbG7Oi4B3Ql83Gpz0pYDr5YyMXzL4q3JANY6xTWMOA== 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=9zCdyk5E6crTcNzxQ9ESHuxMMNtczyfEbmig4L116J0=; b=yQfjm7prEwGTB0aFreJG2kZWc40MzeC7cBIWJ4Fqrfz9lH2ps4N1jtm1PSu8V+JAtJ+lig6OiCD3poLZu74nsO8xbAMd8L+ZdU+8dTGjv6JF0I/zWQCELcvJxMpUNKaiOzFDLfYzTT2WL3Vy96GkaT9TQDEsQL4HkC3CS2j1Ok+ylasHuNnDapObaDfZ7Up2iZ6fwfQNKAphqakDnnCLvVtd0Q+IZ2gWEin+xE2IBGwdRkAuEBmoTWf1gqhNtbJ8dtH/QeyHseOiCpjUF416aYWG0X9Z/Qwbe7m+FfUmOrVaEGki/t1WV1lX9YcbBPVL3Gsb+rpILTnUi8Zl4YS6LQ== 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=9zCdyk5E6crTcNzxQ9ESHuxMMNtczyfEbmig4L116J0=; b=i7Tv5GeYvaw6ITbA6ukUMoslbwYPEhV44cha+jb66GEVlAuACh6AnqAe6spJEn2z7wrFRKy9GMp1MsIvidpLUS1/t2FtpagLXelyA9LynlA7BAdVqF0w3335pNhZ/s7fIFsas5NywPDa2ohKRZLzFGqZ3bM7od0EucFdv4wO0rU= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by SA6PR10MB8133.namprd10.prod.outlook.com (2603:10b6:806:436::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.92.13; Mon, 8 Jun 2026 08:05: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.0092.011; Mon, 8 Jun 2026 08:05: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 v12 14/15] barrier: add tests for smp_cond_load_*_timeout() Date: Mon, 8 Jun 2026 01:04:39 -0700 Message-Id: <20260608080440.127491-15-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20260608080440.127491-1-ankur.a.arora@oracle.com> References: <20260608080440.127491-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0308.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:10e::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_|SA6PR10MB8133:EE_ X-MS-Office365-Filtering-Correlation-Id: 1f6a5c90-ff2b-49fc-2437-08dec534af2e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|366016|22082099003|18002099003|56012099006; X-Microsoft-Antispam-Message-Info: Eoidw9GtbPOyOiYj6uY7Xmaw9UhbgKsnnYdbgtzMFQA/U5gvQBMK1PJqvX3uSta0vi7isE0krKQyLnUSW4tlRlByBos7cJrC0t2Uln0K2HKlnpeIjM5jBywNBkdcrch5yrs7QUrTdIYnEvcCxzv6d2gawus4itUPI20GVOOo+agft4Uboa0CBFMqw/APlnO6IBSNL+WuK8kMMYwHXjcEDFk+9XjBhAFrpg66Zk4G6dFD8Pndp3MzXeRE6/MX4iAAQgb51pi17zUJ2V89OQp7F0FWbB+hNtquQkrOkoWHKjwwxblscINC4GrxpYPg84KLwIbT3XFg4NAj/Wc8hhDZTWf4sQZJIjPK+cwWmfGgqbMtkAddhL2ZqqWV8Ami8hoTDXUUNAsgJUsCYqAcQ1wLWpm9x9r5QzieoVYzQXfRLp/1ECumruB1KmipewLAQXd0UnzNvCsafbNwOgOFP54rzA/up73lw/S1lu01Hljfdcp0+dElAwrL4Zl0vE+FIaC5MXSf86O786Jtoh8KpMARbVydawUKUiivJt+J07R6Hiq2dV73OdQrTVNvqXbQu/8Vxhwju9cvRB2DNhrkuocsjBrUiPqtv9PIxMMc7lww0zXKEp2im+cbOpCp7tVd/ym4JLr3h7UAWXEbtvJvA66XITMghT8vO9bH48wDWQLashB6fFldxJDv508+dPbcExALzmii2AT0m4VjA6mv2sCTIA== 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)(366016)(22082099003)(18002099003)(56012099006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?kRAc/AZ8FPVDUok6nVdQaMmPz0udTjjGPL0Ec4Bn+M2nuUUem1HGXSXS5JhV?= =?us-ascii?Q?la/+4qYvOKoN0+3Ji//fq5YsyI6Zx9I+hG0beh57gVOQa/EVJxhkDP5CUurE?= =?us-ascii?Q?sZIMVY26oXTuoTWcFVwgm60mgQE8deOzE0pnpjTgi70M+8Oy/1oEiyUWP8eM?= =?us-ascii?Q?s2JcznAQFlQbEHiMn8VRvWAwlbIyVELhqTGo8QtKjIoyjEaJJweyPSmlENMa?= =?us-ascii?Q?mf9/aYJbVjhTTMAaoMcOXfCoRaAQN8EibluwT+Z32zoPmwZ9eAPJeHFq1y9n?= =?us-ascii?Q?WGD/CwJWIL4FD/2y+BI+RKIvCI3O1zG9/+pvq4Hn5fdEl2atURyp1xV3MNJB?= =?us-ascii?Q?G9En/orBje/xD9Uor3Kmx/PExTZhz4fD8Bdt0j39M69RRJ8vFI3MeTLl5Xsm?= =?us-ascii?Q?C9RICIA0VeX/zkZkoX1BB7YAHgtPbICtHs1LPpF2409pNcCW26MF+U79dsyx?= =?us-ascii?Q?DBt9FGyrgemjpyzaAviovEqc2QlNyJ0DHjMLbTZD0x69uoTYmyUkyiFf+BAX?= =?us-ascii?Q?8YA816vvpUjP9Q5zQiLozQ1dfiCE2lC1Rd5ATPETyWgIzG+x8nIeQ7AZh3hG?= =?us-ascii?Q?DrbLe4NsLvb7Ck3cAg+hYzPlykSKaaRsaEoq4oa86/YhZqwLDk7mQFq5uJpi?= =?us-ascii?Q?6pFBnDlKr5e9Wd9B/9xjiwDr4oKVwSDMUUq05JloNVxMeow1cc3PKeVlxmm9?= =?us-ascii?Q?jSPTybRj4m5872cmU6dsSQigFDmI+Z96+DcGXxqZL8SwTaqVl6bGKDETBv37?= =?us-ascii?Q?n12L4ALcqhW+zAwXZTvOH2TvCZK04uEa2s8l/D4Kg1tSYFzMGNC6gjtBXFem?= =?us-ascii?Q?3sU3wYhF6HswuLiyqqJgCADAoLcOOLfbqtyn9Pl05iPv+Mt9BzAfukh0YMjc?= =?us-ascii?Q?/Zu4aRM7H+Ho/GOU60HHGYkB6CEW1E4Z2WYuRcsfzVn31d2Lg29e23yLL9rd?= =?us-ascii?Q?yapfruq9I6hU9uSmvH+hr8ur1rnb9ErdqAOWYQqT8wJn5QrA0QQ63ltF6HuH?= =?us-ascii?Q?svocOgaSRSrkXXvSWgWq78uR/plgolJgtG4f6juR7oxQhz95XZvUPYL6OuxR?= =?us-ascii?Q?J3KjYNxRWKEpERGdgQWX8dI4l06cM25HPhFnHpyTcSuIBacW8g0toB5qdasb?= =?us-ascii?Q?UcJ17HM5eUIBL1UfkwV6kF8yC5+5DaNUGgGJ4/CfTscbNkaWgfaqa0YZNvsu?= =?us-ascii?Q?h+Bnmo6rvnGObcKtCkPzd0wxQWHTKm2uz1rCniDPXJ+Qb6UAPtF2F5moAdXl?= =?us-ascii?Q?4Z0LlDyuf6hM5UrN7dRajiTOkuZs9vb9TVoEI2XCO2DtbSVptf9TcTI7/2+p?= =?us-ascii?Q?xLxQWIQyxg3hAbP1STaHBV8lIt10V3DAus2l+w+prnMaMhDTqdMc3PBr4xkB?= =?us-ascii?Q?ocaULgUpNWEI1Ut4e7lx+rLDUU4czkMJ/lHQ2Ym+fDHDeuvQx2OwI6u8iaOj?= =?us-ascii?Q?BZ4eDh1k+PNQghxzKS8XeNbu6r36HRlfaAOxf+TtX+o1pwvqxnh5X8qAL7i1?= =?us-ascii?Q?LQUyLaKqECYlskzGjjiq/54UdYOsRfMcHxfIGee19vF45dUqW8A4uox8KlW6?= =?us-ascii?Q?xr4UHf6mXJBehJlhuhBcPwlJme1mEbuo1G8OfFne7JRqCGp3rZlYbRR+eSfl?= =?us-ascii?Q?jy0Aqw+T2Mjiu05JCwisyDM/Oen00JWBmCH4LVsFHGe1KcMa3xv/P4w8/ML7?= =?us-ascii?Q?PqHhEApGtEUa/5tjQBZLfMVHPbyhu80Ssr9RjAuv0ViQ4SUUYp0idlKfFjas?= =?us-ascii?Q?WEy2o+ES29qL0KRnyrMty7kh3WR+m1k=3D?= X-Exchange-RoutingPolicyChecked: ciKch5Vjt4qrfFbj0yPYzxaf612wi18wIzbsxSy9bVjqMSuSFR1WuyS9kSYWCIEehqMLrcqdWq69lY6HdDdsHc+HEVI9j/cmrqzP7VnW1p8+OZvscN/5i0TDCwFFxWP5D8OxyDWUDG+nh1X1i/JSpb/DU6+MJZa26i8pxdAX2PXpGyvkDZ26jxW2lB+M4YVkkhxK5RUIv+UPPP5Htp4y+R38heL9vBd0Fa/22G0MVhByPSL+Zk5M3NUsXGuGgC9QbuYVcvAr2l9utYKJsmj+EbeqNE87TYqOSMp+lWi3+1NQXXr2vt8TlDCUUK2Jdj527pTldYuQ6oB2qvDTGu+EAg== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: drF6rTl2U2Bhik6rRncOCrQMISXcpwIbP1XSynn8HU/HXgLc/wTn6Q5Yyd/POrotye5ufaIp54oJh9iILWw7kdlT42CS8zM6ksO6/iT3SyY4mzjofnwqB4rE4wDCZx1t7BFi66mXOIozDyLQJUA3WJxBC6Tg2PESSiroNpamp/blK27ynMk1biI1vXqVsR2duXOhKg7X97JwNCasV9xb8CoyAaKP8fHq7QLGWaBduE71mLUdf34ETtZ0kl0MFuw3z6JxJnkNyCyH+pqFKVGfSTWdDdyyYMaAzDZeezo5lHyExTKvwrWo0thTck3XJLBS8DFUDI3kN59Jcf2xdZ3AuQe6Vn3vfexvfjfpz1cwOt2VOnkDx117QtwD/+2OyfBIYxJMbL8KKoXc8kQXIgvQWDgs+IpPFrE55gegYNSzcxiHVAwd00+l14fOvKXgl/RTpsxUKLviOGOC2TI0IiXQTX/DQrLbzJRG1tqkRF5W/IfMlgOQfSChDw4LRiC9U99RbBPyHa6JqpKyRsx6nvfSfk2jWX96SWVOgnOP57HigsDOyQ6edIYS8elLx0186tQ1+N/xDfGPEqePMfDqIraDvolsVDZ662AiQE48aCb6OZY= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1f6a5c90-ff2b-49fc-2437-08dec534af2e X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jun 2026 08:05:20.2842 (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: xOjV8fA9CEkcK4BlTX2w2pZm7pL57kLWFVWhyJ4KizopSSS4lT9LWz8DzOpXzYHQ6jew6B/W9QdwwJ8ZfhkExfXRWAKuHR16hXD4KqnvPwY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA6PR10MB8133 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-08_02,2026-06-05_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 mlxlogscore=999 phishscore=0 spamscore=0 mlxscore=0 bulkscore=0 malwarescore=0 adultscore=0 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2605130000 definitions=main-2606080073 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjA4MDA3NCBTYWx0ZWRfX53rPhiERGr4Z Dz9egpbKGxEUZkZp92JImrX+XpAJ+0Wbl60MBcfY5iwYmgv6nnDyBIZaZZXRNXqwZXVvkAevLiu OqzpdJJdFBIKSbb4cD/v3tdugv8+smuww4cUvVcyWy9Dk6lRHlIXz0O3cBf59yamaPxpMhPw67h DJ+slC0GjalRSk7aa7pmeazhy2il8QNoSKt4hGjETOuhqTgijq2Cb2f7hp7gJeyVMygDBSzETkr PmM9El+v2QxqTj7SfIoUDbGJKu6N7zv3reOUtO9ir0XZaEnkaol6IJPRJZF9JE1Uy93A1Oh0gGj m3GwzvqEq34Gg/W7WKz5IcSYhViqe10DfvCJ7qBbn7XxSkvfM+o2LJ+4ELgesrt5mPz5k7xkZHG qv7oWv3/gwAWdhz10RRKDENagJ1LnkNt9jHmtJyk9gC7b4iSg1ddlLU9jR0FtW+/48ti3J53Lep Wwa5RXfbgjLtE40VzmrMrk0V+xYHVaczH0+lUm50= X-Authority-Analysis: v=2.4 cv=XeC5Co55 c=1 sm=1 tr=0 ts=6a2677c4 b=1 cx=c_pps a=zPCbziy225d3KhSqZt3L1A==:117 a=zPCbziy225d3KhSqZt3L1A==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=FelO9ux0wxsA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=jiCTI4zE5U7BLdzWsZGv:22 a=3I1J8UUJPc9JN9BFgKH3:22 a=VwQbUJbxAAAA:8 a=qNABUOcEAAAA:8 a=yPCof4ZbAAAA:8 a=IOmrJ1s0mjgGKxRSJAkA:9 a=Ytm653ucTKQjCvbzLygB:22 a=5yU3S35YU4bGjq-dph-N:22 a=Bho9c0fBagfJEIQBS7DQ:22 cc=ntf awl=host:12312 X-Proofpoint-ORIG-GUID: WGtR61ssCi5b6WUtX8-BXcR4wcYLJi43 X-Proofpoint-GUID: WGtR61ssCi5b6WUtX8-BXcR4wcYLJi43 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. Signed-off-by: Ankur Arora --- Note: This fixes an error in the test case reported by Mark Brown in https://lore.kernel.org/lkml/agr_RxvNtfASfevg@sirena.org.uk/. There are three changes: - One of the test conditions used in the test was much too strict. The test was treating: success =3D> (runtime <=3D timeout_ns). Instead, it makes greater sense to treat: !success =3D> (runtime >=3D timeout_ns). - The test can run in a wide variety of environments including emulated qemu. To get rid of potential failures due to timing issues, remove the kthreaded case. - Parametrize the test cases. --- lib/Kconfig.debug | 10 +++ lib/tests/Makefile | 1 + lib/tests/barrier-timeout-test.c | 128 +++++++++++++++++++++++++++++++ 3 files changed, 139 insertions(+) create mode 100644 lib/tests/barrier-timeout-test.c diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug index 8ff5adcfe1e0..ad5131776f68 100644 --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug @@ -2406,6 +2406,16 @@ config FPROBE_SANITY_TEST =20 Say N if you are unsure. =20 +config BARRIER_TIMEOUT_TEST + tristate "KUnit tests for smp_cond_load_relaxed_timeout()" + 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(). + + Say N if you are unsure. + config BACKTRACE_SELF_TEST tristate "Self test for the backtrace code" depends on DEBUG_KERNEL diff --git a/lib/tests/Makefile b/lib/tests/Makefile index 7e9c2fa52e35..19c1d6b17856 100644 --- a/lib/tests/Makefile +++ b/lib/tests/Makefile @@ -20,6 +20,7 @@ CFLAGS_fortify_kunit.o +=3D $(DISABLE_STRUCTLEAK_PLUGIN) obj-$(CONFIG_FORTIFY_KUNIT_TEST) +=3D fortify_kunit.o CFLAGS_test_fprobe.o +=3D $(CC_FLAGS_FTRACE) obj-$(CONFIG_FPROBE_SANITY_TEST) +=3D test_fprobe.o +obj-$(CONFIG_BARRIER_TIMEOUT_TEST) +=3D barrier-timeout-test.o obj-$(CONFIG_GLOB_KUNIT_TEST) +=3D glob_kunit.o obj-$(CONFIG_HASHTABLE_KUNIT_TEST) +=3D hashtable_test.o obj-$(CONFIG_HASH_KUNIT_TEST) +=3D test_hash.o diff --git a/lib/tests/barrier-timeout-test.c b/lib/tests/barrier-timeout-t= est.c new file mode 100644 index 000000000000..2160844b27b8 --- /dev/null +++ b/lib/tests/barrier-timeout-test.c @@ -0,0 +1,128 @@ +// 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, *update; + + 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-%s, upd= ate=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.31.1 From nobody Thu Jun 11 12:16:26 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 B12153B0AD0; Mon, 8 Jun 2026 08:06:05 +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=1780905967; cv=fail; b=ceP3sqWf6KxA1MHjWkpY/yu5WnZFOdRJgFscfdWX53dhrsyz/Bgn1ENbqA328J0+q6b/JkoLadcPnXEJld5V/p57x4LbIiAqofi9t/bDLIeW99ogKjsR9fVO6vhe96C0lWbZkdZ2XNRgQq/XmrGhTejw1X7NABlFbAhgUhBctqo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780905967; c=relaxed/simple; bh=OyCMfizG8gBKCPF2ewoUCdLDLz7M1InOcVcF2dwpbJo=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=aoXeo3Y80VHMBUvw62QDFQbZWG0IruB3NaQPh2pZkblvnAvonY9Y6+eqIamI+LTtHSHNk0Wi3BTVjRBKTk+NlxMaJky7ZjrGNDNi2Nm2nf0UdOixbADnFIDHWOI2q+8iPkTUoUJzyYU+cUOyMQfb/7i81Orw7sfNZ+fMFa2+RYs= 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=o9XYRXQw; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=Q3TyVAb9; 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="o9XYRXQw"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="Q3TyVAb9" 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 657NNrLn2141520; Mon, 8 Jun 2026 08:05: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=fTsx0FMsEW4lh2neV86XYQR4cm6OYXFqcJemZVEERjg=; b= o9XYRXQwmHsZJ1sEwYxSyBZzrEeaLz5W+Mfnzf6wPCr2H7C8NbVoYG1sL7M+Wd+T hwEHcv7pmopYuItmQzZaeitELBI4NDhjnfXCwYbbiByE/JJU+bUgZeNnab4ok3ui gnyRWMdSkn7l8ycuW4p7bgvm4XK0betmlmq3wpG/LkfEOJwjxjPuo9TIiO7fi+Vy TPYvhFjSm2sfYlHAGI7HzxHmZRDDAh6gBV+3aIdGly5r9drgI6sfXRNgzVi8xBLZ Fy0aLYjQfvgNhu8PIOpbOkmUKkaq4jAVZxYXqqROUXlM1bRsBblIryHVZc44e/ue NUGiLIbQ4aWcStb5I7L+wA== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4embkja0td-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Jun 2026 08:05:30 +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 6587wVG6020472; Mon, 8 Jun 2026 08:05:30 GMT Received: from sn4pr0501cu005.outbound.protection.outlook.com (mail-southcentralusazon11011039.outbound.protection.outlook.com [40.93.194.39]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4ema0ngrf1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Jun 2026 08:05:30 +0000 (GMT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=QlseL3Tn8SVfvwD3e9aaiVfdsF+15jgeEMx6w4olzbyRUgec7YPxJtAMn6893OzKU/HXFappawTj9/xvhDMz9uwX7eas18xpI52sWu9ZnzNDRp2dgVDr+VbCI2GMLltRCmIFzjaP1kl0FcC1HE65xHtObHFgLx+A1TMPnTuT8Zzi4Ug/tisUzuteqOuAspRds90bx6F6lFPYbWXb30sGiM/ovCPl8LF1alx3v1q8FtjKGgkoj5TesPcypR8RLp6MtZMTs8q6DFQMmkIFIHeiiIloIj0h+PR/rnvGpOO9t6fpwxv5bmc7UuD45t6SdZDnIVG2cjXqRsU5rpO+9cXVIQ== 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=fTsx0FMsEW4lh2neV86XYQR4cm6OYXFqcJemZVEERjg=; b=kDKMXlicbsfYKwYhFNhNm1GB77BAjX2VRWPTPEG5zvFTg1wVMXKCcA8br2its+6Xw08dAYqHoTBeWUHEL6dRJtYknCPJe6Yj29qIiDw6TgYSRx1G4qviF8aunPqNY92LLdZEdZBPSYXW+l3DUek2/l8xDv6psDC3ZLhSV8EvIEEauaRjKu5dI2dd8+xR67ehwfj7P2EhQK4EUecvvYfHSu5WjFb/wuStqYgCCOYKA1PwTSUo4q3G3+Llf72YPKW7Rp4a5NCdxuBCdpxJqIZrjRAXjlaWb+pvc1dYMVdg017WwNnMouNa2qP7BKu9qtEfi/VH4RRsLIoW7wTWKa+w0g== 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=fTsx0FMsEW4lh2neV86XYQR4cm6OYXFqcJemZVEERjg=; b=Q3TyVAb9HCcwZV6XhUhvsn6k6U04uTyxuKvaPt9u6Vmpd0Ky8APmymFXsO1bTa1jrEa75p5NuQQsiqe0rP4cywKes4XqMfRRQk/cKQ9Y8Gr7DKCwzcxo/FpOxcrNC7QSEdWOdcmTlxzSc/bugcGCMy/su2vrZJIgbAV64yc4vjE= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by SA6PR10MB8133.namprd10.prod.outlook.com (2603:10b6:806:436::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.92.13; Mon, 8 Jun 2026 08:05:24 +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.0092.011; Mon, 8 Jun 2026 08:05:24 +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 v12 15/15] barrier: add clock tests for smp_cond_load_relaxed_timeout() Date: Mon, 8 Jun 2026 01:04:40 -0700 Message-Id: <20260608080440.127491-16-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20260608080440.127491-1-ankur.a.arora@oracle.com> References: <20260608080440.127491-1-ankur.a.arora@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MW4PR02CA0015.namprd02.prod.outlook.com (2603:10b6:303:16d::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_|SA6PR10MB8133:EE_ X-MS-Office365-Filtering-Correlation-Id: b5de5be2-c44f-4e1d-3d9a-08dec534b1d1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|366016|22082099003|18002099003|56012099006; X-Microsoft-Antispam-Message-Info: qZwYdpPkp20jZ6140cLHS6QGUpHfYbzJY8NMjFkd3K3IG/NlG6KyZOkyRfyonxGrB5bclfGjpPCWeilDWbpedJ+fFeFQbwLUtvw+5QnCYxLWIQCPbFG9YNx3CPEPxkp1nFA+v5BWL7/NoRRtyyLaFIRJDYsP6WR1CjDC962hl38iUmuTrou0X1vlK4rhk7ZDhszv9OHx5wjgk904XQ7r7uLBUIWlZEPkgfPLPmbbVIvjSiedK0qko8+DAJbP/UyKaC7AGBKvT3+o8phvbWAdQqx1LqF22wTjUSG7/bVn4xsIyp1pxky3+qDcnOo8BbiJzdX5/9lLPxax0L03tpCshjUPRhj1H8lepv5k6aqP7tY5QpXpw9lI5etjY0xdkHit89NRvMwErXyCK/ijQTbdgNSr/GjrHap60E1/5ThfGg6/ivzYRPqLQLT3HVfFwJBY+uyVUE82fv5WcKlfznnwc2ucv3B0P7/3kkDn//W/ltRC9RgmjZ+347an+66uP5rGfMtYpJzu+CX+QvDJUIo2OqhOjv9qQBfD6k3m/VPbGqfB1DM4cxQfFgCGkrunnCJSrhz5or7EIQet27HcxY0WT8XoKZuJD9Un8ah/o10Z7xepOat2wSUWpSFn2Kl04HAzZX2yP3ube7XcvXXb8wAboMMC3uVZ0eGrvmpATiVlBMBff8Z41EzC/cvqWaf6CFRG 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)(366016)(22082099003)(18002099003)(56012099006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?vmmbGhxkPJY1isyF1pGmvo/IK2pxe4TSHC1J8xVVG20kD4e/h+G/Ho3noegq?= =?us-ascii?Q?wRB1k0wZrKDWfItItf2+u+GK0HbQDMREWxyE1wDEFMCoRj8o5KfzX6fdMaIG?= =?us-ascii?Q?NutnsBXL2M9+ulU4ae8Wv1uAnkHg7Ck/qdFEjQBWG30/PEmW1HD8D0kydAg0?= =?us-ascii?Q?WFsWr9eVe89PKTSP5+H6g4w7DHiYw/PyyJqz2str3kHF+4gq9W9j/zSbcFQI?= =?us-ascii?Q?LhGFyCR3p5Mb+RNqOvXOUIRLRXD9muxNwHjWZdTtOW4ylMdxwIvVUgt5QQJx?= =?us-ascii?Q?/1eA/4gkndNpnM/S4QPAxSpDgkPcqONSU2poxMo4Q5Pt8v6RtNNf46hqfPPW?= =?us-ascii?Q?bATNIMp8TF6tX3q7rLDQXmj9UifpYLoeuwieoXesV6aoZiSrb6ugd/lYf2KT?= =?us-ascii?Q?gnCRCS0NES89afHJqfiz+SylvjKyKTr/PkT5buRafr72EanAWWYklZYG43dG?= =?us-ascii?Q?3TYt+12Fi1A09gQb1UCsaRTAyVztCedQv3Xs/gBTTyuEsIT162d2cxYQoDET?= =?us-ascii?Q?xwBLlEJ/wHxzZzPDB94t9hXEUtB/Mayf4hdBHdNqpXMT6Iz6PpJQd4NUq9Ga?= =?us-ascii?Q?+bArXmqThgOYh41Z06W9gUC7SiP8MyEcMyeHKwSS4tQxMT02bp+U8wJ/hRj9?= =?us-ascii?Q?rhfzfTSjdHUwnbm/UPiEpZP9G7DtSnspOD65XDe3UeCeJUjl/+9popOv9W5b?= =?us-ascii?Q?+ytqwCYxrg43Accnu4fyeZL0OZNus1HQsKC1c2ahH4VcxPzZH6jYlW6pVPlS?= =?us-ascii?Q?uwB9BaXr9//eC747j/nErLa2WF/hHoQLH9IY4cI2chA/QJ0GUlRDoFBY+QBx?= =?us-ascii?Q?FbZHtMRNAUtYTXgwPYegZHw9Fhk36DLFqtcobyKIyYVj6CumuejH5mcCxVS2?= =?us-ascii?Q?KDqdnkb/4UuadhzvNF9RocigoxjtxuYN0dzFDhGU0q8tGKQAztRYei1ENpgq?= =?us-ascii?Q?UzM2NvZlobeWwv8Mwo8ddKvcIGr9xbrxJKDLEXXv7PrLmK0FvBZU/ayZWYJ7?= =?us-ascii?Q?Z7xV7Ml0phTQdC7QYVmiPrqTg3vCccHFQj1UDzdNZDV5TwODDsSdSQQWeeH4?= =?us-ascii?Q?qMlKarTri2XYlldh3YOZn85WfZE8C5SHWhkLv5fHlVXJMrSwyMTmtmuhtlMW?= =?us-ascii?Q?7Z6rmIEkN975yH0JlD0S2Ig/uq4vPZULlmSfK6B+HiN5jGzhQg6+h8hfIPkz?= =?us-ascii?Q?lbju8QfyRlaNBLOmQQlpe00BuB0eELlhiW00lTg68fgRzuNlc3DtoB3w0wJf?= =?us-ascii?Q?49o82o9pAkN23WqlZEnMRChN1TOewTG+8TdimdAYib+mR7SncLd9AvCiRQfC?= =?us-ascii?Q?YyIkX8AOZyyA0Sn+6fcALNOB1hxwyRnQDVqhNKzC/TtVCCkHJBMrjbbrID8R?= =?us-ascii?Q?F8J9Iu+tBrUWT2s2d5tozVttePDGcLevhVTi4UnphBt/tQczIfdCnbgMUmRK?= =?us-ascii?Q?Clf8JHAB0m7s0nYCfjoSAKiAftYdY/woBH7ETT8qJ0abpPwXvmNpW95wojq2?= =?us-ascii?Q?uGVU1QtArZZ8x9/OM3j8STOmXxP4tEbJrS8XTTinlcMcvgepCkZf1HnAZ4i6?= =?us-ascii?Q?4S0FpsgEvC5q482dzbMhiIu4OhMN2OtGFahly+jXTZpzMoiWdE6ndAs63Erj?= =?us-ascii?Q?E8h2NovMFa4JrC2fTi4QU7V1BBycr0dWZP18MthKv2OmlnJHQdaveWWagDgL?= =?us-ascii?Q?wlV64cmj+gTNdrUXmtqT0bUXA+D3aMA6cCUdADFd3PGolC6NyLYA916gMpf9?= =?us-ascii?Q?E+Ka8cNjVIjFRB4Eov8xlxDHbKEDtpE=3D?= X-Exchange-RoutingPolicyChecked: Ft+0aYZgoi8vaN99mJpXrp+SSPWq/YH7SJG87BGfEXrFBIiqN13Zk0sw5LU1zPXeH4EQygN6dnp2/nxFf015rhiyDcUltQTwpNZ/rW6/6uUhwgLuQh79RUbM/gvSuwJmRQwdj9Msigdvt9gSwGBIleT+EZN31/1VzqPzNxe5dmjh/7n/f9AEIpNrFtxYJzspaQtDmWgSHCrBJd6n+7h/kaSoin6i6Ulm09iAd4BTQVOZPWJT2Pe23LeaKRuIJMrvArtf0BRQWbJzimOE/tntktsmxog0Xje2a9XFC8MywPSCMEQFkk9YEBGTwuVfZWd3jkXoy1lFmu22WxZf6xyhmw== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: FUk/7c1AlrLbdGb/cPbAp3ar8ULzs08bM10/YrvWHMovVk28QX2+ex2tIgEr1ntX5ZUrFmqkI2vAxyoQTMReilib9ejpKBTh6ABubL1wtd7tZa1iDf+TO+NfOarbIEvpHdfCkMYibFMTJ6+q+TXryt5r1n1h+gk38XgmBqg9/4F0Q4/y+BTlqDcImWoVCgwd4Sj95xtCNNsZI19gbIoQB50wgMRpuWxWLg6z1JXo5fdcmJmz3iudQJdu6JEqYQZon+s4md0mt0bY0vOxg+gpV0kEDyCIfdAI868P2FJa6UQnY8jGpAw74k8iVdn2UDOlSAB3s+zrArP++RUnpqwV4WL0Xs3FnXHHW3cz+LtemSVWOUrtgAPsd8YiFULH2PiRw5yzBQuMCcquPrsJ59tx1UeKTRXRgKYXv/RidpDkgfywS04DG8EDRVYEw++F2A7UO+N+aHeoS7o2u9iTeU3Iw1HPDkMpq9axjOavcuXBpstFLlzcsZnZs3ZkpPucq28vhgEvUubEdiz4VdfIWcToJyTTzg+ooKYbJOb1bFNVZX/TbkWmIQDfj422MFKAKE2mqJBtTgVzgN/MQU49Ft7dW0RSu3PnVIuj/ma3apoFjuc= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: b5de5be2-c44f-4e1d-3d9a-08dec534b1d1 X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jun 2026 08:05:24.6871 (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: GwbuyLLoTZcLueOrShbLl7SAamRRN5PUmmd9No8AKMPFskCjqrOTBNkKnVULjiJTIpULmhr0YODVtVv5MLtlKRoj74oJsh2s9hXVajfCfzM= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA6PR10MB8133 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-08_02,2026-06-05_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 mlxscore=0 phishscore=0 spamscore=0 suspectscore=0 adultscore=0 mlxlogscore=999 lowpriorityscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2605130000 definitions=main-2606080073 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjA4MDA3NCBTYWx0ZWRfXwAgr6QmVDLnL JNw4Cb5h6hMDpYFIU7Z1LJw1Kce6G5GQZs/2qHLOvjvKeUieZg5nkN3FVF+nTmF5/84I+kdAG8i nUEInJ8PGLgO6cX7K6QqartzzFnTyxeJcDmtg5nf38H1H/zMrQN/2xmqyIT4yMdNgHkoIYnriir j2lvEwgSLL7X9W5GxH+pEQKT6vmLgldD9DnYlX5nziEiXqPwSIWfiQysHolLdljJqJH6DC/8jI5 UxAc18XILJCAmbM52RrTArY2JR4Uo2u4bax9fBfoJF/FB8R6GjVaclnLAYc0kQ1gFQFK12vI3ph mrELCm0LI9rj81QxwgoVjIXSnlnQL1a5GeXtuAZacVYvH7Yh1ENG6YM2esjCnLCHt04fTkDsjvh xxSWWgisLPe+HhYQMiSMgFpyAwQ2awAxNxIwybebUjNTe9UFAMdSv2LBSzPk3Rlbvxk6TMO+KZ2 /O/tMwvhnZn4QA0ONGH2hdvnOSynZxn05/kbYHRs= X-Authority-Analysis: v=2.4 cv=ROSD2Yi+ c=1 sm=1 tr=0 ts=6a2677ca 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=FelO9ux0wxsA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=jiCTI4zE5U7BLdzWsZGv:22 a=BqU2WV_vvsyTyxaotp0D:22 a=yPCof4ZbAAAA:8 a=EAuR-l_fSTGrmbixSIUA:9 a=5yU3S35YU4bGjq-dph-N:22 a=Bho9c0fBagfJEIQBS7DQ:22 cc=ntf awl=host:12313 X-Proofpoint-GUID: USFBhcwOCo40WrJvPYmDV0t2iBQrt2QJ X-Proofpoint-ORIG-GUID: USFBhcwOCo40WrJvPYmDV0t2iBQrt2QJ Content-Type: text/plain; charset="utf-8" Add a few clock tests for smp_cond_load_relaxed_timeout(). These ensure that the implementation doesn't do anything funny stuff with the clock (like multiple accesses per iteration.) Also ensure that we handle edge cases sanely. Note that two edge cases fail: S64_MAX and U64_MAX. However, both of those are quite far out and if needed, can be addressed in the implementation of the interface. Also, this tests only smp_cond_load_relaxed_timeout(). The acquire variant uses an identical clock path and testing wouldn't add anything. Signed-off-by: Ankur Arora --- lib/tests/barrier-timeout-test.c | 57 ++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/lib/tests/barrier-timeout-test.c b/lib/tests/barrier-timeout-t= est.c index 2160844b27b8..ec9dc0aa65d1 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 @@ -112,8 +114,63 @@ 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; + s64 timeout; + s64 clk_inc; + u32 niters; +}; + +static const struct smp_cond_expiry_params expiry_params_list[] =3D { + { .clk_inc =3D (0x1ULL << 28), .timeout =3D -1LL, .niters =3D 1, .desc= =3D "-1LL", }, + { .clk_inc =3D (0x1ULL << 28), .timeout =3D (0x1ULL << 30), .niters =3D 1= + (1 << (30-28)), .desc =3D "1<<30", }, + { .clk_inc =3D (0x1ULL << 28), .timeout =3D S32_MAX, .niters =3D 1 + (1 <= < (31-28)), .desc =3D "S32_MAX", }, + { .clk_inc =3D (0x1ULL << 28), .timeout =3D U32_MAX, .niters =3D 1 + (1 <= < (32-28)), .desc =3D "U32_MAX", }, + { .clk_inc =3D (0x1ULL << 28), .timeout =3D (0x1ULL << 33), .niters =3D 1= + (1 << (33-28)), .desc =3D "1<<33", }, +}; + +static void expiry_param_to_desc(const struct smp_cond_expiry_params *p, c= har *desc) +{ + snprintf(desc, KUNIT_PARAM_DESC_SIZE, "smp_cond_%s_timeout: clock-%s, tim= eout=3D%s, iterations=3D%u", + "relaxed", "synthetic", p->desc, p->niters); +} + +static void test_smp_cond_expiry(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_inc, + .niters =3D 0, + }; + s64 runtime; + + flag =3D 0; + smp_cond_load_relaxed_timeout(&flag, + 0, + synthetic_clock(&clk), + p->timeout); + + runtime =3D (u64)clk.end_time - (u64)clk.start_time; + KUNIT_EXPECT_EQ(test, clk.niters, p->niters); + KUNIT_EXPECT_GE(test, runtime, p->timeout); +} + + +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_expiry, smp_cond_expiry_params_gen_params), {} }; =20 --=20 2.31.1