From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-eopbgr140087.outbound.protection.outlook.com [40.107.14.87]) by sourceware.org (Postfix) with ESMTPS id C5F06395C03E for ; Thu, 19 May 2022 16:27:17 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org C5F06395C03E ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=MfiIWDKgT4cAv8QCub95q0aQH5xkgUoiVCV0c4fpavil3x327PFxjayKM4fS46sKRNqCr2ZXR6fJhgpNz16AM6wvAw2kvzNmbIGyvK8FiX8haBmGdDegBBCo1fiSFcTmoUgHh49Sq55sxtf877bUGCKFR3wLwhI5EovTgeazgYxjjYzduyonpVSACzP4ZQBKXYntDehJdN06abczkhG0Tdf3DQosGYk/4TJ1fNUpDUEOgmBfELHP1IF1z8f7SUmRsRJWxHYADjUNa0uLiWfMFc9KU+ZjaxiKMT/v1wCHtFjpe/2MmZlJo6YQPb4AfjljM2/z0V9fRiTHqNj+KO3l4g== 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=Bm+4wgBuQzsoeOep59eGGXfnv0RZCgvy8NCb2NIrzPQ=; b=VKVrp8N8QfKDE41q0wLhPBYYLzcTKbSGe3M6rzruFKqbOMPGzI7kSdkoIXmqWPe5ay76hOpU3fObdwmVGRlHLjj3O5UC3FuOzCU4OH0r+zeUUxo72FHUkaG8i0G2khkqsR7nVAo5Sl+LY+y7CqMAQ88Cw5Vns6FPM/Qv7F63Vugx1hLHk3gLCtWeT6gkaYNOaoKjzRmHpSDR29UoTNVnBRmOxH5WH5emR39xTC918Kv/uN3JCIQxFW9yYEQFl4nGS/299tiXj0thWurLMwhB762GhOzR7IIzRlmE47GFm87IgQL54op5DHFxpw27c+FLAED7WCFOn7tG2esaW9QK5Q== 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 DB6PR1001CA0015.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:4:b7::25) by HE1PR08MB2874.eurprd08.prod.outlook.com (2603:10a6:7:36::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5250.14; Thu, 19 May 2022 16:27:10 +0000 Received: from DBAEUR03FT034.eop-EUR03.prod.protection.outlook.com (2603:10a6:4:b7:cafe::52) by DB6PR1001CA0015.outlook.office365.com (2603:10a6:4:b7::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5273.14 via Frontend Transport; Thu, 19 May 2022 16:27:09 +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 DBAEUR03FT034.mail.protection.outlook.com (100.127.142.97) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5273.14 via Frontend Transport; Thu, 19 May 2022 16:27:09 +0000 Received: ("Tessian outbound 361d68419a2f:v119"); Thu, 19 May 2022 16:27:09 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 568e594738635d39 X-CR-MTA-TID: 64aa7808 Received: from d706e73a8d48.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id F2B3FD4A-1144-40AE-B7C4-8CFEE12D17D5.1; Thu, 19 May 2022 16:27:03 +0000 Received: from EUR04-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id d706e73a8d48.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Thu, 19 May 2022 16:27:03 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=l/LWPnWSFnwEgISInOxctf76q7x6J6V2/AYZJ+QDo/w0mKWDHczBWY5u0HwGUavu/48v0vjxK16sfCQIAel1JMyzb3K5qX676l2vB/LMLeLHiA8JWYv2T4tzQoIRiht9uO4EHHSeDfNIrV6bPSFteiqVlDqnRmN5ePdm3R9xdhcE/Va3pz18HiMFSz5w+QUF2S2FL6ekPDr8XONspudluRwKBPLT1euDBsMK/bGZp+Lc0QUXGVcXdGS8fccn5sOD8fKFKNuDPyY4W96BnHr2fE2L60/2gtPqsukgk5LuzKXtMCS7IaJaj3JkAbWihC5qR/bIwXoyG27EofpPFJYTOw== 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=Bm+4wgBuQzsoeOep59eGGXfnv0RZCgvy8NCb2NIrzPQ=; b=T+Z/gTQYUtkNidYxJoAsdGK3eYPV6acDsjEswb3UY84kqT8O46mAukhbAeLfOMEt+WXybqsyGichKuZI/PTZKMrm7GJH1VLheYdOFoPgqtSglYyRBVJ4PkpELYW6f5bbVG0QRF89e+OfUa4DwYWoYi+hwe0hEV+xyW9Bx6O1kQlX8ZauKRhTJyhnmR7cYJg678mJsP+k5Vh4GB4hir+v9g63LWV2sjGZ7fZrFd3I9STNj/JzOhzXOwzdqkHvjuXO/YGZmCz2qAsXkF0FeUrIh7/zLV6sexOJUYtnKSc5o1L0LmYmNhG1VPtSN0HYIle2ukNyyGYCywh21JFEFcJWGA== 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 DB6PR0801MB1879.eurprd08.prod.outlook.com (2603:10a6:4:73::9) by GV2PR08MB8124.eurprd08.prod.outlook.com (2603:10a6:150:74::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5273.14; Thu, 19 May 2022 16:27:01 +0000 Received: from DB6PR0801MB1879.eurprd08.prod.outlook.com ([fe80::4c79:5ff3:ff33:7ee1]) by DB6PR0801MB1879.eurprd08.prod.outlook.com ([fe80::4c79:5ff3:ff33:7ee1%11]) with mapi id 15.20.5273.016; Thu, 19 May 2022 16:27:00 +0000 From: Wilco Dijkstra To: Adhemerval Zanella CC: 'GNU C Library' Subject: Re: [PATCH] Avoid RMW of flags2 outside lock (BZ #27842) Thread-Topic: [PATCH] Avoid RMW of flags2 outside lock (BZ #27842) Thread-Index: AQHYa5JSAJa6BcYBU0GjgjmKmoALd60mWGSAgAAGLkM= Date: Thu, 19 May 2022 16:26:59 +0000 Message-ID: References: <7d120257-c779-ee56-932d-17738067f0ea@linaro.org> In-Reply-To: <7d120257-c779-ee56-932d-17738067f0ea@linaro.org> 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: 372a32a8-a0f8-4818-b42a-08da39b46c16 x-ms-traffictypediagnostic: GV2PR08MB8124:EE_|DBAEUR03FT034:EE_|HE1PR08MB2874:EE_ X-Microsoft-Antispam-PRVS: 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: /F4NShpvZhEpvJx4wRR8yzBkhZlJEn+WKqDkAl4eBVAl0yJQmr/SeRDsIQNPDalcfrblalS26mEwSSun8ecJHx9BwawjDAKrx3blPu7Y45+6H44nywppK3RCV+xhVA+vRbwHY4dpooDeiV/iGB6gKFPDsr4E6Q5nyTmpt+wNtXMxL45gtDcCLwrMIdUmWPqzMmjKfWn/2avqq3iAkhf1jCKzsD8PbygilffQMgNVHP/HJpNJy/ePNFbdd5bAdxFDISjyL+1AYuGsE4STqxYamhAeVmF358fmX93sWyQBO5GZnlXgzKG4c4wW76sHdTg8YIRIqHR1VNTvbpIfl39r6z3xdMxfP/AHakRne4aOyoCJH9b1kHMQKJ9EwsUIY+C7tmAumE1BiKyLRBh/DahFNbHO58lMCUKMflBRfJ/6jx5eYtIKL8XFIchRI4p+Zwj40we83PRiLSEyzeEUmUifYp4/etpUlvILhgOB1Y3JAElCPCh9B7rwk+5rS9fVs3xuctEoKGsf2BfxOcDPqOnoAZqCzcUrwtu/sxoh7AodTGXwowQsFI48Mw7ujLKV5uOZMwrMF5bNoF05Cq8C4Oz57OKWY+7yhc6Xd3pxTbPzVsuHx+f56qvo45dGCoHe39T1lwG6mYvdNle7TPm41EgpMkw/ZD0mt9LPd5PDwMbMhf5Jfs4rA5/5P1iWBtsIGSlVaIKkTzqy2MbdidMNrpJB3w== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB6PR0801MB1879.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(366004)(2906002)(91956017)(7696005)(6506007)(6916009)(66556008)(66946007)(76116006)(66446008)(66476007)(64756008)(316002)(4326008)(9686003)(508600001)(122000001)(8936002)(52536014)(38070700005)(71200400001)(33656002)(83380400001)(5660300002)(55016003)(38100700002)(186003)(8676002)(86362001)(26005); 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: GV2PR08MB8124 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: DBAEUR03FT034.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 0facca71-a2ef-407e-bc76-08da39b46646 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: nFYGmLThlzq2qAFVIpKun+9CI8J9yj7D8eqfsmghNtIaAlGnztOraTmXxSKLGO7HUdJ9mP99Sdce7VRDXGtFWTUPWDjGNrAT7d6xnGFtEA7frw4B14SaB+NRUp+ZGDAhdx7YGuQGICXH2rxFSmbM0B6aVhYT5MMxz7RDuOs/hg0mBbZ3Sd5yVPTJzwouMIsjUdkr+IcZP0bj9e1oR/bxbRHzSkxsY7zMd5kcI2CW/x3HnHZuGW6lLwmdBvnSrdpRorCtQR1fpwYvpSMGO2esk8llMdSE5IhJH6eNj9Hx3Ac8rYcILUkqqqGxXwIw3qXB9zolimMnrWGCh1+PJom0A99cPyUC6qS3BJPWxVRA0LMQXiFQJAuPQJgF3I6sRJ6b4X6m6Aza/uf3MbZGo+02VsqBTmGF/g/SHdLXjhGF4j3NoKDp/5VXSF7QYL0909H+yA/cMzmLL524b6PIaAPVVaLtDOYBtJVcQRpLOgLuL3dWatTbxllbXCU1PADk1WQadgeBOfiDmylW4/4jRcDYy+OEkHqcnFO9+UHKBtpZgEl2Fm66mrZAaLJ018ZMiLnk482rSOr5DpIhAjZgm26VUh9CcGYTkI2JgUyYqfwRN5Am7/fS3aQhIuFP8NYnUVhIiI1ZZfdPCefMa3yRvknmqVmN/M+qlg2y6vVV+h6vIwNt6FR1V+bmWP0iQdgL3opK 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:(13230001)(4636009)(46966006)(36840700001)(40470700004)(5660300002)(186003)(336012)(9686003)(47076005)(83380400001)(82310400005)(55016003)(508600001)(36860700001)(2906002)(33656002)(356005)(6862004)(4326008)(8676002)(70206006)(52536014)(8936002)(26005)(6506007)(81166007)(40460700003)(70586007)(86362001)(316002)(7696005); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 May 2022 16:27:09.6513 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 372a32a8-a0f8-4818-b42a-08da39b46c16 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: DBAEUR03FT034.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR08MB2874 X-Spam-Status: No, score=-5.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, 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-List-Received-Date: Thu, 19 May 2022 16:27:19 -0000 Hi Adhemerval,=0A= =A0=0A= > I don't think this is correct because if the caller issues pthread_create= =0A= > after flockfile, funlockfile will not issues the correct operations.=A0 I= =0A= =0A= No, the idea of switching off the single-threaded optimization before the l= ock is=0A= precisely to ensure that you never could get that situation. Note that neit= her of=0A= the locks in flockfile and funlockfile use _IO_FLAGS2_NEED_LOCK currently, = so =0A= this is just being extremely conservative - in principle we could remove th= e=0A= update or move it after the lock.=0A= =0A= > have a fix that uses a different locking mechanism where the _IO_FLAGS2_N= EED_LOCK=0A= > is removed by moving both the thread id and single-thread optimization to= the=0A= > locks itself (on Linux tid has at maximum 30-bits, we can use 1 bits for = the=0A= > single-thread optimization and 1 bits for congestion optimization).=0A= =0A= Right so you mean moving NEED_LOCK bit into the lock variable?=0A= =0A= > I would say that with currency scheme where _IO_FLAGS2_NEED_LOCK is stick= ,=0A= > this is a benign data race (although still undesirable). =0A= =0A= You mean as it is now? It is a real bug since various functions update flag= s2=0A= behind a lock, so it is possible for this RMW to cause corruption (but only= if=0A= you are already multithreaded, which the update is pointless anyway and we= =0A= can just skip it).=0A= =0A= Cheers,=0A= Wilco=