From patchwork Mon Sep 5 16:20:48 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wilco Dijkstra X-Patchwork-Id: 1674349 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=sourceware.org (client-ip=8.43.85.97; helo=sourceware.org; envelope-from=libc-alpha-bounces+incoming=patchwork.ozlabs.org@sourceware.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.a=rsa-sha256 header.s=default header.b=D4c8y9hK; dkim-atps=neutral Received: from sourceware.org (ip-8-43-85-97.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4MLv0P5G3bz1yhd for ; Tue, 6 Sep 2022 02:21:25 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 2935D3858400 for ; Mon, 5 Sep 2022 16:21:23 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 2935D3858400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1662394883; bh=9It+jFNiUELQ+PI2PCziv2uAT191qz2SP/ySlYawUB8=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=D4c8y9hK3Ea5GeZPPz6NZDscqTuG5tE1ZHy8Ur3cvbtq3oz1Z7noeWI0NaA/yEdRw xW2BbUxmVMBz3Mp0BQHzsBlD0HAqyHKU1Je4AzzsvEILjDD7xl4UuGKP/E3y0M9x4T Shw0o0GcJUEduNm0laPYyU2Dw0ttntDsoCew0JsQ= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2069.outbound.protection.outlook.com [40.107.21.69]) by sourceware.org (Postfix) with ESMTPS id 947C93858CDA for ; Mon, 5 Sep 2022 16:21:02 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 947C93858CDA ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=knQUHeGF7Gm9V5ZTlg+23MUS9aFy+L7dk7ZM51LqOxfZYoMsEVEoKh5F2f8B0adalK2YCDEpBb6Jkn8NsknEQJ3KuT2C5GiPPLywjj1AKKXhyc3VSLbWZ0jO3e9xnwZsWT7jxTAOhi/muy4IahNiF5dYDfOPa18S89alCm4jS0ZC5PbCSrqr6xCAfHpn6lyH8MgWKTR6kNXuQvKm5uOAX2DxxXZovqJVLVBKdqDmwBQcOAvyasWUbm9CFb7E/l0G3EADuB1aKpqMvYAykMI5YZrVLGrGWzHLOUV9YhN0Yaev4S5N5T51zWwuQ9oiiRujGs0SVpejn7rosK7FBMf+lw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=9It+jFNiUELQ+PI2PCziv2uAT191qz2SP/ySlYawUB8=; b=V5yErXYTntfQv8PrJO4i6Lg5sNz5rihV6ZwSwpq0KOl7rte4lO+0GoK9HTZE2QFBt5dWp0x6HxCpar/tpqsZVTfSftv03t/HoEvQScuqApVPJq9H09osZpPEnpXs8/vrbEHjA3m6nCd31okxh7mqWxM9/NiOPoXgLUVeAu/UvDNSE+FAvKp5VYcOhFifGWnDqAQFAKkmZM8Xf1Sk2spa1qylSs8k4t9uwy8KbV7Dy7udS0vQYf6im+YSnYxXtq1UvrOoVf8NopK3raH1HRP+vyPpD2Jd7ZLFwpRq/4xGVswNtxmtvql37KyGa9bsOlMqO937iBVjnqB40FZXRHzf8A== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=sourceware.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com] dmarc=[1,1,header.from=arm.com]) Received: from DB8PR04CA0003.eurprd04.prod.outlook.com (2603:10a6:10:110::13) by DB9PR08MB8387.eurprd08.prod.outlook.com (2603:10a6:10:3d8::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5588.12; Mon, 5 Sep 2022 16:20:59 +0000 Received: from DBAEUR03FT038.eop-EUR03.prod.protection.outlook.com (2603:10a6:10:110:cafe::d8) by DB8PR04CA0003.outlook.office365.com (2603:10a6:10:110::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5588.18 via Frontend Transport; Mon, 5 Sep 2022 16:20:59 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; pr=C Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by DBAEUR03FT038.mail.protection.outlook.com (100.127.143.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5588.10 via Frontend Transport; Mon, 5 Sep 2022 16:20:59 +0000 Received: ("Tessian outbound 73dd6a25223d:v123"); Mon, 05 Sep 2022 16:20:59 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: c4d4c98f920a489e X-CR-MTA-TID: 64aa7808 Received: from 75a215560bbe.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id E890D043-5932-418F-BFE3-0A7E07E5F06C.1; Mon, 05 Sep 2022 16:20:52 +0000 Received: from EUR05-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 75a215560bbe.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Mon, 05 Sep 2022 16:20:52 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DywPoS7W+2VkMo/QJfnXgUy97VXFD65E8QuY8TlqNgU5hrUShwC9DpbUTw0vGAv0mTcGKwBYfH3CfwiN5mLDiZC6ctUrPJYCzGOsPeT+xCmZdLBKPcXimcpnUPKgQDX9BFy9i+e+DL04BFhIEJdKl0O0E9XMASo6F3pWCoILLlBgToTanDGCCU6qHBudqJcawgg4EjEs75AKvjHbJyHb2ghGWudJtcvWjjYTc2b/XVnIRxoWeY3eSE9FsLysGMNQcX/rnoqp5aE0gdjM5xAuaLFP5Q8jYS+LcyDq7bjV9Zo10csXbOP4y/DKkpPhblescKZo5USoDH0K81PuE6uRzw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=9It+jFNiUELQ+PI2PCziv2uAT191qz2SP/ySlYawUB8=; b=cQZ+J1U6L2Ao0vrMl2S4JQI7HaLWoS7Sd79mv9GUq2mEoKm+qM4YG+4GQzhBDmLMBHd54BkKbwBXEWUXPV3qSpS3PBYQ3N0cz/IazbixtVfrdN3dekIH5KPCGKmugIpSLixjyNlQogPNz9ZIH8U0wA5B7U4m81Ryo8Pjoo4vdV6n5jiyAFiFc4iKdxrQ1SRTjEkQkYeJjsTZ0TrWriQsjCzij+Fe1LtsByvCJGKdFeJfd4WyZjmazcacRgJH58/CiroMsLXs94oQRoxyCBzX9jpbLhTDV12CbDdc5dlXyAbCr5ADA392WD33b7NGCNbFGa3ZKkYLjQz+zlw9kmehkA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none Received: from AS4PR08MB7901.eurprd08.prod.outlook.com (2603:10a6:20b:51c::16) by PAVPR08MB9652.eurprd08.prod.outlook.com (2603:10a6:102:31c::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5588.17; Mon, 5 Sep 2022 16:20:48 +0000 Received: from AS4PR08MB7901.eurprd08.prod.outlook.com ([fe80::b58b:c477:7fd2:77bf]) by AS4PR08MB7901.eurprd08.prod.outlook.com ([fe80::b58b:c477:7fd2:77bf%4]) with mapi id 15.20.5588.010; Mon, 5 Sep 2022 16:20:48 +0000 To: 'GNU C Library' Subject: [PATCH] Use atomic_exchange_release/acquire Thread-Topic: [PATCH] Use atomic_exchange_release/acquire Thread-Index: AQHYwUMk+a3wTqR4aEWSfzxnJRCxyQ== Date: Mon, 5 Sep 2022 16:20:48 +0000 Message-ID: Accept-Language: en-GB, en-US Content-Language: en-GB X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-MS-Office365-Filtering-Correlation-Id: 3e84e6d7-5957-4e45-e97b-08da8f5a9e5e x-ms-traffictypediagnostic: PAVPR08MB9652:EE_|DBAEUR03FT038:EE_|DB9PR08MB8387:EE_ x-checkrecipientrouted: true nodisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: kPsIl3RkLNcorewYRn717IVF5jCGNlx0OjnvfvN6gP6CKY2tdnOolNKG368gLNDLGfXakNvEsDP0yx47/D6eL11FkS5+NTVXMjS0PKjQ3FI7s1rrXQdOk0S5Kq6MapvWNLD+GdfSIYqgSNNFPJK01qrG7qrDmp0ji+cic66sLD4ElIs7XSH69MvDBcmGP9g5dHdE6OybjJwCg72FsR0KXLPSGH12yQ5GXqfQtpUh3CPW/Mh6T/sJbMqfr80y+tZLzPkVryIWRUFDgBXVAVX+iNTpK88s6V4iHaM7crq2QrJZWfmd+7m/KxQfdUf9VcIVtfUNEdheByr5tG5TYKt1fGpTIMiHzhDSEHfkkEuDVp2j+8gqS8tgCYllW3goIevsOqpvPfjNOxbRImyLp9tb1QDOVBWLG4jxvggDposbmJj7uhRH4LXaiZZTDILfixwlEW1W92r5sWKeNOasHUE8yidiRC/gsgFQq1S2A8FOso9oKyGaE/vI/evlMWg6q9W6yF7I3haUplPyGMAUtiVo3q/2LKpE3ztjZrM94vwh3QoGrC3ukakU1zlHbi5FXoyVHAsfjiT8k3Z4LNva190neSHzgQJUOXBW0Z+gdsSm8RdnRwJsqUTJdyP/M+m3t2qH25kvc08NBi9icsPZNjgBKraYterCDRp+HY5KDWLXrn471j6azfc5A2vpLbchwH0TQPUTj1kmtKNB5mHbqyeCMcqpIRrqOcz/ZcS/fCyy+w/kMH7E6md8p/l/ukTIhEqUIS/hd1tan6l0iNevlC3SNQ== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AS4PR08MB7901.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(366004)(346002)(396003)(39860400002)(136003)(376002)(7696005)(9686003)(26005)(186003)(5660300002)(52536014)(6506007)(30864003)(8936002)(33656002)(86362001)(71200400001)(478600001)(41300700001)(122000001)(38100700002)(83380400001)(64756008)(8676002)(76116006)(66446008)(66476007)(66946007)(2906002)(66556008)(38070700005)(6916009)(316002)(4326008)(91956017)(55016003)(579004)(559001); DIR:OUT; SFP:1101; MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR08MB9652 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DBAEUR03FT038.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: be8baf33-c67a-4c08-f7da-08da8f5a97fe X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: oad7zJeoUpdWlY6xtNocoQCf5yK7fUwP1ND9HgwIsj7YybnSZKTp2/STagEV0Bttben/7PdzxgkaR6Z79USX0EHR7IjvykCRd6HYdYS/CbMsjWrXcjbl2Onlw3S2qnEmB/FSRyWr8ppjPf/rwQwIwkkN2SEix6jYxt+2m9NogmasVoN7aC8qv2EPuDkVOCMTweB+A7V3ozKhq+nQf+D7qv59ojjiE64dIO9P/TScd97jNvnvxJoSSSKymOnJgkdrJdygcgHRLVvEL+4AEYBAw1f8Jsx4CbRmh2PCyr0pUkfL+VV27CRUR++WzmSZv9f5UMCowfBhxjey2RlNm+SPRHh7XU9EjJtoK96AKodLhoLArDcp6TxKAla5C4zPpXTSmP8UUjejgw27qK8T0YyqYfDIcrFe3VxmImEb4i0qF8Q+rXCv3sN1KKJ2C0bSxJv616oBxWr+F2yBlsTFeA2XWu9+13a1s7O0g/pLb9Mr0kBGUdqFiQiHLnr1OEym/2YqSQvLeUuKPbp53PvpwffhTJlU806NY4x1X3T/9Elaxh+gbsr6EsrnSXj4Ci4+ayGcY3pBywl7yAtwV5yNkXQt6758Nb7kuTCOTiKLSUlD7RmwzhtUhjeLBLFjzGE+TDUhntzwabiNNDVrv2mXakbc3iiZQKPuS5A87sniIhdrgSxiDTB/GjqnGpmXK9KR0YealvL+08Ab26wpDRtsXgr2HSjfjy16RXZNlAmBirl9tQ7TJeGbxS+SmuOzqFHBkPIvyZJlvv8u2BaVz8eLeFnnFg== X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(13230016)(4636009)(396003)(136003)(39860400002)(346002)(376002)(36840700001)(40470700004)(46966006)(2906002)(4326008)(83380400001)(70206006)(70586007)(41300700001)(316002)(186003)(336012)(8676002)(478600001)(47076005)(6916009)(9686003)(26005)(107886003)(55016003)(7696005)(40480700001)(6506007)(33656002)(40460700003)(86362001)(356005)(82740400003)(82310400005)(36860700001)(8936002)(30864003)(5660300002)(52536014)(81166007); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Sep 2022 16:20:59.3195 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 3e84e6d7-5957-4e45-e97b-08da8f5a9e5e X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: DBAEUR03FT038.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB8387 X-Spam-Status: No, score=-11.0 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, FORGED_SPF_HELO, GIT_PATCH_0, KAM_DMARC_NONE, KAM_LOTSOFHASH, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Wilco Dijkstra via Libc-alpha From: Wilco Dijkstra Reply-To: Wilco Dijkstra Errors-To: libc-alpha-bounces+incoming=patchwork.ozlabs.org@sourceware.org Sender: "Libc-alpha" Rename atomic_exchange_rel/acq to use the standard atomic_exchange_release/acquire builtins. Passes regress on AArch64. Reviewed-by: Adhemerval Zanella diff --git a/assert/assert.c b/assert/assert.c index 564ae28a2ba0d4b8508c1ecd072ebf3b0a157894..aa77e250b4c87a2bd1652ddae140d5c4526aaca4 100644 --- a/assert/assert.c +++ b/assert/assert.c @@ -74,7 +74,7 @@ __assert_fail_base (const char *fmt, const char *assertion, const char *file, /* We have to free the old buffer since the application might catch the SIGABRT signal. */ - struct abort_msg_s *old = atomic_exchange_acq (&__abort_msg, buf); + struct abort_msg_s *old = atomic_exchange_acquire (&__abort_msg, buf); if (old != NULL) __munmap (old, old->size); diff --git a/hurd/hurdlock.c b/hurd/hurdlock.c index 4f3bd3e54c6b296cfdd64b549d3f2e4669decbe2..ca407bdb1e8dea8e3979a2e8eb83acad30724ce2 100644 --- a/hurd/hurdlock.c +++ b/hurd/hurdlock.c @@ -89,7 +89,7 @@ __lll_abstimed_lock (void *ptr, while (1) { - if (atomic_exchange_acq ((int *)ptr, 2) == 0) + if (atomic_exchange_acquire ((int *)ptr, 2) == 0) return 0; else if (! valid_nanoseconds (tsp->tv_nsec)) return EINVAL; diff --git a/mach/lowlevellock.h b/mach/lowlevellock.h index a4f6af4c29d80268697477fb107d99590d3fe6d3..d0adbd42e0b4ed29984d5ce86946d3d0f5fc3dc9 100644 --- a/mach/lowlevellock.h +++ b/mach/lowlevellock.h @@ -78,7 +78,7 @@ extern kern_return_t __gsync_wait_intr || atomic_compare_and_exchange_bool_acq (__iptr, 1, 0) != 0) \ while (1) \ { \ - if (atomic_exchange_acq (__iptr, 2) == 0) \ + if (atomic_exchange_acquire (__iptr, 2) == 0) \ break; \ __lll_wait (__iptr, 2, __flags); \ } \ @@ -102,7 +102,7 @@ extern kern_return_t __gsync_wait_intr #define __lll_unlock(ptr, flags) \ ({ \ int *__iptr = (int *)(ptr); \ - if (atomic_exchange_rel (__iptr, 0) == 2) \ + if (atomic_exchange_release (__iptr, 0) == 2) \ __lll_wake (__iptr, (flags)); \ (void)0; \ }) diff --git a/malloc/malloc.c b/malloc/malloc.c index ecec901b14f602e3c93da1a847f043ffee41a1f4..6402cf94ea8ae724d86d2a04fc7d42e3af174564 100644 --- a/malloc/malloc.c +++ b/malloc/malloc.c @@ -4718,7 +4718,7 @@ static void malloc_consolidate(mstate av) maxfb = &fastbin (av, NFASTBINS - 1); fb = &fastbin (av, 0); do { - p = atomic_exchange_acq (fb, NULL); + p = atomic_exchange_acquire (fb, NULL); if (p != 0) { do { { diff --git a/manual/llio.texi b/manual/llio.texi index e55b02d8bd839827a352c751f11ad18114c32ed3..92bfd93e067ce2a782369084ed7dae099300f418 100644 --- a/manual/llio.texi +++ b/manual/llio.texi @@ -2538,7 +2538,7 @@ aiocb64}, since the LFS transparently replaces the old interface. @c munmap ok @c THREAD_COPY_STACK_GUARD ok @c THREAD_COPY_POINTER_GUARD ok -@c atomic_exchange_acq ok +@c atomic_exchange_acquire ok @c lll_futex_wake ok @c deallocate_stack @asulock @ascuheap @aculock @acsmem @c lll_lock (state_cache_lock) @asulock @aculock @@ -2570,7 +2570,7 @@ aiocb64}, since the LFS transparently replaces the old interface. @c atomic_increment ok @c clone ok @c atomic_decrement ok -@c atomic_exchange_acq ok +@c atomic_exchange_acquire ok @c lll_futex_wake ok @c deallocate_stack dup @c sched_setaffinity ok @@ -2590,7 +2590,7 @@ aiocb64}, since the LFS transparently replaces the old interface. @c start_thread ok @c HP_TIMING_NOW ok @c ctype_init @mtslocale -@c atomic_exchange_acq ok +@c atomic_exchange_acquire ok @c lll_futex_wake ok @c sigemptyset ok @c sigaddset ok diff --git a/manual/memory.texi b/manual/memory.texi index 23a039c57e60c81787252d935e3b309fd8290902..9d3398a326300f9ae693fe00ff3fecaff5fce014 100644 --- a/manual/memory.texi +++ b/manual/memory.texi @@ -451,7 +451,7 @@ this function is in @file{stdlib.h}. @c clear_fastchunks ok @c unsorted_chunks dup ok @c fastbin dup ok -@c atomic_exchange_acq ok +@c atomic_exchange_acquire ok @c check_inuse_chunk dup ok/disabled @c chunk_at_offset dup ok @c chunksize dup ok diff --git a/nptl/pthread_create.c b/nptl/pthread_create.c index 308db65cd4c148f8a119ed9025af194946aa2c80..870a8fcb34eb43b58c2260fee6a4624f0fbbd469 100644 --- a/nptl/pthread_create.c +++ b/nptl/pthread_create.c @@ -415,7 +415,7 @@ start_thread (void *arg) unwind_buf.priv.data.cleanup = NULL; /* Allow setxid from now onwards. */ - if (__glibc_unlikely (atomic_exchange_acq (&pd->setxid_futex, 0) == -2)) + if (__glibc_unlikely (atomic_exchange_acquire (&pd->setxid_futex, 0) == -2)) futex_wake (&pd->setxid_futex, 1, FUTEX_PRIVATE); if (__glibc_likely (! not_first_call)) diff --git a/nptl/pthread_mutex_unlock.c b/nptl/pthread_mutex_unlock.c index db99175dbba1cbd5e6fbdd273a0995ed8ed7920b..27c5f539a636a1530155f843aadc69ada73432f3 100644 --- a/nptl/pthread_mutex_unlock.c +++ b/nptl/pthread_mutex_unlock.c @@ -171,7 +171,7 @@ __pthread_mutex_unlock_full (pthread_mutex_t *mutex, int decr) The unlock operation must be the last access to the mutex to not violate the mutex destruction requirements (see __lll_unlock). */ private = PTHREAD_ROBUST_MUTEX_PSHARED (mutex); - if (__glibc_unlikely ((atomic_exchange_rel (&mutex->__data.__lock, 0) + if (__glibc_unlikely ((atomic_exchange_release (&mutex->__data.__lock, 0) & FUTEX_WAITERS) != 0)) futex_wake ((unsigned int *) &mutex->__data.__lock, 1, private); diff --git a/sysdeps/aarch64/nptl/tls.h b/sysdeps/aarch64/nptl/tls.h index 8d62b31e23d53ff2789bb32a828eac2254434679..08aa2eff891b7be32243e9955d998892807c7b2e 100644 --- a/sysdeps/aarch64/nptl/tls.h +++ b/sysdeps/aarch64/nptl/tls.h @@ -98,7 +98,7 @@ typedef struct # define THREAD_GSCOPE_RESET_FLAG() \ do \ { int __res \ - = atomic_exchange_rel (&THREAD_SELF->header.gscope_flag, \ + = atomic_exchange_release (&THREAD_SELF->header.gscope_flag, \ THREAD_GSCOPE_FLAG_UNUSED); \ if (__res == THREAD_GSCOPE_FLAG_WAIT) \ lll_futex_wake (&THREAD_SELF->header.gscope_flag, 1, LLL_PRIVATE); \ diff --git a/sysdeps/alpha/nptl/tls.h b/sysdeps/alpha/nptl/tls.h index ddf7de0705b37be20dbd7c981ff79e36659e0439..8f5b69ad3b1b0c557fa1bae55278547572a374cc 100644 --- a/sysdeps/alpha/nptl/tls.h +++ b/sysdeps/alpha/nptl/tls.h @@ -95,7 +95,7 @@ typedef struct #define THREAD_GSCOPE_RESET_FLAG() \ do \ { int __res \ - = atomic_exchange_rel (&THREAD_SELF->header.gscope_flag, \ + = atomic_exchange_release (&THREAD_SELF->header.gscope_flag, \ THREAD_GSCOPE_FLAG_UNUSED); \ if (__res == THREAD_GSCOPE_FLAG_WAIT) \ lll_futex_wake (&THREAD_SELF->header.gscope_flag, 1, LLL_PRIVATE); \ diff --git a/sysdeps/arc/nptl/tls.h b/sysdeps/arc/nptl/tls.h index 15adfc94918dda2364ab5321d3a6ce5693ba4ad4..7fc6602b236fa2455f8de4a0540442ae85d27c98 100644 --- a/sysdeps/arc/nptl/tls.h +++ b/sysdeps/arc/nptl/tls.h @@ -103,7 +103,7 @@ typedef struct #define THREAD_GSCOPE_RESET_FLAG() \ do \ { int __res \ - = atomic_exchange_rel (&THREAD_SELF->header.gscope_flag, \ + = atomic_exchange_release (&THREAD_SELF->header.gscope_flag, \ THREAD_GSCOPE_FLAG_UNUSED); \ if (__res == THREAD_GSCOPE_FLAG_WAIT) \ lll_futex_wake (&THREAD_SELF->header.gscope_flag, 1, LLL_PRIVATE); \ diff --git a/sysdeps/arm/nptl/tls.h b/sysdeps/arm/nptl/tls.h index 02d9be202d77b9ec871a52be5a4e49feffc300b1..7657ca3dccc2d929c71236d42fc060a4b4902e2b 100644 --- a/sysdeps/arm/nptl/tls.h +++ b/sysdeps/arm/nptl/tls.h @@ -89,7 +89,7 @@ typedef struct #define THREAD_GSCOPE_RESET_FLAG() \ do \ { int __res \ - = atomic_exchange_rel (&THREAD_SELF->header.gscope_flag, \ + = atomic_exchange_release (&THREAD_SELF->header.gscope_flag, \ THREAD_GSCOPE_FLAG_UNUSED); \ if (__res == THREAD_GSCOPE_FLAG_WAIT) \ lll_futex_wake (&THREAD_SELF->header.gscope_flag, 1, LLL_PRIVATE); \ diff --git a/sysdeps/csky/nptl/tls.h b/sysdeps/csky/nptl/tls.h index cd135d546444e2e8f8ce0d53d5a16e2b13709bb9..58d6ab0fb2ae90de50cffd5b4a98426c6a793050 100644 --- a/sysdeps/csky/nptl/tls.h +++ b/sysdeps/csky/nptl/tls.h @@ -118,7 +118,7 @@ typedef struct # define THREAD_GSCOPE_RESET_FLAG() \ do \ { int __res \ - = atomic_exchange_rel (&THREAD_SELF->header.gscope_flag, \ + = atomic_exchange_release (&THREAD_SELF->header.gscope_flag, \ THREAD_GSCOPE_FLAG_UNUSED); \ if (__res == THREAD_GSCOPE_FLAG_WAIT) \ lll_futex_wake (&THREAD_SELF->header.gscope_flag, 1, LLL_PRIVATE); \ diff --git a/sysdeps/hppa/nptl/pthread_spin_init.c b/sysdeps/hppa/nptl/pthread_spin_init.c index aca5e01fced74695b38d94fa66026df15607be01..f2a2009daa17043541a13bb1f64b5b255c83050c 100644 --- a/sysdeps/hppa/nptl/pthread_spin_init.c +++ b/sysdeps/hppa/nptl/pthread_spin_init.c @@ -23,7 +23,7 @@ __pthread_spin_init (pthread_spinlock_t *lock, int pshared) { /* CONCURRENCTY NOTES: - The atomic_exchange_rel synchronizes-with the atomic_exhange_acq in + The atomic_exchange_release synchronizes-with the atomic_exhange_acq in pthread_spin_lock. On hppa we must not use a plain `stw` to reset the guard lock. This @@ -40,7 +40,7 @@ __pthread_spin_init (pthread_spinlock_t *lock, int pshared) Therefore if a variable is used in an atomic macro it must always be manipulated with atomic macros in order for memory ordering rules to be preserved. */ - atomic_exchange_rel (lock, 0); + atomic_exchange_release (lock, 0); return 0; } versioned_symbol (libc, __pthread_spin_init, pthread_spin_init, diff --git a/sysdeps/hppa/nptl/pthread_spin_unlock.c b/sysdeps/hppa/nptl/pthread_spin_unlock.c index 5639ec84ec3e058438f0407b3f5da4cb62de1b37..885ce2b2ba7b679a8ec06ef24d8e4cdff22c2798 100644 --- a/sysdeps/hppa/nptl/pthread_spin_unlock.c +++ b/sysdeps/hppa/nptl/pthread_spin_unlock.c @@ -23,7 +23,7 @@ __pthread_spin_unlock (pthread_spinlock_t *lock) { /* CONCURRENCTY NOTES: - The atomic_exchange_rel synchronizes-with the atomic_exhange_acq in + The atomic_exchange_release synchronizes-with the atomic_exhange_acq in pthread_spin_lock. On hppa we must not use a plain `stw` to reset the guard lock. This @@ -40,7 +40,7 @@ __pthread_spin_unlock (pthread_spinlock_t *lock) Therefore if a variable is used in an atomic macro it must always be manipulated with atomic macros in order for memory ordering rules to be preserved. */ - atomic_exchange_rel (lock, 0); + atomic_exchange_release (lock, 0); return 0; } versioned_symbol (libc, __pthread_spin_unlock, pthread_spin_unlock, diff --git a/sysdeps/hppa/nptl/tls.h b/sysdeps/hppa/nptl/tls.h index 204960d524246af3e8be40ecad20ffb567f2dc6d..e6b0bd5c7182b497aaf0d2bb08f62551a223c403 100644 --- a/sysdeps/hppa/nptl/tls.h +++ b/sysdeps/hppa/nptl/tls.h @@ -123,7 +123,7 @@ static inline void __set_cr27(struct pthread *cr27) #define THREAD_GSCOPE_RESET_FLAG() \ do \ { int __res \ - = atomic_exchange_rel (&THREAD_SELF->header.gscope_flag, \ + = atomic_exchange_release (&THREAD_SELF->header.gscope_flag, \ THREAD_GSCOPE_FLAG_UNUSED); \ if (__res == THREAD_GSCOPE_FLAG_WAIT) \ lll_futex_wake (&THREAD_SELF->header.gscope_flag, 1, LLL_PRIVATE); \ diff --git a/sysdeps/ia64/nptl/tls.h b/sysdeps/ia64/nptl/tls.h index 8ccedb73e610095337b8a082ee0742866ac4e2f8..d2411b3c1ac29733c0bb3683d83388e2e0e8e277 100644 --- a/sysdeps/ia64/nptl/tls.h +++ b/sysdeps/ia64/nptl/tls.h @@ -147,7 +147,7 @@ register struct pthread *__thread_self __asm__("r13"); #define THREAD_GSCOPE_RESET_FLAG() \ do \ { int __res \ - = atomic_exchange_rel (&THREAD_SELF->header.gscope_flag, \ + = atomic_exchange_release (&THREAD_SELF->header.gscope_flag, \ THREAD_GSCOPE_FLAG_UNUSED); \ if (__res == THREAD_GSCOPE_FLAG_WAIT) \ lll_futex_wake (&THREAD_SELF->header.gscope_flag, 1, LLL_PRIVATE); \ diff --git a/sysdeps/loongarch/nptl/tls.h b/sysdeps/loongarch/nptl/tls.h index 3b271c4b60f220c0b916583324a629dae28a4727..24bffe3a0adb91cda193463e2d0aa7d5a4d61b6f 100644 --- a/sysdeps/loongarch/nptl/tls.h +++ b/sysdeps/loongarch/nptl/tls.h @@ -119,8 +119,8 @@ typedef struct #define THREAD_GSCOPE_RESET_FLAG() \ do \ { \ - int __res = atomic_exchange_rel (&THREAD_SELF->header.gscope_flag, \ - THREAD_GSCOPE_FLAG_UNUSED); \ + int __res = atomic_exchange_release (&THREAD_SELF->header.gscope_flag, \ + THREAD_GSCOPE_FLAG_UNUSED); \ if (__res == THREAD_GSCOPE_FLAG_WAIT) \ lll_futex_wake (&THREAD_SELF->header.gscope_flag, 1, LLL_PRIVATE); \ } \ diff --git a/sysdeps/m68k/nptl/tls.h b/sysdeps/m68k/nptl/tls.h index 30d58e36e9552d1776fffe071653c78a8012408b..742e1b6767d99fa6011ac1d207264c7b82e53787 100644 --- a/sysdeps/m68k/nptl/tls.h +++ b/sysdeps/m68k/nptl/tls.h @@ -122,7 +122,7 @@ extern void * __m68k_read_tp (void); #define THREAD_GSCOPE_RESET_FLAG() \ do \ { int __res \ - = atomic_exchange_rel (&THREAD_SELF->header.gscope_flag, \ + = atomic_exchange_release (&THREAD_SELF->header.gscope_flag, \ THREAD_GSCOPE_FLAG_UNUSED); \ if (__res == THREAD_GSCOPE_FLAG_WAIT) \ lll_futex_wake (&THREAD_SELF->header.gscope_flag, 1, LLL_PRIVATE); \ diff --git a/sysdeps/microblaze/nptl/tls.h b/sysdeps/microblaze/nptl/tls.h index 40a6acd71e710c35f2b8ef2495fdeb34906f9517..588fd1c5d63ee4e6a1b284cc19e216b6730a2091 100644 --- a/sysdeps/microblaze/nptl/tls.h +++ b/sysdeps/microblaze/nptl/tls.h @@ -100,7 +100,7 @@ typedef struct # define THREAD_GSCOPE_RESET_FLAG() \ do \ { int __res \ - = atomic_exchange_rel (&THREAD_SELF->header.gscope_flag, \ + = atomic_exchange_release (&THREAD_SELF->header.gscope_flag, \ THREAD_GSCOPE_FLAG_UNUSED); \ if (__res == THREAD_GSCOPE_FLAG_WAIT) \ lll_futex_wake (&THREAD_SELF->header.gscope_flag, 1, LLL_PRIVATE); \ diff --git a/sysdeps/mips/nptl/tls.h b/sysdeps/mips/nptl/tls.h index 03a5b24abd5d1d6254418e79cb231b03cee72d99..2aa7cb4bb8d0b5a31889aa33d5751104ff1e4f45 100644 --- a/sysdeps/mips/nptl/tls.h +++ b/sysdeps/mips/nptl/tls.h @@ -150,7 +150,7 @@ typedef struct #define THREAD_GSCOPE_RESET_FLAG() \ do \ { int __res \ - = atomic_exchange_rel (&THREAD_SELF->header.gscope_flag, \ + = atomic_exchange_release (&THREAD_SELF->header.gscope_flag, \ THREAD_GSCOPE_FLAG_UNUSED); \ if (__res == THREAD_GSCOPE_FLAG_WAIT) \ lll_futex_wake (&THREAD_SELF->header.gscope_flag, 1, LLL_PRIVATE); \ diff --git a/sysdeps/nios2/nptl/tls.h b/sysdeps/nios2/nptl/tls.h index 18080275ef7458c80c7826fc0fa0f6a4fadac320..cb231e2a4bbfa52495c4c017a7d3e1c6dd7937ca 100644 --- a/sysdeps/nios2/nptl/tls.h +++ b/sysdeps/nios2/nptl/tls.h @@ -130,7 +130,7 @@ register struct pthread *__thread_self __asm__("r23"); #define THREAD_GSCOPE_RESET_FLAG() \ do \ { int __res \ - = atomic_exchange_rel (&THREAD_SELF->header.gscope_flag, \ + = atomic_exchange_release (&THREAD_SELF->header.gscope_flag, \ THREAD_GSCOPE_FLAG_UNUSED); \ if (__res == THREAD_GSCOPE_FLAG_WAIT) \ lll_futex_wake (&THREAD_SELF->header.gscope_flag, 1, LLL_PRIVATE); \ diff --git a/sysdeps/nptl/futex-internal.h b/sysdeps/nptl/futex-internal.h index cf54c27ed9d5780cd9a9166878fdc5a204c0b64f..f64728b3988aeede7e5f29ef286abaca0d705744 100644 --- a/sysdeps/nptl/futex-internal.h +++ b/sysdeps/nptl/futex-internal.h @@ -319,7 +319,7 @@ __futex_clocklock64 (int *futex, clockid_t clockid, { if (__glibc_unlikely (atomic_compare_and_exchange_bool_acq (futex, 1, 0))) { - while (atomic_exchange_acq (futex, 2) != 0) + while (atomic_exchange_acquire (futex, 2) != 0) { int err = 0; err = __futex_abstimed_wait64 ((unsigned int *) futex, 2, clockid, diff --git a/sysdeps/nptl/lowlevellock.h b/sysdeps/nptl/lowlevellock.h index b429d9aa780f3c5ca6e4ae0f8e4e31e6ef8950f2..29aa9adb89e5f6291b30b9435201d597b58cb595 100644 --- a/sysdeps/nptl/lowlevellock.h +++ b/sysdeps/nptl/lowlevellock.h @@ -119,7 +119,7 @@ libc_hidden_proto (__lll_lock_wait) ((void) \ ({ \ int *__futex = (futex); \ - if (__glibc_unlikely (atomic_exchange_acq (__futex, 2) != 0)) \ + if (__glibc_unlikely (atomic_exchange_acquire (__futex, 2) != 0)) \ __lll_lock_wait (__futex, private); \ })) #define lll_cond_lock(futex, private) __lll_cond_lock (&(futex), private) @@ -147,7 +147,7 @@ libc_hidden_proto (__lll_lock_wake) ({ \ int *__futex = (futex); \ int __private = (private); \ - int __oldval = atomic_exchange_rel (__futex, 0); \ + int __oldval = atomic_exchange_release (__futex, 0); \ if (__glibc_unlikely (__oldval > 1)) \ { \ if (__builtin_constant_p (private) && (private) == LLL_PRIVATE) \ diff --git a/sysdeps/or1k/nptl/tls.h b/sysdeps/or1k/nptl/tls.h index c6ffe62c3f8c1ae330e6402640294cbc18714883..e82f444738de222c0e4866d5a2ab8191ce99ddc9 100644 --- a/sysdeps/or1k/nptl/tls.h +++ b/sysdeps/or1k/nptl/tls.h @@ -164,7 +164,7 @@ register tcbhead_t *__thread_self __asm__("r10"); #define THREAD_GSCOPE_RESET_FLAG() \ do \ { \ - int __res = atomic_exchange_rel (&THREAD_SELF->header.gscope_flag,\ + int __res = atomic_exchange_release (&THREAD_SELF->header.gscope_flag,\ THREAD_GSCOPE_FLAG_UNUSED); \ if (__res == THREAD_GSCOPE_FLAG_WAIT) \ lll_futex_wake (&THREAD_SELF->header.gscope_flag, 1, \ diff --git a/sysdeps/posix/libc_fatal.c b/sysdeps/posix/libc_fatal.c index 270238495d51d2fc86edc91a0cdc9d008e9db7c0..e8e582e0cf5ddd5532626a8625a8f200484b75f8 100644 --- a/sysdeps/posix/libc_fatal.c +++ b/sysdeps/posix/libc_fatal.c @@ -137,8 +137,8 @@ __libc_message (const char *fmt, ...) /* We have to free the old buffer since the application might catch the SIGABRT signal. */ - struct abort_msg_s *old = atomic_exchange_acq (&__abort_msg, - buf); + struct abort_msg_s *old = atomic_exchange_acquire (&__abort_msg, + buf); if (old != NULL) __munmap (old, old->size); } diff --git a/sysdeps/powerpc/nptl/tls.h b/sysdeps/powerpc/nptl/tls.h index 22b00752350196ad7e6d0fbdcafdc271f0af5bed..e62a96238aa95c79ac1f749b4dbf03985b6e15d4 100644 --- a/sysdeps/powerpc/nptl/tls.h +++ b/sysdeps/powerpc/nptl/tls.h @@ -214,7 +214,7 @@ typedef struct #define THREAD_GSCOPE_RESET_FLAG() \ do \ { int __res \ - = atomic_exchange_rel (&THREAD_SELF->header.gscope_flag, \ + = atomic_exchange_release (&THREAD_SELF->header.gscope_flag, \ THREAD_GSCOPE_FLAG_UNUSED); \ if (__res == THREAD_GSCOPE_FLAG_WAIT) \ lll_futex_wake (&THREAD_SELF->header.gscope_flag, 1, LLL_PRIVATE); \ diff --git a/sysdeps/riscv/nptl/tls.h b/sysdeps/riscv/nptl/tls.h index 4e586f348adf6556151c850e983bbcaa42a91b0f..700c2f51899b0385d7ebaa4810c84de4fa6f2b45 100644 --- a/sysdeps/riscv/nptl/tls.h +++ b/sysdeps/riscv/nptl/tls.h @@ -113,7 +113,7 @@ typedef struct # define THREAD_GSCOPE_RESET_FLAG() \ do \ { int __res \ - = atomic_exchange_rel (&THREAD_SELF->header.gscope_flag, \ + = atomic_exchange_release (&THREAD_SELF->header.gscope_flag, \ THREAD_GSCOPE_FLAG_UNUSED); \ if (__res == THREAD_GSCOPE_FLAG_WAIT) \ lll_futex_wake (&THREAD_SELF->header.gscope_flag, 1, LLL_PRIVATE); \ diff --git a/sysdeps/s390/nptl/tls.h b/sysdeps/s390/nptl/tls.h index ff210ffeb25a140bb19dbf54ab299350dc261ac7..98d7870148ce6bc1d6397b1465dfabe96f7280b2 100644 --- a/sysdeps/s390/nptl/tls.h +++ b/sysdeps/s390/nptl/tls.h @@ -157,7 +157,7 @@ typedef struct #define THREAD_GSCOPE_RESET_FLAG() \ do \ { int __res \ - = atomic_exchange_rel (&THREAD_SELF->header.gscope_flag, \ + = atomic_exchange_release (&THREAD_SELF->header.gscope_flag, \ THREAD_GSCOPE_FLAG_UNUSED); \ if (__res == THREAD_GSCOPE_FLAG_WAIT) \ lll_futex_wake (&THREAD_SELF->header.gscope_flag, 1, LLL_PRIVATE); \ diff --git a/sysdeps/sh/nptl/tls.h b/sysdeps/sh/nptl/tls.h index 76591ab6ef6c12b73dda0feb18ab5adfbf53c28e..1530489a6ce4286bc5146e6cd83e3b463b965467 100644 --- a/sysdeps/sh/nptl/tls.h +++ b/sysdeps/sh/nptl/tls.h @@ -129,7 +129,7 @@ typedef struct #define THREAD_GSCOPE_RESET_FLAG() \ do \ { int __res \ - = atomic_exchange_rel (&THREAD_SELF->header.gscope_flag, \ + = atomic_exchange_release (&THREAD_SELF->header.gscope_flag, \ THREAD_GSCOPE_FLAG_UNUSED); \ if (__res == THREAD_GSCOPE_FLAG_WAIT) \ lll_futex_wake (&THREAD_SELF->header.gscope_flag, 1, LLL_PRIVATE); \ diff --git a/sysdeps/sparc/nptl/tls.h b/sysdeps/sparc/nptl/tls.h index d1e2bb4ad192cc7c825fd62b03bec45bc537aaf6..95a69cb8249dc79c3a063637a21d976d2660c48f 100644 --- a/sysdeps/sparc/nptl/tls.h +++ b/sysdeps/sparc/nptl/tls.h @@ -130,7 +130,7 @@ register struct pthread *__thread_self __asm__("%g7"); #define THREAD_GSCOPE_RESET_FLAG() \ do \ { int __res \ - = atomic_exchange_rel (&THREAD_SELF->header.gscope_flag, \ + = atomic_exchange_release (&THREAD_SELF->header.gscope_flag, \ THREAD_GSCOPE_FLAG_UNUSED); \ if (__res == THREAD_GSCOPE_FLAG_WAIT) \ lll_futex_wake (&THREAD_SELF->header.gscope_flag, 1, LLL_PRIVATE); \