From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-eopbgr70085.outbound.protection.outlook.com [40.107.7.85]) by sourceware.org (Postfix) with ESMTPS id EC49D385354A for ; Tue, 6 Sep 2022 16:52:15 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org EC49D385354A Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=NtJ167uH5zr8XJ7OTiDaWgxkeEXpiV2SjwFE14XOiTljpctZOMmUeU47DrHjbpiZUKlKVpiASU77GrZx5uNIT71/Vna3al+6M0lEBHgwrn5d4m3+09rnXyvl9LHWUIRDTRzBOlvphHWitdLpsg2nM9clLku9yTif+zY31IQQtlgIW5C/Wsue9c9UG3LzfP5ZOXrwO+xTPbubQv/6YKpJMtb1utmFmGSxBYXw5+a5yoCw5SmYOhR6FlvuI9FFKpjeGlNLKVvDYVcILp+IJbCQc/0LneN5RkJGr3K4/G582oTjz9fvrJH48LTpFQOTUVpE8AKhzRniPnp9n81bYbtY3w== 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=inP2nIY5WyxPOhDJmkLpZWt9J3ZzBr3tdE5i/48TnPE=; b=Vi0N8YQALj2OMd2ebFIlCKEFJDe/yZncjwyoEYhs4HV8zOlQLXZdQ7kxnAP9iGvXTtIxP2FMPnvQmb8uzYJiZ+5WUo1uK0EO+Wod46MNzvyYBVbwl0zLASUIpezozf3+zmqiwupxWk3FoSFbUDx8/qYQLZam/aDnvGoU7DTjKd7WE65fKZQ9QljEW+4cRA5iu2KuDWR6zkhMojQeE6tCFkbx6U31rLQAfbf/T6HkhGZbgvZGxU7XLVzsaO21W7HxRAHuJLRVW9guNAl3FP5ZzvVlFktFzOFSfFH+CnmdeLMBvxTM5IS/7N6orkyLGYSabAGQSEn3XlOAsx0KjD9MEw== 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]) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=inP2nIY5WyxPOhDJmkLpZWt9J3ZzBr3tdE5i/48TnPE=; b=j5xgrCMccva0Dbx4jaCKOPpYVXLYLx1DOOGCxbx4FFoi1ayoUIK+JntUkvweLDAFG/d0vepyKJXggAoPD+YA/lL5bdGewIoH38/1hz4Dopn/PzbMbJGeEd7m8E8c/NfTnQFlCCbDdcNkUv0GFhrsa9g4u03gJFQk5U1EjAt3Y08= Received: from AS9PR06CA0162.eurprd06.prod.outlook.com (2603:10a6:20b:45c::31) by DBBPR08MB5897.eurprd08.prod.outlook.com (2603:10a6:10:203::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5588.11; Tue, 6 Sep 2022 16:52:13 +0000 Received: from AM7EUR03FT010.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:45c:cafe::b3) by AS9PR06CA0162.outlook.office365.com (2603:10a6:20b:45c::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5588.12 via Frontend Transport; Tue, 6 Sep 2022 16:52:12 +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 AM7EUR03FT010.mail.protection.outlook.com (100.127.141.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5588.10 via Frontend Transport; Tue, 6 Sep 2022 16:52:12 +0000 Received: ("Tessian outbound 63c09d5d38ac:v123"); Tue, 06 Sep 2022 16:52:12 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: e4bfb23cfa874614 X-CR-MTA-TID: 64aa7808 Received: from cb942188c4d2.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 324DBDE3-D259-4ADD-B27C-4DAFCEB474D3.1; Tue, 06 Sep 2022 16:52:05 +0000 Received: from EUR01-DB5-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id cb942188c4d2.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 06 Sep 2022 16:52:05 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PDjmgOkMzla/DpS+r4z3uvTH/2A+f/F7pa87kskOkt3+gTwK8+NfLtE6fGZx/3YR6rmN8yQoS9S+SmMwKodBIqrlHbQwU7fTByQVzB+2aNTEE57ihf4SA4EUTG+leByYDY4Gxp72oCdwyguHMObZ9VCeiYUjNpXFUox8KmZht2axg/jXClkfbMCxlCKimnEV7CD7LSytmFo2JWfgHQRbmKAOKwUIGhJdPkxy01aAQqsIqHrgB6iaOjvn0nIWLVvI1lJpEBWIWIxEasaCU4se0o5E/qVzk/A9HiTZ3sA4C7iC7mXaSa8xhfG7MhDy/W/MxXXkxL841u6NgaKOWvQnhQ== 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=inP2nIY5WyxPOhDJmkLpZWt9J3ZzBr3tdE5i/48TnPE=; b=nuPEvCFEXUJ8XaAtDYVHczk6TKN+c9JXi15pM5aubrCyST2Tmtzq79y3V50Z0invsciQU2aTEeql5baU51BexCUNx/zA8lvfdhD9v45rhjVShPSSbXIpfQyTGNnbzf/KD/hQra6ph8O1+OkYDAlkZ+qhzowhCiwGmYFyLSoEvtYiSxFZhsYbBKxj3fVH/LwrG0NwAPaZ0kCsHTiLq//hm+uyLQQKGQvPAnrD/CgKgn2S2TCkTAV5iMPMLqEf0bd+XaMSx6o9kw260Ia2oTAR21aEAJd+HvS9Okc4R97cmnI/TfduI02SYx5C3Mx2cPSgIIUyWNof7ohrXlF4DTZc3g== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=inP2nIY5WyxPOhDJmkLpZWt9J3ZzBr3tdE5i/48TnPE=; b=j5xgrCMccva0Dbx4jaCKOPpYVXLYLx1DOOGCxbx4FFoi1ayoUIK+JntUkvweLDAFG/d0vepyKJXggAoPD+YA/lL5bdGewIoH38/1hz4Dopn/PzbMbJGeEd7m8E8c/NfTnQFlCCbDdcNkUv0GFhrsa9g4u03gJFQk5U1EjAt3Y08= Received: from AS4PR08MB7901.eurprd08.prod.outlook.com (2603:10a6:20b:51c::16) by DBBPR08MB6106.eurprd08.prod.outlook.com (2603:10a6:10:202::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5588.10; Tue, 6 Sep 2022 16:52:04 +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; Tue, 6 Sep 2022 16:52:04 +0000 From: Wilco Dijkstra To: Florian Weimer , Wilco Dijkstra via Libc-alpha Subject: Re: [PATCH] Use C11 atomics instead of atomic_bit_set/bit_test_set Thread-Topic: [PATCH] Use C11 atomics instead of atomic_bit_set/bit_test_set Thread-Index: AQHYwUVpNZ5UYNp6Mk2+9/hh6vxlA63SUTg1gABF/yyAAAe+CA== Date: Tue, 6 Sep 2022 16:52:04 +0000 Message-ID: References: <87mtbc66t4.fsf@oldenburg.str.redhat.com> In-Reply-To: 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: d54830e2-b7d2-49ef-6c59-08da9028255c x-ms-traffictypediagnostic: DBBPR08MB6106:EE_|AM7EUR03FT010:EE_|DBBPR08MB5897: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: 84EpxRO7skkW6PeLwY/4Qfncca58qQ9mzLUL0VDSMSr/bU9MT4giN8smJUFJKBkxSSyLNQ+yL35YvtEhwyI9DQOU5GChgn30S0USumyDdmIIobANaFDhh6ij4GZNCHlQbzkq5D8W2jCiKFkLa9LpgR+vYNHD6KQTFztXFVFR85KSB3efyTUZhxOx5Fsqy7+oM19xSDdVI0seIcixaVcfGXfQNcakdyhUUaA8FiE4wnEGYBwcOLLvzK3OZqsvt4WJrHYnO+g5Qrr9hHdYxc3yjtSdvU7h7kVpC8akLdQwAdYfrGwGmpJBlhb9Sx854/BlvFR9QFtr+3pDQxGThf4F0EG49/Op4zPKiCLe+we1qYiIHl4WntV8F1q3Qfr6CT+VkvRhGBcJr0A/lK4vkhwPX9oj1JY8lERn0TG0r++bLQMgbY8FuGov+KN59d0TMxXqPEnMJhbMPtX1lGDpBxQ/nA+hDs3xhIp9CQmieoeVDBX83FB7lefJvGRUddr8ARsygr/U+83kcYeYCxNa+BPvQlMN23paTBj29IkrTBwB1vNoFtZRYKK+YRmbTmBbtRNJnC0Bc8tUguo8vO/RFV0RLcEeJaZSODqs8WQVALdEuGx7xCPOKoaZ6UU+s4BIRWjTln8fVoM984DfTLP8As3yT3qs9v9nwNz9UPZXNFMQblXVR1//yr0VMPQVU4lElRQ23bbImMhTFHyABkZOxKudo0KlpQ4M093tedgan6GOs+o+/EGD45XEX8w4OiLHnvrffW6tK1xDTGQrEAn2wW9yrA== 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)(39860400002)(136003)(376002)(366004)(396003)(346002)(7696005)(83380400001)(76116006)(66446008)(66946007)(8676002)(86362001)(52536014)(64756008)(91956017)(8936002)(66556008)(33656002)(5660300002)(66476007)(6506007)(478600001)(26005)(41300700001)(71200400001)(186003)(2940100002)(9686003)(316002)(55016003)(110136005)(2906002)(38100700002)(38070700005)(122000001);DIR:OUT;SFP:1101; Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB6106 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: AM7EUR03FT010.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 96779bfc-ce19-4cde-ae31-08da902820ab X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: efzgB2neGvrS1QeHKeaHrEUOkggZH8QuCAdelxRfanR1E7iCRahgM7DqJWzMGxjWltjyaqUdqEiSMwwZEs0ut0WifWQWZNPQPB+KAhRbE/RS7arVV94SufwSgt74iBt0aJIO41+ce38gFpP0EMPilRN7IhM+wGWBSf7Kox2AnzatRrcmcSOZbfvkFP/jq3v8jKcjDAgSi3OfBHEZaO62WG3bRywwkoxDVJVS5IpWfNeEQ7CPUnWr+TNGw8kZ5RRxhySXlZ2otkUeIR+fZgd2OLaXo76k7HxQtBeBecCLYqVYPa8YYdngmuMU/wflkqHmo9NJoy8QnnBNpmIgKDd5N+xAWelJ1j5WLilPxwDlOMcq1YnXqwN5BQPyMlPPNv7PXZvyThEuRcwChP3HOkYl/13UD95Z+mCdtqI0O++yESMe1lWcbtyXkeJCnycCgHaDfjgoKzOi4rRFDyukaCDuFhKHZqXnTZE6fjxeuu8UjHfhTo4yDugI0iEmkUcvbOwbcTFMBsA9hdbMhN2ZOS5aNttrBDx4rPcXCokmuU8dP5mJ4hKaMKaBqhc0B9QNIJeuQxK4/bSbV+Q/YnWAy/IBrmzZA3HSTJhJzG2PE0gzcJLMHUkPkoctcQ7mmnjLApzjwg2Rbhtj6FojqQLzmYLGswETqH1/nPYDBSEYK5Hk9Ms90ww1yJDAJSrVdRuxm6VUqY7FXgp5Pf/Dk1ZerP59qk3fNN1/RlbaOlgzk1O0Cy+M2gdOy7ElLj+O6+g6v1iLaVcZPqPigwXpkXJuPZQ4pg== 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)(346002)(136003)(39860400002)(396003)(376002)(36840700001)(40470700004)(46966006)(70586007)(8676002)(47076005)(478600001)(52536014)(36860700001)(5660300002)(81166007)(8936002)(7696005)(6506007)(70206006)(86362001)(40460700003)(83380400001)(2940100002)(41300700001)(9686003)(26005)(2906002)(356005)(33656002)(82310400005)(82740400003)(40480700001)(336012)(316002)(55016003)(110136005)(186003);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Sep 2022 16:52:12.5627 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d54830e2-b7d2-49ef-6c59-08da9028255c 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: AM7EUR03FT010.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB5897 X-Spam-Status: No, score=-11.2 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,FORGED_SPF_HELO,GIT_PATCH_0,KAM_DMARC_NONE,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 List-Id: Hi Florian,=0A= =0A= > Why is acquire MO required here?=A0 I don't see any synchronizing store.= =0A= > Isn't this mostly a compiler barrier for use-after-free detection?=0A= =0A= You're right, it looks like the only reason for atomic is to ensure memory= =0A= is only freed once. A few cancelhandling accesses use acquire, and there=0A= are various relaxed loads and even non-atomic loads of it, but not a=0A= single release store, so there is no use for acquire MO here.=0A= =0A= Cheers,=0A= Wilco=0A= =0A= =0A= v2: Use relaxed atomics since there is no MO dependence=0A= =0A= Replace the 3 uses of atomic_bit_set and atomic_bit_test_set with=0A= atomic_fetch_or_relaxed.=0A= =0A= ---=0A= =0A= diff --git a/malloc/malloc.c b/malloc/malloc.c=0A= index 29fa71b3b2a3d0a671149eaf619e4d518c56aef5..ecec901b14f602e3c93da1a847f= 043ffee41a1f4 100644=0A= --- a/malloc/malloc.c=0A= +++ b/malloc/malloc.c=0A= @@ -2460,11 +2460,11 @@ sysmalloc_mmap (INTERNAL_SIZE_T nb, size_t pagesize= , int extra_flags, mstate av)=0A= }=0A= =0A= /* update statistics */=0A= - int new =3D atomic_exchange_and_add (&mp_.n_mmaps, 1) + 1;=0A= + int new =3D atomic_fetch_add_relaxed (&mp_.n_mmaps, 1) + 1;=0A= atomic_max (&mp_.max_n_mmaps, new);=0A= =0A= unsigned long sum;=0A= - sum =3D atomic_exchange_and_add (&mp_.mmapped_mem, size) + size;=0A= + sum =3D atomic_fetch_add_relaxed (&mp_.mmapped_mem, size) + size;=0A= atomic_max (&mp_.max_mmapped_mem, sum);=0A= =0A= check_chunk (av, p);=0A= @@ -3084,7 +3084,7 @@ mremap_chunk (mchunkptr p, size_t new_size)=0A= set_head (p, (new_size - offset) | IS_MMAPPED);=0A= =0A= INTERNAL_SIZE_T new;=0A= - new =3D atomic_exchange_and_add (&mp_.mmapped_mem, new_size - size - off= set)=0A= + new =3D atomic_fetch_add_relaxed (&mp_.mmapped_mem, new_size - size - of= fset)=0A= + new_size - size - offset;=0A= atomic_max (&mp_.max_mmapped_mem, new);=0A= return p;=0A= =0A= =0A=