From patchwork Mon Feb 3 21:49:08 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ankur Arora X-Patchwork-Id: 13958300 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 007DDC02192 for ; Mon, 3 Feb 2025 21:51:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:MIME-Version:Content-Type: Content-Transfer-Encoding:References:In-Reply-To:Message-Id:Date:Subject:Cc: To:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=v1O4KkB2xFFnM4LQEpkzFzzUOuPZyNrxlTPhoDkStRQ=; b=srd6auVp5VWS7QU/mz8bzSCRK+ Bobz75Arg7GNd8+w91V7WPn39IzX++lxKzVKsKC1I086EKo4UsAb0v98oYGmcX/96l2K0GBvlQztU QfAc7YlyHoqcv659hTifeMYxhENgU/4WnqUuHpngv8aYKTN7pp6YhMZgn2CUPAOfW/klIC88hOKow ZGV3dBJoFSXELmuMJhTu94Urf4jZeCFZ1Xfo9uEe3X8RBZf+E+d3LkjtN00LKQJlKtnsmRec6E0Wn fwYmrpEqk+IKR7FN0ErwGDXb/TEmL7AeHEUnOmrfVnsgVCaHXGTIsb7+mwgIaIEy7JqsIcYIpsGye wRUu6yjA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tf4LO-0000000GjBu-0T2u; Mon, 03 Feb 2025 21:51:02 +0000 Received: from mx0a-00069f02.pphosted.com ([205.220.165.32]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tf4K3-0000000Gisl-0jJW for linux-arm-kernel@lists.infradead.org; Mon, 03 Feb 2025 21:49:40 +0000 Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 513JNd5N007605; Mon, 3 Feb 2025 21:49:20 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-2023-11-20; bh=v1O4KkB2xFFnM4LQEpkzFzzUOuPZyNrxlTPhoDkStRQ=; b= C1tD97ez+zdbkAIq1R+jvjlcxFS8UzxNEg+g8xtztWuKJwNjrMxEbvqB6T4haMYw LKaFBQ/63fP0Lloe7L+OY6mTGeYnIDPj9P8GEuU2WEyDnIi3qhtQn9t/Q2CteHAx Fx59IerXuKsDe7Ejt7wJp746cNUkXwtvNUmokAp3tqLeNtyIeXv0+5NhkS93jo5X 6LhZTaaARtdxDTlvuAQvpseMR5EcQrL38uUvSpRXwhK9hG8zdthlSB++iaE/12Wn t/HpqxqycClNGk01164vcMnm8UFtt6Mm92dnK1B5k1yUQhF94klnLnyjQZGvm5t4 XcdL2YlT7FxjPgfgexohKw== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 44hhsv3qa3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 03 Feb 2025 21:49:19 +0000 (GMT) Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 513LGWIE029838; Mon, 3 Feb 2025 21:49:18 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2043.outbound.protection.outlook.com [104.47.66.43]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 44j8p270x8-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 03 Feb 2025 21:49:18 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=pAYZ2XkGd59hBqY3/GJ+nsiPVjuIlFbFtjE4hZsm99CP4g2VPiUF55plYK2dx/xgoss76fDLFaULDGU51BOSzLbpwlaySl9LQQvzNuRlWsZe9oNVuX3JCBboEx5sxyWdy2g0Cv7tUC/rdtHB/Eje5m4MABuXp5II4KJ00bVb9JTcN2Yjg2Ykk235bzYxG6eKtUvGFz/DIj3I/nVJ9eA48M3avAVx/edSZ0h0Ha1EvI9/phkb6trIsQYFTxKF5rLwFyTbn1rZNEDX5/ufDp6JE1AqwwQmsI32xd2HR+QMt9Aa1pw2xsRNc2Nvi6xm7wexcQ5g8aWQfjZQVuelw3+Seg== 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=v1O4KkB2xFFnM4LQEpkzFzzUOuPZyNrxlTPhoDkStRQ=; b=J6K/0LF2BV0ScNJ+CJkm+jcEFXJ2W327A4WumQWX/XLtNfsxChLyQNXRAlyjhKQbunBdfmIhIhqRfvHkMqWCEyTpjEnKZgzknAFtGXf/D9QreXkdLx+JDY/Q5HCAwBc3mkBm5WL7pkE3RtUxgeG5eZi2EOmjV3864C1xjyrFckKidI8vRo2kXCZZqOiQsyWcs8iyeuGO749cgrZQmxcvtwYt5Ph2pTzfwZ7uO2oiKjYQbhSszyvJEJA2Jf1OtnLxHbtayqbHuR/ogl/FTuSeV09INnYcWL/x2Ofm4377QkKg6QRHSfeyVPoTLgHmuJgw/T+UBim+WUHMbQOL6z/OrQ== 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=v1O4KkB2xFFnM4LQEpkzFzzUOuPZyNrxlTPhoDkStRQ=; b=aKy8nfBviKz7Q84s1wQY/zoW164xm947f3eKHgQPI7tCH5EbrGZ0PvDWYUV05SsXswqGCc5xewEs9bh0Qye6exnXJ4A4WE5IarO07CjxIiwfpuIrzptjMyce1S/sEiePd/ehmfeLRUBmJWR+Dk/3LTnM+JfqiSzg8OjomVkgQJU= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by IA1PR10MB6854.namprd10.prod.outlook.com (2603:10b6:208:425::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.23; Mon, 3 Feb 2025 21:49:15 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::25a9:32c2:a7b0:de9e]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::25a9:32c2:a7b0:de9e%6]) with mapi id 15.20.8398.020; Mon, 3 Feb 2025 21:49:15 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org Cc: arnd@arndb.de, catalin.marinas@arm.com, will@kernel.org, peterz@infradead.org, mark.rutland@arm.com, harisokn@amazon.com, cl@gentwo.org, memxor@gmail.com, zhenglifeng1@huawei.com, joao.m.martins@oracle.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, Ankur Arora Subject: [PATCH 1/4] asm-generic: barrier: Add smp_cond_load_relaxed_timewait() Date: Mon, 3 Feb 2025 13:49:08 -0800 Message-Id: <20250203214911.898276-2-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250203214911.898276-1-ankur.a.arora@oracle.com> References: <20250203214911.898276-1-ankur.a.arora@oracle.com> X-ClientProxiedBy: MW4P222CA0006.NAMP222.PROD.OUTLOOK.COM (2603:10b6:303:114::11) To CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO6PR10MB5409:EE_|IA1PR10MB6854:EE_ X-MS-Office365-Filtering-Correlation-Id: 86186d80-b3e1-4ebc-a0ed-08dd449c9a84 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|7416014|366016; X-Microsoft-Antispam-Message-Info: vd8i3fjUbDRIPTtUb/kJ1vzuuUXnToKKcKmSgAMQtGtUYolAVyzCfa89amd84BDEBTa5Ed96a3Lec52NB2HUGAxIyY9x0YCeH4DoDO+5J2e7R6M4+422yuzz0BwfIse/5cO/gU9J/DI1iHvzSwUO+FuXppUw+4sbNL1X3WmDjkxcvx8MBzdmdqVyhRJcP+zrGA5vnifUDiJ0ttfY3kfwiUXOkh547ce6dgiVyT4g4KBv11/6RaEfSPKYWxSWuSvmL2JJ5KQ4Ygur7pGC07+CqosS/HcOHsQABJ3+UEogUpV62pPAFq12EROimsLxDs6vfcMYHiR4vbZ2F4J9fWqyCRabkZ4KOyZAPxhOsG8YJjkiXYD8IPjhYEcHYU+OX5/A8JPYTB7a5WLUx/oQN6C8i4s24mKF88MEyFjK7gxDoeUyQ6f9iicFkalw21yq8VdQEVU7ZaVUl+OSjoG0CduCxwM3wzCNgA58xsyWVYG7rOHDghJ6561WQ+XmArtGDC8qLhQg6JNpUJCzDlZaKUa38VviA8UNkNscdXHChAqbDLJVjVgD7wFMMk98QXaia3k54Q1BqprsAZmszGrXaOdn+ED3CKg8Jt06fTWs4WwmBfukxQYZGmuXmeV8pAkPsZqJFLB60ZX14OIUhBo8rTVERKPLW6QYEdN89tESc/pQQgfzbbJKQveRs6dZQZ7Ck8ZcOC5Bm8rp6kSqi/OC0/nbTdreqYIV/2oOABANVKbqRmXsI3GXxLYGpei7CM6QutjHPuxskoaL4cw07cxVqMbS1A3nRJDWKOmAdCpSpUs83yFmLAfUPmqcHb5IqJjA5KopbkPqjDLsiR5qiIvarVMQkEQ0Ta05j4IoAd1e/NGV4N0cm6sJf+5l0zCV2DWBguc/LLt/MggtZVK+BDZ7jq8SrXPN94p2uF1px+e04pZEz+oeZk9+0Bxer0LdSLyuXU5NANu9Km3GOwLQc2HTfGfeNMheQaJmOLcefnumEj8a73ONCZjcdLilN/sPkL57NupODpMo7R+vpJc3rtZmsHgR/HXBJnnqNjJ7F+qE44UowNpWWn0RKO13CPsJRec9ogRwIeC3ZZ/eAGbEVGJExLBCTbDjOaXyp/CwOU3QvSpacN5bylC7hMOzn6nWsc6ycVhfG08XQTipTS0saSCrAKPTI4SIWwSsNC/+3GjwUvNlmB0JZTq+8rS6SXyDcCXJebtnpfJVrtJat7nSl+GrHcA11xICE0DP6yigIRwITNAQY5aB8Xeow8NP08dIzC/L4iR2ZxHFmyL3Z4zWo/fBEIXDrlwFlbF8JkMpgkasIPr/JOe88NcLHQhoO6+phLw0VX0OG+m4y2OylMAHUozaEP44GVdNjPjllRvcZyZycOPy2M1PUDmD3+5lBa9G375oPCtA 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)(376014)(7416014)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: tVYmnpf4kWJ0D8fd6/ot4S048vmGWeT25R0jCrVSdSGBzLx4iQErjX5udDheBPze9rgumoMx5yzJbJmVo9mge9+OjGNt4UiYxmRteHuuZPOZsGZVp5aruHO6RpD/ZpfGdXAYutU7opfjX4bAR+1s8UDiE4HESzAQvdr0S/zr7fM//3wpOeBCdlSTKFe1v41dteNo/SMl7gWGD38U3vAaqWyCznH6JthVyRBQUa1OE+FvwCenf7QHx4IAz1WxaOrEf/00cuQaXsnj1Dfm8fWvKaiibVtsz63yzuQQdeaglQr7Fpr1FL76O5+6Fzn1RDQFP9K5qeip2myyYaMDck4NN5NL9OHa/NKbdSIPVsE2kTEM7Xz3sS2MCv12/WvV+jggftsEenPYO5Lmu5vJFBSEY2knTMpxYFM6PpNVnnpEymLplP44/cWWUfpiY0vMN3O1r9iF5x1w9a/HQx/HqDxCwvXldwbOEWKurnNpRJdTfS3JQZw6q/MP9W8j2Sv+3r/OCSr19YbEOUrAV7SlW6uatvnO2i4XK4gvQ3JCm8a3iHvKU2MBNBGWa0yw3tWDfbkeRKNBJWwijKTmstD/d+Bn100F3g6IbqJEMbXMp3HqlbV9AWwvvmmv5aZPhvN5PA4R61jSLZ1a8veDXeBCYclcQnPKtQnTjNp+43RauqCJVRmux1U4ifbj8IW+5rvNh8H3GNiqQGvmUoxbjyaUdNwBTtTLoDpuxqsuOl8JMBLm02uOfeenaxn9qvNJSN5pkuPwP9g6qVdNgdlr5swe1iBFvu5nCvaTOs3aFedKmkO7fdcJrkgxN6onB3xmXeT6gO7chZpTzyb778yqW+l0SldqSwTLDUul5V+5OY+SzKL0XGwnnGDbTTkDaMlcrzLq0hCAR9CZU/hHb40lqTDWhVswoGaBiHZUaa8+GQugXqqdFOK8xi1kCf02jCTMpMjQ5/bJScri2c2D/5S23F2p30OWs3Kj39aOsD3JHVz8bc0hL15KPt9Fy+iwzHIolsyGAhcYesehZjccJitulY9oLjH6eUS+SvRK//m1FIGnRPSn/QHHyK0KIzDKsG/2UD0TcVkAYAGv3LDxBPUx0ttyDbkBsPNQl4RqpKexa3M3beIgUqOFfi8eAEqoJF3bDgulx2sX0xUmUEbt9mIMEnPaSFSH0rUicmhD8nKiWHURVAVUMjUxIv03IwqiAOvpHB3Ou5u0HwNiKZ40hs/OJZNMoRancXfnw38ZHcN3FOKT2vtJ3gCRlhJRl98+crtTl0pMczXN7HMqFbA8F4MDPl5wMuuSOHb9vuMHUFnoTCi3pPHgeBlDm8W0X+f4DdSY4ATW69GCBaAtBlQsnpPzumHVpiiRsXLeySOvZsbVkLyl4MKNWBuJVIVez+kb7c/qN26KDr8riWVWrqXYC9Owr4kLrE6q93eywFbofnK3p9zpOGLPOZaZlQ2EQcykBRmBX2g9G0Xyy2JmIeVxU4Ok1ZT+f/0Z5WqIj+g/oBfFUR413BLBtgWNTnYjLkd8zMZu0+AYcUTNXMBMSt1vyWWxKdPJTxGtspWA4MpgPKlQNHHNyklG5qo19UHWnhQ0Vkj97QbJuIjqcYFLMrC9lpZutZMhd2arRA== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: nSPQzj/i3j4TAj+1AK8tuIP4Nt23OQXCaA+0ikuMK+cH9e3vLIfrEACy57fzeWwYfuxOfO1XJBRq2+p53Tm37Ms9go2P5jwM9XB/kltA/iPIP/v8psLp7FakuEvnGgOxc6hLUBZBF4XNdVTwBBiQVolzCFKpBj6oRl7OOzZ6WpVbCe4Y5/CFZVn0jfhIQLv6xPiGL2r1Yz/nb6cDWY0R8/poTwllQr8lDLJ3fA30a567BR1aq1hCYZmFSW67iJHR1DAn3kbTfk8TQOqR5PY479th9+NRUxQn8H47MBoVfv0a2eCeRFGoLe3MoPQ04XcBuEmfyG6OowKnYPlr2Ror6UKlRgAJ2uhU+wQd6QHaz9ejHQlv9vQZKtFPSycquP1r0fQMhngVQiFYmvgI97Km4WMt2mARSCcAyVfrNePlNgnybPdqZM6ncZSa6kE6vTRdZcwbHxBWIMzIsDpJlNlv8QoChviB/safMKWEqGor4jZa7zyBvUUoSs/k+0K2yWoAjIqdXTBtGoZr8HmvLZFqJI/KyRw6rugkWq/OSKC588dOUqArWCSqaSwGjIM7hRSsqfZopeS6+VXFDWOepIusm9tGpBTxHM8PS9Z42yILYPs= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 86186d80-b3e1-4ebc-a0ed-08dd449c9a84 X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Feb 2025 21:49:15.5738 (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: VQXPv6GV/jHg2nBPR/C7WYWZhK5aZr9rMi1EWo+iyR6hr8q7AuRICxSXkjGZxA1jltPEcq5PF3ZPGCTqToZj6mQ0QJY/wgjfHfpwARvsKY4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR10MB6854 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1057,Hydra:6.0.680,FMLib:17.12.68.34 definitions=2025-02-03_09,2025-01-31_02,2024-11-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 phishscore=0 suspectscore=0 adultscore=0 mlxscore=0 spamscore=0 malwarescore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2501170000 definitions=main-2502030158 X-Proofpoint-GUID: gvQ9bUnD67dGxim4Xg6XTnKfHW0zuc9c X-Proofpoint-ORIG-GUID: gvQ9bUnD67dGxim4Xg6XTnKfHW0zuc9c X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250203_134939_212494_E06AE418 X-CRM114-Status: GOOD ( 18.93 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Add smp_cond_load_relaxed_timewait(), a timed variant of smp_cond_load_relaxed(). This is useful for cases where we want to wait on a conditional variable but don't want to wait indefinitely. The timeout is supported by extending the smp_cond_load_relaxed() interface to specify a time-check expression and an associated time-limit. The generic version is implemented as the usual cpu_relax() spin-wait loop with a periodic evaluation of the time-check expression. To minimize the numbers of instructions executed in each iteration of the loop, limit the frequency of the time-check to once every smp_cond_time_check_count. (The inner loop in poll_idle() has a substantially similar structure and constraints as smp_cond_load_relaxed_timewait(), so we reuse the same value for smp_cond_time_check_count.) Architecture specific versions can implement this by waiting on a cacheline to change and an out-of-band mechanism to allow for the time check. Cc: Arnd Bergmann Cc: Will Deacon Cc: Catalin Marinas Cc: Peter Zijlstra Cc: Kumar Kartikeya Dwivedi Cc: linux-arch@vger.kernel.org Signed-off-by: Ankur Arora --- include/asm-generic/barrier.h | 48 +++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/include/asm-generic/barrier.h b/include/asm-generic/barrier.h index d4f581c1e21d..31de8ed2a05e 100644 --- a/include/asm-generic/barrier.h +++ b/include/asm-generic/barrier.h @@ -273,6 +273,54 @@ do { \ }) #endif +#ifndef smp_cond_time_check_count +/* + * Limit how often smp_cond_load_relaxed_timewait() evaluates time_expr_ns. + * This helps reduce the number of instructions executed while spin-waiting. + */ +#define smp_cond_time_check_count 200 +#endif + +/** + * smp_cond_load_relaxed_timewait() - (Spin) wait for cond with no ordering + * guarantees until a timeout expires. + * @ptr: pointer to the variable to wait on + * @cond: boolean expression to wait for + * @time_expr_ns: evaluates to the current time + * @time_limit_ns: compared against time_expr_ns + * + * Equivalent to using READ_ONCE() on the condition variable. + * + * Note that the time check in time_expr_ns can be synchronous or + * asynchronous. + * In the generic version the check is synchronous but kept coarse + * to minimize instructions executed while spin-waiting. + */ +#ifndef __smp_cond_load_relaxed_spinwait +#define __smp_cond_load_relaxed_spinwait(ptr, cond_expr, time_expr_ns, \ + time_limit_ns) ({ \ + typeof(ptr) __PTR = (ptr); \ + __unqual_scalar_typeof(*ptr) VAL; \ + unsigned int __count = 0; \ + for (;;) { \ + VAL = READ_ONCE(*__PTR); \ + if (cond_expr) \ + break; \ + cpu_relax(); \ + if (__count++ < smp_cond_time_check_count) \ + continue; \ + if ((time_expr_ns) >= (time_limit_ns)) \ + break; \ + __count = 0; \ + } \ + (typeof(*ptr))VAL; \ +}) +#endif + +#ifndef smp_cond_load_relaxed_timewait +#define smp_cond_load_relaxed_timewait __smp_cond_load_relaxed_spinwait +#endif + /* * pmem_wmb() ensures that all stores for which the modification * are written to persistent storage by preceding instructions have From patchwork Mon Feb 3 21:49:09 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ankur Arora X-Patchwork-Id: 13958310 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 5550EC02192 for ; Mon, 3 Feb 2025 21:55:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:MIME-Version:Content-Type: Content-Transfer-Encoding:References:In-Reply-To:Message-Id:Date:Subject:Cc: To:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=PH02Jf7Pt7dKKHK2aY/SF55pk6XPOHTWsr2IZ5TmImI=; b=lItTAMq7u3I886YAo6PpBAsyp9 DVEeKrr2SuttM4o1nQqzJPb3M0iszPlPypqzTaQYGUidFW8tjd/DnnSy7NfkeE1zi2IpDGo0mzVk9 GizmOZsXRCBGmdkDZcZFx3e9MPCcCtgIPjXcTjDN1QW4vsgpk0KlI2vVTGP8x42XMLoQPEhBQVBeq 8sHi6RHcQ9mgKyg3C4EdPsREh6EH0n4ICwLl/J51kMgbgNNosSxUipcIvazcrFobsa8Vt7NQV57s+ zpvzxn8G0FsqzVAHMCeN0O3PBRNkvYsuZXkioeA5LizZv05ebeVUUmlAvfOQn7YYDSmqg3ZNWsbfP ryZLvKQg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tf4PI-0000000Gjmj-0BpD; Mon, 03 Feb 2025 21:55:04 +0000 Received: from mx0b-00069f02.pphosted.com ([205.220.177.32]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tf4K5-0000000GitT-15Wv for linux-arm-kernel@lists.infradead.org; Mon, 03 Feb 2025 21:49:42 +0000 Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 513JMtkV024975; Mon, 3 Feb 2025 21:49:23 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-2023-11-20; bh=PH02Jf7Pt7dKKHK2aY/SF55pk6XPOHTWsr2IZ5TmImI=; b= G18ohPU+VPCbG5TvKJCgEbsyRH/ba9GB50kfi/d7aY4k0+Q6/puY0ybgd/jzRl66 76xvAO/DF+MR2iqnQR/vE6L/t7sowXPn3316Zx7XrwrbdS9umAFs2vD6FNoDEudM 6A2JZ5QJPUbkR13+aCFLDeGQC3fNI1V72e3BAjAaPUdw9btITj5H9w6e07KtFNc2 9LjJ9/T1P18uIFUDbBltddw3qzRqQKjmkVjAozCxDxTBqfr1wRzlE5mT/EHGa0Q+ k6SSQjVHeBS1dUogFOZDIVN8YEUDTn7gwNqJbmixvsSnaSKDzqv1LVFG2C7DL3R7 +gM6xgB3QIZYK+1tEfOBGQ== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 44hfy83n20-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 03 Feb 2025 21:49:23 +0000 (GMT) Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 513LQcxp038900; Mon, 3 Feb 2025 21:49:22 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2040.outbound.protection.outlook.com [104.47.66.40]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 44j8e6xjya-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 03 Feb 2025 21:49:22 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=LiT5eOJVhNTKkDdhRLUaEmlZuu0ZN5zSj7r/J9gMFj22odJ1VvCNzrWZhaUto2RltcM8XhHKfhsbVIXepqKDy5tESmI0QTdX11FHOeX6fkZ5RTMgp4AoxIH4h6D5tDr8L6VrlcJ7Myy4stvUcOHQxG9LTQfs0FRKTsGanAVeSc1npf7FPP2tIK+eHZfOc/Vtgeve277f2w25ZibPQGIQzEjSMOPwRs1Aa4Os57v4mpzEv6Z35dBRvjsjG6TSw/iu1a9kiZNYK2a2wOFTpHTWIx6tQbsBoYnTl2rPU+aWbxxANAwy2y9xCAgIFV3WdkrPMt31VGraHn16QZ5HYl+Iwg== 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=PH02Jf7Pt7dKKHK2aY/SF55pk6XPOHTWsr2IZ5TmImI=; b=HQ0gVX0665YErWGTZ99NOSVCVubGlONa3smYf9u7SnI+Hs1D/XVdDoT+dpUQ1sotr4FxEjwmOXWQNUGm50yHWtvakWsNBWKN7lRth5mvJc8mX7qd9jG3jHwre4z4F5CJZmmuNliLmaTZneYwIjmkTWvM73eAqitPm9PHjzyBlpJ/RQ/ySa78O00SMmySqTYQIdiGvdAXj1Mn0gBQj5/l5ZDkqs/vXqds5CJ4I1iYczpu6Wa7JPU7pNIKGSSePeflbTo91SiVcqZOaNo0HKhGSahUmTf64zPE213YYGOe11/UIlWZivdjxAt2HN0xKq3wQ9nmQx26jCChqeLPo9LCrQ== 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=PH02Jf7Pt7dKKHK2aY/SF55pk6XPOHTWsr2IZ5TmImI=; b=YFrx+d1VGY/pfeYBYt+M2Ull26OISIEqSqgB1kSpaUn/VCZ5u3G/XIixq+1lIf6/REbVuo1xv9CVo2KNfGVHeNw0W+LyjJc2VA8MAg4ZI20kQPF1GTki2mT8Siuz8iJsFjvl7eTzymFB/Qu+0cX2QQD1OV/mU8av13tst39nEUA= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by IA1PR10MB6854.namprd10.prod.outlook.com (2603:10b6:208:425::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.23; Mon, 3 Feb 2025 21:49:17 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::25a9:32c2:a7b0:de9e]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::25a9:32c2:a7b0:de9e%6]) with mapi id 15.20.8398.020; Mon, 3 Feb 2025 21:49:17 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org Cc: arnd@arndb.de, catalin.marinas@arm.com, will@kernel.org, peterz@infradead.org, mark.rutland@arm.com, harisokn@amazon.com, cl@gentwo.org, memxor@gmail.com, zhenglifeng1@huawei.com, joao.m.martins@oracle.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, Ankur Arora Subject: [PATCH 2/4] asm-generic: barrier: Add smp_cond_load_acquire_timewait() Date: Mon, 3 Feb 2025 13:49:09 -0800 Message-Id: <20250203214911.898276-3-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250203214911.898276-1-ankur.a.arora@oracle.com> References: <20250203214911.898276-1-ankur.a.arora@oracle.com> X-ClientProxiedBy: MW4P222CA0013.NAMP222.PROD.OUTLOOK.COM (2603:10b6:303:114::18) To CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO6PR10MB5409:EE_|IA1PR10MB6854:EE_ X-MS-Office365-Filtering-Correlation-Id: 93db88d0-f448-49ea-6df2-08dd449c9b8b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|7416014|366016; X-Microsoft-Antispam-Message-Info: NYyZY5unlZPIpSCpKo3j6R3a1jBc7H1LbbPwXP6RwEuiUVqE1ai5RUgfzyZEguzw8z1c0X1uHWSYppKyDvyZHUrMcLiy6kjWVsxiLU4rD9ac23jYlE6UxW/Ycd32mJZh8hpQK+oAVlLKFdc788Bm8i4RAlgBUsfW4JFbHhLfOjRDyQuXnA4oUWMclZEiayAAGeBUbOoNcRxJU4MYReoqMuUjqV/RxkYfdc4Ndp8rBjm27eGQSuM+Cb5QZlQtbYz4ppirayYzI9Lln4X69oUoVfxRgEMKXRETpqQE66aOOHI1bBfB83L3WBccFeC5gCpfLcvu0VQGvAMJjWD/XPpC+FiGN4EZ+1h/gIaRXIqwY7DXz6ZmNYjHnAU41NYiEkgYoX5pPUierDQ8VLCpx1M2BhUNZmBmSpfpBCV+7lIe8WuV1O8Z/9lQtm7+Ud+L8BBlExsKbNzQXtYrufoGRWHbgn8N2pfP+SRpX0aRK0wOrE3J7jv84oXXMRcTszLsP54/Rz+/xhHN3IrnCvdUYM77nJEcJkqAgomwk4aLxZPJBOSrN6e6r1bVdzIvhsRL5g8PR2u/OeUd1ejqaz9kQvZi6UIF5bQQxxpWVcm3usEeEn2fwrDQA2E1nVt8xwxfYLB+6iWeajQkmy865+pLEwUz5iHP8VJ28cSDBVec9iSgkMzuQqTbeBFSOc5ISC697qU0X1bFLUUwr2CY9xy36TZhk6bzxPJpSNHuxfhDUKHvF1eW38qXxmg4Go8RY6uP/xa7Brh1P0mURirQMsIEOC7cFqVgzMcqsovs0OuuNAjrFk3XgZt2tULEyog7nMfgmzA2TOYPR4hos1cdhLJPE4QfgaXTRZSnteGg6y7CaPf5d5NIhaD7J4x1ylKxZ8/mV8C/X5Pwnu0eYpastiX/mvl+plMJ5BeaOTCodRuDVCgqqsMYr29M2n6Xx2g/cQGfjpn62maF9W+20JD3CwMYv1ySv1bPKjA33F5319ZFWG5ae3CAx9jgTyny8LF5Q2t+pWToTDesap8p38B5TJDSKcKfnhTuxV5xd6BIK4zElxckvK+OVLPW24A1wcH4EU/Bqeqw9HUzRwK92hXhyucNFKpi5NdjIssIyHlQZANFHoM6JA5KAZPGNMRbd6ZBBAZVIseB7rHf6QedLhSg8sYODzzD+CLiXx54ShWOirgVZR2MreIqwJgBSR/YQK0zJEZBvP47bta6g40cXpJyQNHcqsujZrIY2oVbF/sIpLjSiaIvvaE3sVAuD5BR45LRKXSDoqMcqtce2UKQd6f5tkX/2s9vbKrW7vk6f6nN/tLXct0i+eA2xrRQSmNz2UldewaVzufBa79FjPM2xAyGKgMoicrcrhnNBo99YEnEVgM/uztVP9n0kXN5cz93LpIz4U0SPOFx 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)(376014)(7416014)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: PsFBcMsoYcqZJ/hdIJjxUfpGf+s1nmJNnwytdckRg5Uilf+E+cMq4RB/QkEzGsCOTbfFSUa+AHLiO2rivlu7yxKyr9r+jzB/0SagP++9vUDS86iFUHn1RTnCuy8RKmCKjKpAo+mYfOLALUpypDz19Ssyiqj3I+tRi2yk9RcMMzbV/L+XGE4DaetLHNZ7/vObZvaXBiEHWjayn2cYNBBs4H/uMF3T9iZ4wVeQI38Si2Eho1vNZkImOZ98AwBm5iakQHjHiaSHfSqCuHOFMUIHPmlLrjOF/A4jJNyX2WJQCc9ztyCz5fIhsh3cZnjvc+Oc0DjYGj38tRUKgcNw/wRgEqgxCoL+iJZ5W+CY2cgq4KAF6it19yNYPBQS9CdLP6Drgt1txIotjLnDWo+kOn8FruxRZJCvJ8afeOo22sCQ+OZ7W/1DneGIoYbPZGrkGK8AZdkkF37kr4OAxL7Xa8Jpk2Cx81RHA50akQKOGw49QacHf15Ni3R2xNw9gC1gbdM4M1AGcmyr03tz4mGBu/J/yzkdGguzslEEvSzd+UShy678hO5lp/mtGNwBFsu71+81Boar3kD5CZLuM+oel+Atb6fFt/HodT2ut+vW2bJ5BaRckr37+osLlxvn2y4xvB54UendSrLAcJhkQL/Chex91HFmwBgzTCu8y9IYDAX/gS0SgFNkMLPOtgtwRJ1eiRYEeA00szEVH282omryB6zR59NJL8CSWKGDjTc6D5ia80dx4LMz0RbhfZrMRw5TXlg8bW8T9ddE49+7ETtMXQCl0kGNj0y84DrduPZ4uxYL0SgYjfN5/1BkFk0tSjnNcO4QktaTqtdkSyPeYkZQu+sYlduZrygnxK37rx6zsg0Co2ajJfbydWt/FKaH0LndKxLLRQPN/PPHj9K3+AdorA1Cb0GKUzxVC34UIvMReP5XBZAW2YMJDDaj6U7blEVY07KAnBzGpbbpq8IVnxjD5P9Y+d0beh/80ktumY03lAJCoXczscQMmShwCOYr84eQlS3GxBckX85RdMi10TKYtrPfkOAP0lFE+KD5g1yVV78bKS3lOLRVrZ01CKraz3zbAVapWObwLPmAPb4fJ7QTs40wSlMu56iYrhbtXYDe6RfSla70CEXZHEsuELuX5q9rW5OqYTnLWAzHaU9tuotLo87SEdfn4z0+3SHaAaHOG2k07pzX6FzAyceAoUWItcFjZp9PFL6DNjLXxGIfHr4fMARYzrSsM88Z68HFvmU+eK/xJJNKQw1CNM/Q2oUx5E42ItPQCJRE7clAuMPN2i8ltyRHM/NZT5GDMXNsn4IugxDIujfQNf9vSdZQ0X+au09XxS4FbsGorFWJcK86Y9sR3VJZ5QIK6Os40v4bIKfomKu2htw1ongK43aIzO34LRIrHTtukyxsWI9ovYuKvbc4hQxQa0lg/vrD8kUkBggnjpG8q42sc2pM2YKkn9tPQa2CCGDJpA6SuNSSfcLUCoZpaw8axd/AWZZce9lCjh2691di3dBldDjbzL/vQgI+c+i7/7WYGcd6rqFUFKjpennNE6Hp2tlYgRY608xGNDQ4MCHkuEbgLx0hITDZUYBhsodrYgbJ1fhKiICBMA/o8ay/kLjZaQ== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 8hwHpYmMLf6GmsAROfGxZx7T4ks/Jyaz3QFAWbOMj3XKa5jcv+FYzmfmpAKwtKNig31QFKH8vzkm4wSf1CMiW7LVMWVSmnp307Af4AR58YklZG+FPa6/LL5R+mxvE2ytktP/I3+vQ0tZLGCybFTinexpkw/f4V2KPxOIPdDpElqWHhMIOK7S4njaz46b/fYULi165DyqmxbcSHp7EZZpZITGUTNZwvGy5Ruf0C7mz/oHMR0NLSfhx7AiQq51PcmTqK4OXbXS/zqppxXRh9t9Di4M4CxiWmIHvNG/lJ+kVCwKuwnmAPc8xy5hnNvqYAAOIVx9tmqe4rxc183W1AP12uioERaCjXxq7OLx3NBza/SbVyADbResNL7xePYF3k0JbtjNOLzcjzkBMAjEjgMzxP55kUqUvINwj1elbZHVaNeXXQz3+YDsRzbqmLI8fuSFOrVgX8vHU5pdDOb2TM3l/zjhngC1aRkveq56Uf3mM89UCyG6bfOvhYT/lsqeaQEonM5IYdXGfHVDkOKJt4bPZP8FRB9kfZO/2XQIjAPNfRVRM1JpzOx45Z877Y2eMa6N+PTO6jcs4PG18N98TQ7OfFDgAFJdc8OvlpJcohIqNAU= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 93db88d0-f448-49ea-6df2-08dd449c9b8b X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Feb 2025 21:49:17.3314 (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: BO0c8rJMd7WtMX4yhJa++vKHB/DXv2dzzqTzC4h7TlplU4FoFra8XuULH0nDlj1vTtxk0QYcxx4VIsMYCHa7w1273b8l00mxm14MpMVrvTc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR10MB6854 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1057,Hydra:6.0.680,FMLib:17.12.68.34 definitions=2025-02-03_09,2025-01-31_02,2024-11-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 mlxlogscore=999 phishscore=0 adultscore=0 malwarescore=0 bulkscore=0 suspectscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2501170000 definitions=main-2502030158 X-Proofpoint-GUID: TNWc_Uzng5y3uaG-VSCBdXt4TGe_22x5 X-Proofpoint-ORIG-GUID: TNWc_Uzng5y3uaG-VSCBdXt4TGe_22x5 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250203_134941_413523_8A46C29B X-CRM114-Status: GOOD ( 15.45 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Add smp_cond_load_acquire_timewait(), a timed variant of smp_cond_load_acquire(). This is useful for cases where we want to wait on a conditional variable but want to ensure termination. smp_cond_load_acquire_timewait() is implemented via the relaxed variant, with the additional LOAD->LOAD ordering via smp_acquire__after_ctrl_dep(). Cc: Arnd Bergmann Cc: Will Deacon Cc: Catalin Marinas Cc: Peter Zijlstra Cc: Kumar Kartikeya Dwivedi Cc: linux-arch@vger.kernel.org Signed-off-by: Ankur Arora --- include/asm-generic/barrier.h | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/include/asm-generic/barrier.h b/include/asm-generic/barrier.h index 31de8ed2a05e..62673ad37db2 100644 --- a/include/asm-generic/barrier.h +++ b/include/asm-generic/barrier.h @@ -321,6 +321,29 @@ do { \ #define smp_cond_load_relaxed_timewait __smp_cond_load_relaxed_spinwait #endif +/** + * smp_cond_load_acquire_timewait() - (Spin) wait for cond with ACQUIRE ordering + * until a timeout expires. + * @ptr: pointer to the variable to wait on + * @cond: boolean expression to wait for + * @time_expr_ns: evaluates to the current time + * @time_limit_ns: compared against time_expr_ns + * + * Equivalent to using smp_cond_load_acquire() on the condition variable with + * a timeout. + */ +#ifndef smp_cond_load_acquire_timewait +#define smp_cond_load_acquire_timewait(ptr, cond_expr, time_expr_ns, \ + time_limit_ns) ({ \ + __unqual_scalar_typeof(*ptr) _val; \ + _val = smp_cond_load_relaxed_timewait(ptr, cond_expr, \ + time_expr_ns, \ + time_limit_ns); \ + 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 From patchwork Mon Feb 3 21:49:10 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ankur Arora X-Patchwork-Id: 13958302 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 8EFA8C02192 for ; Mon, 3 Feb 2025 21:53:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:MIME-Version:Content-Type: Content-Transfer-Encoding:References:In-Reply-To:Message-Id:Date:Subject:Cc: To:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=oW0tJTRh4YPdx5OOsb4s6vVe/A3u1PZOPg3NHKdRyws=; b=mHwaXo/AfAFI7cuPLl/rcXbP+U 9CKL7ImnHEtliJQN8bIpqOGCkMkTP51rjcaiT8ZB5wvrKT2NKn6MmHNyYX4vYhpW6sWN8pBacy6gU 1xxzOpw1FAfkU1KQwNlmq7dXy93fDzQznaeZWITqIuIyz5MPDbn+EMnNzFAbtnQfjhCEMb5t87ztu 022ZjI0ioaTtrVh1vipgF7VbKRaTqt2k9t+PIYUkwrfg6l4jvFpltjtmUhXQBS0UgeSeLsLIB2FBD ByXhIX6cpNjTt5GYK1wcT+NPUKF7P0heMtVN0/AdlVwpn4463BWlwVDR6Qj1qeZ6hrnTmMFfAKq5f ZW22B14w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tf4Nz-0000000GjY6-1kUa; Mon, 03 Feb 2025 21:53:43 +0000 Received: from mx0b-00069f02.pphosted.com ([205.220.177.32]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tf4K5-0000000Gisn-16rs for linux-arm-kernel@lists.infradead.org; Mon, 03 Feb 2025 21:49:42 +0000 Received: from pps.filterd (m0333520.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 513JMrXB001197; Mon, 3 Feb 2025 21:49:26 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2023-11-20; bh=oW0tJTRh4YPdx5OOsb4s6vVe/A3u1PZOPg3NHKdRyws=; b= C7RzcQ4ZxvGT5Dl9JlWdI4duMQ1EsAnJatUJb6Z6YCwTsaK2powS7Ncb2dhQkLH0 L0T6TOT1PVZDsyfE+4IKFv9VXP/SpXofNJkITqNtvn/QxB7Hwk2LLOvIUo9POoXC O+PjhKSwpvgmOAy7/XyxK4xPk7UOOBLZUSzPUdAhMeHlfwTaZjg7PVj6+7pN3WbJ pwkZdduQaGcmnaThqHsMm4xIAq0aGIg5rtyUoPHdP+zNI6eXK5w+WOXAjvie1/yC 9FGJQO0fDfCW0TjdxpBiZMzrvF0j4mSMVyXdMDNBK1t3rzNUtBDtVQKoFGqfDgDn 9qQdCoqHVCQp7782x7BNeQ== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 44hj7uukrn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 03 Feb 2025 21:49:26 +0000 (GMT) Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 513LW2L8037710; Mon, 3 Feb 2025 21:49:25 GMT Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2169.outbound.protection.outlook.com [104.47.59.169]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 44j8gg6h0b-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 03 Feb 2025 21:49:25 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=WNt9GRRMSAu0/cD1m+MgbJwEdmrJUzB6logGcUd5TdcXt0FtdO7IeINXv62IdvigsdoNYgQlDVNRFWAUbQyWH7n8K5L7lR3pBtu2PCc2HaJleic1DiSmTPMMoGYh9RfsOOzQ/V9QxWe6R8hfUv/iM9LZojSjpi9Wayr5Rk+TkH2ZWUkj5x6wvQrXPpKaqX3NLXkqBp829zlsofXHC3nAcIgCxWNwK2UW6zwMEorI2BelbZybnN0NNMwvuObF7MUYOZ/QsMdIIR357miRM0eP4qPI9Q3ajLz8JtRAQbVY0KUCaQ6Cltrg5Q7T9LA+ApBp/8hbtaLN4lBonaU2owbJKw== 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=oW0tJTRh4YPdx5OOsb4s6vVe/A3u1PZOPg3NHKdRyws=; b=lsR7X0YAVqbtE+jSaq/17sAXhRb/Xtl8ubvOlQJkr/Jsfn0sv+MKqpw2JeDJvNXhW+qaVq+/kgCtaEhU+aGwW1BHlSM+gFlOjOwUcdycHLLL3lFbTuR3tkmhbfdRU9+zXDzEpdOq4nhpneA+/tE3QaZbeC9CCJZh5H7vYU1Xme+QtfzDWaUTIKoT1UP4OrNEhAA2YJ5PXrdl0PD958bv0Q1SReZG6pZHJIrjfouUeKj/vRZTnU0oeqiqmIlBX16g2VPIovo1+YPAvizdvg1I6KF7OH2+pevKoKkT7IslTAOkPl0SKpv3K68VQIiN6sYD15DsHek9ugynOT1Hwwdiag== 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=oW0tJTRh4YPdx5OOsb4s6vVe/A3u1PZOPg3NHKdRyws=; b=NucIihWuEU/1LFHxliblzUWTYCjxjKLloC4OFSUkn24QRtbKSGWF76UETSvhvniCt5s3Gdd30pFYnvgiAicVQdUCWwVb1jNQ4z1S5pTF/O0r6yWGp4v3XS7efaiBfbo7B+2GAzWvTwbcyV9lcsLOs82pFvE54yggle5KpQpmTkM= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by IA1PR10MB6854.namprd10.prod.outlook.com (2603:10b6:208:425::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.23; Mon, 3 Feb 2025 21:49:22 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::25a9:32c2:a7b0:de9e]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::25a9:32c2:a7b0:de9e%6]) with mapi id 15.20.8398.020; Mon, 3 Feb 2025 21:49:22 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org Cc: arnd@arndb.de, catalin.marinas@arm.com, will@kernel.org, peterz@infradead.org, mark.rutland@arm.com, harisokn@amazon.com, cl@gentwo.org, memxor@gmail.com, zhenglifeng1@huawei.com, joao.m.martins@oracle.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, Ankur Arora Subject: [PATCH 3/4] arm64: barrier: Add smp_cond_load_relaxed_timewait() Date: Mon, 3 Feb 2025 13:49:10 -0800 Message-Id: <20250203214911.898276-4-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250203214911.898276-1-ankur.a.arora@oracle.com> References: <20250203214911.898276-1-ankur.a.arora@oracle.com> X-ClientProxiedBy: MW4P222CA0008.NAMP222.PROD.OUTLOOK.COM (2603:10b6:303:114::13) To CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO6PR10MB5409:EE_|IA1PR10MB6854:EE_ X-MS-Office365-Filtering-Correlation-Id: 1249a418-0af9-4125-79b8-08dd449c9e7c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|7416014|366016; X-Microsoft-Antispam-Message-Info: LEb79jh55bU9csp+0O7GmKzc23U4UxqGpZYBQMqBaXwAGROtc1sAQr3yi4+qcOM95l8sdefSE/1d+VEQ76GmQsCYUSWbp0H1Uast+nsBIRr6xQT4/YwsNCK0n4PqWBAbjAJVZC9Du+lTNQs2NiylPapOHRshg3o82sYZJ7JFiv3buJhkE3wohcAecraNWh7Srnh05N/9kmrpFwB3kiRAI2dCioCDK4xiiBd2GN+1MTswcqbTZF0vDL26DeKbU4yIy4rwo0YP4LnDcC8mdTpzNzj8UktQkdaeXqsAXPXiKaOPLqBp/IXaBrE3axuy1fIkWagoOubmROXXTtxSXmmqUEIMoUXjARBzCBIT3e94vCr3zDklcl/eUsnjfaMtL02HvzipF7b8IJYn1OaPgjeX4kaXEMNdi5nx29SX2Od9jPsmZcngFt3XnRGOnBgG0fnqcTdNL8UYC1b6WdkH17tS/YhrWmyYIKjLS8qmrTUAgL9iIrVmy1+o720rYlW8ev1xYQBRxdEceo+WnOcKKcIRyaEyM6XWzCEOdoBnb45zF44x/6OWqWhusQ4dXTHgZhl33SCE6DuDJqLPG1+wVcOusKhpCcWpVdCu3oL78SFzwON1QOmAyvTqWfeFV5JyOvUbaSXIvd9IdfPPwHnY6AMqbWbudQuz9rupIPEEE0BHGdF+AIlMLTAjKYwsKy2NhSfZ1w+cRZamU1DRCUXve1rz3vyUYfUOvQQDGZV9z1Lu9FnNo5zZuJuL1FzVFFP6sTRzrnIsym6W9jIDmMFXw2steGus7yCZH26uuLjtSqkI5fRR/47zfoyn+uzybUR/yM7g4nQuO1U/WpcvZ041UIfZUahzyscnchMzrCVhXQXu/tWQQLO2RcOcCknOTH/DLc4rHBiEg/6keJ8ikzBHkFtzIBD5lhVeIOfaYPVn8y47mEVhrGYs9XpR7OXckKrGa6gsT0FD65pA9KG50rtD93/td6g4cv6DSIvserzbPkt0j6KVPNv1Fk0ktL8Er97LH74Hd5p4LPgPOJkON1YbH/LpPeeUAOWUpKHbAtbDtoNwWvA86uyAGkqheOjCgQj+B07I2pEsCEjbxADdplFsKJLoHWivNLRfIKfz0DIMjLQC+Snw4KwTNVKMcYn5qgl6uhisNZmH71WEJpAeapURQtA/2up7PpPa1FQCq1WZ2v/1AFZBwwKy2d+u5PIXk7H6TnMHITS1W9cKdoxz6nFkLq+zj1ygS3lzIUHMlO5PK1imdnindFLPbfGHHpX70M40vGcG8usroqAlU6QkvbaNYmrnfZqw6cyM8bU8TNUtWUYpponbnlcOzeNHJK/uusP1voiDqFDtUDElkp69IA3Gvi71kyfq+PB67fMNtGSZTQKupGUQMAwCx79/AGqG5ttde7AG 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)(376014)(7416014)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: c2BZPlxy0S8A01uPAjb1BBi0v5YXoJwN034ZfVodsxckz1SKmG+saKh679oK3ce25jvrEYIhtVTxNpTzKyiJuIJQNzxw60ceDb/NjgGaKDDnYTTBLkSNLteeKoLLATPdDrl26cm/dwYVDxWVgWgo1Jx0cz/8srSnk3rRPPIJQ0vOaOvVCQpfLr/036y1s/LJOxg3j0su9RD77wkXca1zEoPtejkXB7ndYNb3w0OqKHMlbo/SGYl7ohQrO8SJXxhAu0SZBw6h8clMO6QIbL2iCL8GPPTaAOVxrumgckWrnfPygifdN338DFOT3QTugBmcnjl1Rc5h2KYt5QIFL4n/npgjUYnJT2ldfYx2rynRHBk1i3RQAbO0VpxHEumIivbmOKK8Bx+yg4NxmiEbB7DqFabg14z2n+Bp7fscsyhunqt+J9qC4Y/PQ1J72x3ECoqBrlavkwndkXN1h7+yx/8XVoAj3KHPFSbyPtGbLk020SCi6goD07ATFnntG5MRPQaBeJcth4Lzj8R8B2rOZPV2ekhPqpR2u40qlFKsLcohUksqeDgVJnzccsBNqTSBPRuP5tGSUqyFjBAEqvdNeCzi/5xzcmj9nTZ4F0ol9VgQLvscAJQ8WDpwQ/tsGnGexlBhSA3nW4jOQ87z1+7qHQzyjHU22BbdjNdNR+2qn/N4T+EgK2T2ly0ivMQVd8uacsQ3+Q6EKXqI/eM+Mrxd2cQAZTwsnkoum1WTR4GWiwP7JQAaWooOIeCi6C8FSB7vQ5q7VVMu+WABEflMWhBmfJLX/cu2ojQk8Vvby50XZFO8/sZfhqokYxmxvN0+g7VHmnQiMmUZca+Nm/hcVEjsPW8+qFQftQY7Ofe1/+Yftv9NaczWXVoig7rkio1n2Wm6L3Vp99Rzu47GBVz0FhelqKoNfTBFTD8xKs52ZTJrw1WMs8Cdq7P0Nt2K8pskdlGM5EFqMPipkg5tyKOR6TU0vjRJmleJ7GWahnJWYH1OP1Y8cr1EnjyZJheRu8oYkVYFAPRUPolSj3C5QIeeI2MuRPmYHBl/8BJ4KXZuUkFJxQHvy1mN2q9WBbQT1CxfM6PcI6MoFvKWpUAYP8R1wGJFSqyDSKN5/LESdKP8z3z4QtniocBA8C23qt4+D8PurNQlTMtXJb8DeiFvhZC0K9HtXxXbJbE5rszG23IKfjPVB1OpJHksDC8PxE9qZI9Kv+YGsXdEzHKZ8JOr/Crqra1Fo3DJqitcYgOqcSHN/4wVU4Y2oRBBvTaCiIL/1FQtmL1vugO2FNTK8AmrJjl90tzqCd5+wJKH56TCJt5Dg4DOih8BvvVgqIT+tlbIfA8cUDWGYuaXPqqhna21rPIOEByBI4wBafWkG9EnMu7cgTAYtTdgHB66UwrkMv9Q4CEVHkfLP9CKwa2/juNHW6c40jKeEnQDV88cQOw7n3SDmzNqfKRjwWyXUyMPJoV7b5pqqwFQZQ1CtOwZ4hK4x0c1ckVs6p9aWWySAjgDDdLjQW9DoIvFBqyXHJzvGvxCIx/fcKz7TD99GL/NEs1ORFKgpcM02QT4fjJnQNs7DHljbbdJx38bjGXTvvFxsHwLDpaf1nNjoW8gE2Ee0y8Fu9XAkUG/2JoCwA== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 4ekJqXnnA1oN4Cjcl+bUGFxWy091CQGav5L0BGPIPLL4k74+BXklCxpbK6Lv0IWnCdKtCrZWwanTm8V3GEeCQVqRUeO/ddTZMmc1QJkub1V8Pd5q3WmmozsvELRwBMlIf7qBk/83sPpXGfXJLPnR8H0JYc10dAdwKiv+6PiQNa+g0w5U5rbapQ+wO/RdWjWUhLhLrTwO1+1vKxZYK7Ezc+S2THJETNgB7LatYxcu671wQiOYvdr4R+Z+ZgztFrZ3jHbXVMr4G1+TQQZvTxVh1jPP7VWLaNjrIyrGQWsBVgZZvMYwTQgNNa9t1RG1E9wOmCMPHHlQlqamTusNw0Y6ApmzvxgQ6KSBDLNbzly71iFPCeAJL+n95Hi0XffL4ZwsgA4cP80Lkwp9dL8jSN5VdWlE+hywHOYK2QLcGOR74zp99vem5her434g7ztnuAjvKj6HR9xRrNs6P/DXb1W7lnprsJEayeKdRKwPgZQmfn5QO7sgj3TvOodz3p6NdpEatFOFKo4G2WJkr1PIZVHgUVoLAoZHoyJfUNd5BV/J8enx8g8fHJaJrEwz876OfGXV3Ak4nsUx8ELo31IpTLth9xg2nN5dgNE0yE5Ds1Q8mUk= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1249a418-0af9-4125-79b8-08dd449c9e7c X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Feb 2025 21:49:22.2648 (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: 4Y5qc5nndi9oGTeqWQze1WWfxLYh312dpbAuyd2epcTiiEtPOHasfkJYnyJR7LhJMMHMlcvlMZiqpFne2pRKE7ilUIgfn5ul9UJEtcFGh9M= X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR10MB6854 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1057,Hydra:6.0.680,FMLib:17.12.68.34 definitions=2025-02-03_09,2025-01-31_02,2024-11-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 malwarescore=0 phishscore=0 spamscore=0 mlxscore=0 mlxlogscore=999 suspectscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2501170000 definitions=main-2502030158 X-Proofpoint-ORIG-GUID: _712IK0Fd7LlMSaCycNcbFIiKGTPDZtG X-Proofpoint-GUID: _712IK0Fd7LlMSaCycNcbFIiKGTPDZtG X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250203_134941_423134_2702ECA6 X-CRM114-Status: GOOD ( 16.15 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Add smp_cond_load_relaxed_timewait(), a timed variant of smp_cond_load_relaxed(). This uses __cmpwait_relaxed() to do the actual waiting, with the event-stream guaranteeing that we wake up from WFE periodically and not block forever in case there are no stores to the cacheline. For cases when the event-stream is unavailable, fallback to the generic spin-wait implementation. Cc: Will Deacon Cc: Catalin Marinas Cc: linux-arm-kernel@lists.infradead.org Signed-off-by: Ankur Arora --- arch/arm64/include/asm/barrier.h | 38 ++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/arch/arm64/include/asm/barrier.h b/arch/arm64/include/asm/barrier.h index 1ca947d5c939..25721275a5a2 100644 --- a/arch/arm64/include/asm/barrier.h +++ b/arch/arm64/include/asm/barrier.h @@ -216,6 +216,44 @@ do { \ (typeof(*ptr))VAL; \ }) +#define __smp_cond_load_relaxed_timewait(ptr, cond_expr, \ + time_expr_ns, time_limit_ns) \ +({ \ + typeof(ptr) __PTR = (ptr); \ + __unqual_scalar_typeof(*ptr) VAL; \ + for (;;) { \ + VAL = READ_ONCE(*__PTR); \ + if (cond_expr) \ + break; \ + __cmpwait_relaxed(__PTR, VAL); \ + if ((time_expr_ns) >= (time_limit_ns)) \ + break; \ + } \ + (typeof(*ptr))VAL; \ +}) + +/* + * For the unlikely case that the event-stream is unavailable, + * ward off the possibility of waiting forever by falling back + * to the generic spin-wait. + */ +#define smp_cond_load_relaxed_timewait(ptr, cond_expr, \ + time_expr_ns, time_limit_ns) \ +({ \ + __unqual_scalar_typeof(*ptr) _val; \ + int __wfe = arch_timer_evtstrm_available(); \ + \ + if (likely(__wfe)) \ + _val = __smp_cond_load_relaxed_timewait(ptr, cond_expr, \ + time_expr_ns, \ + time_limit_ns); \ + else \ + _val = __smp_cond_load_relaxed_spinwait(ptr, cond_expr, \ + time_expr_ns, \ + time_limit_ns); \ + (typeof(*ptr))_val; \ +}) + #include #endif /* __ASSEMBLY__ */ From patchwork Mon Feb 3 21:49:11 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ankur Arora X-Patchwork-Id: 13958311 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id BF683C02193 for ; Mon, 3 Feb 2025 21:56:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:MIME-Version:Content-Type: Content-Transfer-Encoding:References:In-Reply-To:Message-Id:Date:Subject:Cc: To:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=Y2i0UFtOm8h8GVwyJybfRKu5genIQj3zDzS5If8eYcE=; b=dzmpV/GCUCZ//fF+QfwvIgcJz0 1I8j3gVPvFt9ofwqUdZZ4k1dzhY/GXc98GvHRsxP08euosZUP2Vt9ghY9lsuQuKD7onzMM+MCGXcV GggCne5KgzKI+lqZo4r3MKA8EktV9uFgRi3g59HTVVVa2+bNqSWQy3ZSgpCRunuuU+NrgZJXV7+IL naISYwiHpPRm1c4djvi6vNUj4d43vGqHPHxm8xkmgMWOw5HLIrd2dzN9TzNrkYEuIGflisDNXuQli a3dddyZyxp3T+JfIroKNoeOMgbHuqasUuAX7KMYoMvuj1wt/CxPlCDOaYW2he8qPIaSNxMdfe9oTd LQOL6ymA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tf4QZ-0000000GjwY-3LCr; Mon, 03 Feb 2025 21:56:23 +0000 Received: from mx0a-00069f02.pphosted.com ([205.220.165.32]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tf4K5-0000000Gitu-4Ahr for linux-arm-kernel@lists.infradead.org; Mon, 03 Feb 2025 21:49:43 +0000 Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 513JMtHA001047; Mon, 3 Feb 2025 21:49:28 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-2023-11-20; bh=Y2i0UFtOm8h8GVwyJybfRKu5genIQj3zDzS5If8eYcE=; b= Q6dWTm99796JurSr6TL+oxA/jTsEBYfM4BzEgdi0k7xXu9N5Q5ioJTRHOoogjkLY HM+jk+0LL9HTQhnah+7iFcdaqSPpmY24oOSqYk6znj0lKxJCZr09QWvu06djqUCt HnazvbyxA8fkrjpKltf3pFyV5LNKHcXasec23Mf3/f8Sejl29cTlJwyRZkgpb3ZO +tZmmLQFWbyLSgweXA3VFtzUtYz/TLzcMfwX3oi2+TCpsVfHkxyUD21lwjpJ45Wq 3ZCSwdOk62OldaWdxtWRqfZL57ZQKr01L3bmAUm1VXPEXLAYkAQTCCBeLrP5gVWE q9IkBwne0UVORukNXwPCHw== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 44hhjtumu1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 03 Feb 2025 21:49:27 +0000 (GMT) Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 513JlCRS029079; Mon, 3 Feb 2025 21:49:26 GMT Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2170.outbound.protection.outlook.com [104.47.59.170]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 44j8p27131-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 03 Feb 2025 21:49:26 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=H62RyAECqAINgClBxFMFWRN/z/ge1hu/f/gKMwAy3eZZIFm3I1ceCLhWrF90oA+kOnDXVrct/yKDu/m0pIJIedq/rHkvDbhFlCz5ZdGEiSGe6ksaS9OYxn9AipxL64Pr4a2m+gqraxLfIIhZqwbs8NnJb8upwDmiVganv3qzSQmALaoz+jzpTBEHyej3jym3KwcBs1GkUimhlVTem84aNOMtZzx0YPB242Zrx7fXfvYkpFvFT3pi0pHJwmlgJiBkKcXxdZVn5tLGGdKksxjj5ABZnrPYK8iCSVWHkj5/7xW3/4pclEt9cE0TvrTAEOLg8ttgEHQkJOBbNMnb79UGuQ== 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=Y2i0UFtOm8h8GVwyJybfRKu5genIQj3zDzS5If8eYcE=; b=YThBnri1nYjmmNxRENmjnhoIFW7ff9LqAyAZN1n3OSQarzBMS+nv3QB9IMqoT2B21oCFaUPw/XUDslwy+ScrSc5Ugjk/7QkUtqYM3xGH7ARGiuYNL00SO4Ba3xXOKLwxDV9HkG1vEFI4bKVbM+Qd/7CcAOTMpTqR88Rg9OENNqeysjgHGu0o0qClsml/+kzbgtSRQXQe10oDNROjInXi3zwns5CFi2YEf335Etuq83ImwYLCxBhYXymTraL6ugm9eQJ2n4WTtGhctmBbZ+g3aPWqVYiAGUahjC2fJcHDNI4eILxcL3Afgts4XjbtTOEC0PLq7juV/F4AJlfTa1sxag== 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=Y2i0UFtOm8h8GVwyJybfRKu5genIQj3zDzS5If8eYcE=; b=Oq8TvaAZC8Ay9/TtYiwhfDW/r+CkSAt0VNWNp8Jem9hq7N+M3r7XpzK1CI875Eig4oAdEuurGj/KHAavJHAIa85Kz4T+KooAlZdlCmA2qVYoDSHYXWByRzd50wVFM95SbCe/FnfxpWkf9T3xTkgTOnlYGr3AV89l3KiZaBJsKZw= Received: from CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) by IA1PR10MB6854.namprd10.prod.outlook.com (2603:10b6:208:425::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.23; Mon, 3 Feb 2025 21:49:24 +0000 Received: from CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::25a9:32c2:a7b0:de9e]) by CO6PR10MB5409.namprd10.prod.outlook.com ([fe80::25a9:32c2:a7b0:de9e%6]) with mapi id 15.20.8398.020; Mon, 3 Feb 2025 21:49:24 +0000 From: Ankur Arora To: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org Cc: arnd@arndb.de, catalin.marinas@arm.com, will@kernel.org, peterz@infradead.org, mark.rutland@arm.com, harisokn@amazon.com, cl@gentwo.org, memxor@gmail.com, zhenglifeng1@huawei.com, joao.m.martins@oracle.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, Ankur Arora Subject: [PATCH 4/4] arm64: barrier: Add smp_cond_load_acquire_timewait() Date: Mon, 3 Feb 2025 13:49:11 -0800 Message-Id: <20250203214911.898276-5-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250203214911.898276-1-ankur.a.arora@oracle.com> References: <20250203214911.898276-1-ankur.a.arora@oracle.com> X-ClientProxiedBy: MW4PR02CA0021.namprd02.prod.outlook.com (2603:10b6:303:16d::31) To CO6PR10MB5409.namprd10.prod.outlook.com (2603:10b6:5:357::14) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO6PR10MB5409:EE_|IA1PR10MB6854:EE_ X-MS-Office365-Filtering-Correlation-Id: 7799147e-1bc4-4615-fe36-08dd449c9f90 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|7416014|366016; X-Microsoft-Antispam-Message-Info: PXCxF+i0+HHqAwZxw1ZxAK9Bo0YvVsnat64FCrYWCsNsIgi2VG/WQq6/Z20OD8/S20R0iDM635vna9/pFTfrdi7L0xXIjUgOYNYv9a+//sP1Vs2fRIgSRfILAW8VwrHkESZQtVa1O4hek0yqhnBTu+Y5c5Sq0QLPimbexL+pjCObyt3GGEJcpz5Lj3m1nxytUqaJR+DV3FeS/98Jd+vbJbpukM2iRAsDpEYusMDJZLSUy7At9/cPQgTNO8ulAHXV9nDfZrtt3DYuHi1RHNulLu5mdwM0iwTsSMdCArRLmwdX5jQmUIK00bPcbvyz/Zm6P4EbgVLiePWZ29S80bjziCQ+UUkiZbV4bqSnnH40GKPmfP/baBcySE+3wsrzPxYBwn7QwNLyFAMEe5BFSY2seJBNs9vnPCzfyAB9bV6IrpQkaOGVgb/GEJniS7claHFnqDs9nrYSyHBM6HvUJ79d6uX0b9u4nB9HEgLEC3bBgNlQqwe6UScgzxLS+qgD0ttF6hTAqO80LsP08mPmgv8gRpCn7D3IJQiX9xHeMykgTDM4sV6v9Jo9MW4l6GTfkC7S2ZrcsbTEdWQHqRvE1FvB4EvUz82oOgV8mqqf74Y3kL+cx6Nz+FAooDGq9vPU2q4Lj2QUx2e+goiZhtsaydgWRg5PJkBR18wGUacd1zhfZH30X3yJ1yLWWThn6PLrNBhdvsmg1Y/7ghPi+qdOJfBwHBK6kYTQaVC3h6jlTXX56p/AM+Qnkx0XRe5zv1ODNW2sSEYjZYy/yOvlGJCe1RqWziopbzSQqLK95xe1I8qcu97/Tn37f0Pl96RoeCksXAO7bx2hB4p5UQnLqWRZnZtsSPtAO9tAnzLL0BlJmvnIuEFbRdcMHyAaQzBMPEYe+pPhLdgR2IcOIbinS02YVNx4XEhAzv/obokUuxmQCL0ldXt2UK1jR8Q8QqkgeZkZXku7EYzQMv3ci8xBE/4GAv4znrCJvHXJtmwT8GRlh8S73tB3+1wh/wOuj5bfKNm+VbZWXtzgE8UUnB7TeQenLjN6N3EGwEk9Z06rYHa0EGrTSxM4T2l04doDcoTkKLFzRA/LwDdykL8dw3xqPzVglN9I+txpOTwWtUt320tCk0kEPTB5HpXnTAnubpcovb0hBBva/5FjCFqY+lfKBQSPv9jaTt6UoO8MSdLexbc32YBKDKfR2YS1Fs1pkSh+8a88JqQJVuEUeFMi7JcQoSP4mvWeSs7f/crrtdI0oF/Uiv+MZRoA4jpybt7m75WhW5+HSpkOkn++lxNcA543AubVW6XrGTXhJORuUEdDfTIqn0or1ilHJdanXWLqHxSNFc9hDo29R6Ja40+2Ve/L7/07/bjRV3HSvXPWpbmdK4Hbd0HZHCP9C3FeRbPXlJFal9ohftST 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)(376014)(7416014)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: oEz5ijhQcIOV3BCEwrxpcTN/CrWj1tD3gSCK3ui6WMiZyxvHQXMexTNTSr7KsC5Nxz5NS+0f5cykgLp9dZbIQPeIR3bmZXlrcScIDQO1NXIRTLvSnOXX2GMSi3tJ5rLQ/h+QcA9FULgSrOB5SxU4QM28QrrjLCrXQ8ZsPP7FzEk7TkUM+HifPwzapKvvwRJTLIwGXhqEf0/nPRblKOBB2HHkeOoLkfjawlCSP7Dxqar0QSpuVUdVPCyvsLMUdV3OKrSiPhGofCi3RUF0+5q2Q1a/jiyRJNlbbkID9j+MySdeYC1RurfD195o6G3BGywBe33YBG094/4tybXGf3akdYXnqh6DqGvlWQH8A13IKmz/x/OVNedj6EoL+39jFqP5+jD78Hnlon13mv2BBElK3xkjE5r4e/QdvbbUUXWxzAByxT57kb3U7nDYSwWDtyjiCwgDwvfDZ6XW55pI+zzV+jvQlYZh/xvaAxGT0E2mok4akmExY9vGX0xzTVSCKe8cB4eRu8ZjMNYjPNrX8iSwOVO8vjfI43pdvuvv6DwihE4wxnaF+bZb4mORrwTgj5QEzTY09/0ENJZNkAPGoeZTZQzc9y+aumAl13ZTw4a6GGChQtAYT3DA/tH6U6TyAt8vJTsyragbTuyPU2WCpELpStwdavjV+e66uCGmJOdSV7NSHQpfG7+6ZQu7l6onfkI1A96NblyzJpSMkA9CcLub+js/tVVvQTfuUjdEoisusKOb7zKZGU1OB9IwMHwn2Z06mAR7pxVNh1gVNBMgYdTQD0C2CbY8DytdAMfDOZ7xJlUl+Co1wMCg5g+prIGt3GwE3XzANDevM+RwUFhBhYjmJ5nxrm8StFC27P+oJKvkY4TNs/0FvQ3JeEytVZe8/p16qsBG/ptnstPb13ebxgBYrKyg6vaJ2jJkyphzD5dGwAslEnHWKfST7M/dNrjn3/288PJBTwKX4hwRfYjOMJN/MteGdwagkMSwmHQ//wr7WP2+9ZeLHGJW2f5QtIl6ub8606Aya8rmTb/3ieesPcnBnWCZ8SVMOgGxthUB77sp7jDJFEsPuY727BwEHwAPBTzdIy3GtNSoa1OMcXIvGTRPEunQaT0AoCD6Bgd9rFu6HH7tjnWjTuD3KY1M/df95Xm3BGg4DYu6YtKwr5hj7zRVO+7ITLycnDfjuA7J0bEWxSYu3no9ZQ2k7QDU16Y4yrFiJaZ0rggMFRIoBgyo4J6YadbhClJs0RhAKf1/i/+cXxbJewvlt4umNPJs/5AoYGJJBJfMNyPIU4Pyb5kX6C+TdLLxUWGArIWDA5uzrWjxNbjDa5mYjtCs+uGC9BDXapJRkzru5d0Nac0V6QStYN0HtDrS/Skurt6tMyPZVvfnAdgdftOV2WybmzYjkTEBZVKYyK1FQiBK8Yp7+URLbRj2XK8rPbEfr1OKXTLZiWKYZBJ4sNDHObLT5xQ7S03Mhc3R1gY+eYBubl50RaICnXMW91dNn/mTY+vcRdaMXxCiqh/yIbbiXkoyWJ9xJE0QjqexhBGYCuEqJqI46FcKZS61/Q5RLKB02S/tOmqqL7aHqrMzZ8wX4bmHw07yS6W/X26pFhb3m1GDD3qlC0FzemxjnQ== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: lifen2R5PDmmQ+p07tI7YPnmmaP7Z0QR+q5T7yFh23387tbXPkjqbwAQtSNVkomIiXqS5wy2klh6myNO339Q9QkcgOrExmC7Zj7z5yWX+uDrFGmpGrh5WB9b4cqo0ogZdu4IKOy6OK0PPbUyt2rEDwlZiQTgRGW4Jkag2+u4fz2rcRCg/5FgdRgSOEn4a4rpPLlm8GymvL7DPTeWaeAwt1uITz5o/Db/BHkoRccCrsqvSIP+z0iofhvvrxgELIM6T+b1qU25OLf6NQqFOzO3fo/C4uPDCH02SdDUtwLWFZXuKv/YdjXqbVaKL99uNS9ReEswsR9Q5iBs7GyzUYFziW02IUZFGxQqD5QVYxsyoNfWLcbKOH79O80jNId+2YLtBUfd4QCyxckj0CW19o/2mgkeywLtoqLod1crS/Yi8d85O2OSRQBAH74oOjLqmDprZcx45REQgcrsmiRrUqKsSNzcSUVpuGVsQLQW3P816wqEyjMcdtdbHFM5K0UjP1b9/eb+0H8J2OKGvlz3B45xhCmDuOVJTyDK44IkQXRmpyrxHlddJBNgFkaXjaUjMygjRaWmD8czpcsT7RogxSg6MnXPbIvRb6zYDMZPg/0hN18= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7799147e-1bc4-4615-fe36-08dd449c9f90 X-MS-Exchange-CrossTenant-AuthSource: CO6PR10MB5409.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Feb 2025 21:49:24.0606 (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: nVQsUxNj0ehuZCTwo5ZcJJXGQSGaUJ/ZyzISYNe1s21AWJRHg8FB9OO9ywBdlUk2rKdSRvADtHrJU7CmjsEM+4rYuqMISbBkULBBEz8n42c= X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR10MB6854 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1057,Hydra:6.0.680,FMLib:17.12.68.34 definitions=2025-02-03_09,2025-01-31_02,2024-11-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 phishscore=0 suspectscore=0 adultscore=0 mlxscore=0 spamscore=0 malwarescore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2501170000 definitions=main-2502030158 X-Proofpoint-GUID: QdacrseF6w2tloYXDR-VjdGOJRI2ZTnZ X-Proofpoint-ORIG-GUID: QdacrseF6w2tloYXDR-VjdGOJRI2ZTnZ X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250203_134942_033162_A0574DFF X-CRM114-Status: GOOD ( 14.98 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Add smp_cond_load_acquire_timewait(). This is substantially similar to smp_cond_load_acquire() where we use a load-acquire in the loop and avoid an smp_rmb() later. To handle the unlikely case of the event-stream being unavailable, keep the implementation simple by falling back to the generic __smp_cond_load_relaxed_spinwait() with an smp_rmb() to follow (via smp_acquire__after_ctrl_dep().) Cc: Will Deacon Cc: Catalin Marinas Cc: linux-arm-kernel@lists.infradead.org Signed-off-by: Ankur Arora --- arch/arm64/include/asm/barrier.h | 36 ++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/arch/arm64/include/asm/barrier.h b/arch/arm64/include/asm/barrier.h index 25721275a5a2..22d9291aee8d 100644 --- a/arch/arm64/include/asm/barrier.h +++ b/arch/arm64/include/asm/barrier.h @@ -232,6 +232,22 @@ do { \ (typeof(*ptr))VAL; \ }) +#define __smp_cond_load_acquire_timewait(ptr, cond_expr, \ + time_expr_ns, time_limit_ns) \ +({ \ + typeof(ptr) __PTR = (ptr); \ + __unqual_scalar_typeof(*ptr) VAL; \ + for (;;) { \ + VAL = smp_load_acquire(__PTR); \ + if (cond_expr) \ + break; \ + __cmpwait_relaxed(__PTR, VAL); \ + if ((time_expr_ns) >= (time_limit_ns)) \ + break; \ + } \ + (typeof(*ptr))VAL; \ +}) + /* * For the unlikely case that the event-stream is unavailable, * ward off the possibility of waiting forever by falling back @@ -254,6 +270,26 @@ do { \ (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 = arch_timer_evtstrm_available(); \ + \ + if (likely(__wfe)) { \ + _val = __smp_cond_load_acquire_timewait(ptr, cond_expr, \ + time_expr_ns, \ + time_limit_ns); \ + } else { \ + _val = __smp_cond_load_relaxed_spinwait(ptr, cond_expr, \ + time_expr_ns, \ + time_limit_ns); \ + smp_acquire__after_ctrl_dep(); \ + } \ + (typeof(*ptr))_val; \ +}) + + #include #endif /* __ASSEMBLY__ */