From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933339AbcFQSRy (ORCPT ); Fri, 17 Jun 2016 14:17:54 -0400 Received: from mail-bl2on0121.outbound.protection.outlook.com ([65.55.169.121]:15647 "EHLO na01-bl2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S932106AbcFQSRt (ORCPT ); Fri, 17 Jun 2016 14:17:49 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=waiman.long@hpe.com; Message-ID: <57643EB7.6030600@hpe.com> Date: Fri, 17 Jun 2016 14:17:27 -0400 From: Waiman Long User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0.12) Gecko/20130109 Thunderbird/10.0.12 MIME-Version: 1.0 To: Will Deacon CC: Boqun Feng , Peter Zijlstra , Ingo Molnar , , , , , , , Davidlohr Bueso , Jason Low , Dave Chinner , Scott J Norton , Douglas Hatch Subject: Re: [RFC PATCH-tip v2 1/6] locking/osq: Make lock/unlock proper acquire/release barrier References: <1465944489-43440-1-git-send-email-Waiman.Long@hpe.com> <1465944489-43440-2-git-send-email-Waiman.Long@hpe.com> <20160615080446.GA28443@insomnia> <5761A5FF.5070703@hpe.com> <20160616021951.GA16918@insomnia> <57631BBA.9070505@hpe.com> <20160617004837.GB16918@insomnia> <576416B1.6020006@hpe.com> <20160617154536.GB1284@arm.com> In-Reply-To: <20160617154536.GB1284@arm.com> Content-Type: text/plain; charset="ISO-8859-1"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [71.168.64.123] X-ClientProxiedBy: CY1PR13CA0017.namprd13.prod.outlook.com (10.162.30.155) To CS1PR84MB0312.NAMPRD84.PROD.OUTLOOK.COM (10.162.190.30) X-MS-Office365-Filtering-Correlation-Id: 41527e94-c551-499f-bce5-08d396dbaeb1 X-Microsoft-Exchange-Diagnostics: 1;CS1PR84MB0312;2:l9YTFUt/XfMq4HboFIpzVmRsMFhnxYfh4H8Ws2PMWPIvRifZ5MsrnOnsLeps774hF+djNYPx8t/Hw8I/IQN8Q2SuHiTlKmTbEV+O6NO7jzdm8AOc7+ls/fXraIsADKE3wRIeoPcikFqb6GVhugZAYFb5qqYQ49Dmsr2gwbszlBa4ex0NpPGq8MBz+PR2+xkt;3:h4Dqvrx3Kyqv17vD68XDSw2cW4ysWDcRJWP0gior5G9CISx6KFtKDa554jBz7x4uBqurSNFe/V2xNRbhuOsXkB+PExS6AX09V+hhpxmn/TDsL17a6CrlbWbiQ0oGZaai X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CS1PR84MB0312; X-Microsoft-Exchange-Diagnostics: 1;CS1PR84MB0312;25:9tnhGyjonwa0VH81q26OlJUfIq72m/QFiR+2yoY1QiqRDG8PXkpdk6tu156Ny5UosNexlW0ZyHyDApsNKfv2eB5/wTF3okNa2mIR6/kdtAgiG/UsP4wZ+5KzuVMqg/PhTs+HEqMMz7xexudl1BxCgJy+ynMrY2W8wwkADsGk6ro38KJ08IWtlfyXiRaDSODadb4l2MSKmAHogk3nf3zRBJfk/169CcjC2nq8g7w2/CJ+GrF5ZMsW5zm89U88SAzbOdbiu7PT2ZFpdvmyce9frCigwfD0K6tWglBJIzbrZmGmtqTRm37s8XM6wQGWuY9aye1c7B8ZdkmYCJX1EW8XZhSAndfijlyOR8sUuR9mrZyK0JZWg0BTY99ekGihSdICt8bamq9xKCYEJXp5yrnw/WFW1NEU8vXopWw4d3aRbkGu8taQL3ppID9E3/i6Obw8z6u2V7PDDiZRPXcNgDw7Cz6IAXf2wwaXJyJ5A2Qs4/5n9cCU8Srans/t3+mIK61KHG8g9snq25Tp4TWWQ/ccCVlcYhvBlnzwh56uUtnFZlqHuKPA1W64zzI8nk0uFWbeP98jvWLmLFdE6ZVSx3CEyCV1bukAoLMfM6Wc4Cmx3/6TWEka/0wZmDEIPAUwRh70jBnLaQoLnuysMeUUA6D9x9/2+6i0ygzGIqyGmsuj+/+tpXN+fSTtzUBs/puBeqbjlBJNUR+inr0+3V+awiE+4YRn5t9KKiZfSpRocNmccaE= X-Microsoft-Exchange-Diagnostics: 1;CS1PR84MB0312;20:KFEXrkhX9+jGyuR14pjQYomoPAAZ9in5OkUB8IUkxkRh2RNfzVmDIazWMgWyQXtCuJI7yEuDZTUBYkA49nercYNBxNzLBVHf6rn6l4ihTeuTMFPtGqp88MnvFufimA+RZlS3h3dEQLcrTXsIrK9Lppxf1JTEH8B7+vhdiWASIXi6d5/k1qi2eJVXJZWaliTXFB5zYgyFuiJi7xsxFtDR44WjcF1DgwSaXsh87uIzuj/vJtkuzWLxn/E6FX00oyrDq3m+jTAEOQNQ3++qHNFFQgiK18JUi0eg5Uk7rv+2YXVdXJ++EUJ1C4ZVOsIN9zw8czj7lp270qDIN2Ql41HCXhvoYGuynuqNpB1+EwiVcItBtw8QCv67ouybnnbbwuq2RBv0mapn/zig17b9/Z7I8wcuc9rfheXO4f95W7HWT+rSn/Frgzx9XRYUtcr5AYogUV9QHJMs1AV3pBQnsSWANZ6DotmQJpj8pze6JeWDVQ0/VssUB2IP4rwMDqoNomEn;4:amNtnm54fPOIxf8JdyHVSx6eA0XvVdXRXoim0x148UPpGp/QsL+SZtM0/o6vJaIgINJIrQ2I5JoMhGfv9ziVoXnXLQl5iySAzej8siulOOJG9SX/KhDLOVGDyjDBiBbjrBonVmySt9kBhUgNEG3l7UbtsJYJgbU+aZZEOLny5ztKZliJPBhvumyoevx/t+zrIRU/9RovKBs8uwrZ1/o4W7sBu90557XKuuDQWP/UL0V8sz66h+7SiSLwybCenPhtwHzdu/LCa8MB+x3iG043SOmtCiE8+FSCPEsQ+QS5B7CV7GUE29kItvwuMSpTa2CPrgq93S0okSX0TBXfaWfBCJcqA6l39KNjsydyi9F0ngPvNxWUO2B0ZYYJdENssbeh X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001);SRVR:CS1PR84MB0312;BCL:0;PCL:0;RULEID:;SRVR:CS1PR84MB0312; X-Forefront-PRVS: 09760A0505 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(6049001)(7916002)(377454003)(24454002)(189002)(199003)(3846002)(6116002)(50466002)(93886004)(65816999)(83506001)(5004730100002)(36756003)(65806001)(101416001)(586003)(64126003)(81166006)(80316001)(42186005)(81156014)(2950100001)(105586002)(106356001)(76176999)(77096005)(50986999)(54356999)(230700001)(7846002)(8676002)(47776003)(87266999)(65956001)(86362001)(189998001)(33656002)(8666005)(66066001)(23756003)(4001350100001)(97736004)(110136002)(99136001)(117156001)(59896002)(2906002)(68736007)(92566002)(4326007)(7059030);DIR:OUT;SFP:1102;SCL:1;SRVR:CS1PR84MB0312;H:[192.168.142.156];FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?iso-8859-1?Q?1;CS1PR84MB0312;23:zv/Wshf8kwOBaxh+p5FxuhrevyCbzvxnyE0TFJd?= =?iso-8859-1?Q?n/2Jpeuh0cL09IzNCNjRrWCVbHZ9Z19oGWq+cZIvOZDgMER9uCD2aeSnm6?= =?iso-8859-1?Q?uPHPGC6/Z+GG0kfSRlU6w7sCKkg8Yomyg4M2JdAMNnh36FU00DnCBKSfno?= =?iso-8859-1?Q?C3JMlvyl3DwlRVBT8U8bVj/66R+rvMyhWb5C0o7m56P6Ci338PH+rR5xYb?= =?iso-8859-1?Q?5NlyCGGk25WWudBpWwqX37/enx2EDWEEyXnmaR+UmMb2zGBl5pXfjdlU+Y?= =?iso-8859-1?Q?6zoE14TBRkLX8JT2IsHJbaAR1HU38ajccIZ1PcZT07JHrO+b8rO+vgP+eV?= =?iso-8859-1?Q?s8DTeNBP3Rq8l9wi92LCgrMCgW/CLj2otpJpUXfpl9nbRAQWujRUCsWrEo?= =?iso-8859-1?Q?9KgRrwZD5t/BPsRHnszVtI8ZcWt1uvz3Ki6d8ATp9rd9vcEV5cVLrn9R3A?= =?iso-8859-1?Q?nvddb1Jaht4hbmbZZp0Dy4cCiN29RZXl7pGe7ouu8+vXAXYE79Nin5x9Hw?= =?iso-8859-1?Q?KlOoXAY4RwpHIKIR61t3YTPPVSjSt8ezMzcyUAURKUK2tyxHH6kS4WiBXe?= =?iso-8859-1?Q?5qe3ohJ4YXNbNlaF/hE0DcsdaDyhAvoONmV1mbEqlAQRSluYtaonTF5Usz?= =?iso-8859-1?Q?zywS5jf0dXeN8UOdO6uZRxgXDM+2wWG+9uSkY7AC+Zytg1jQFNafZdS6ho?= =?iso-8859-1?Q?fSgrx311RIHSic5C01oX1E31uJM7zH6/ytMBfXiCpzBjDj2lkTTTMX1oFZ?= =?iso-8859-1?Q?DvsNRPbZsLLiCEPwGn/XlVU7Dna0E0nHrv2/pGzIq9uXzO6mkWEbQRMGGS?= =?iso-8859-1?Q?sxJ2yPQyYgISH2fIU5gh+DjEvPwYMsFShRN292onou1R5rDP2yoADQ5M1q?= =?iso-8859-1?Q?kvEbfq3WG7ML2YAlZh2XgyYH0ybQsFO8P+66YyLobECQF4BZbNoU8uRzTk?= =?iso-8859-1?Q?3dMLnH4hbylJrwcwNMSBj9BisY9wMgAQnFUyr7AYQdMNbEn/PyaBP4y0jz?= =?iso-8859-1?Q?K8WbNVzKIFQ+wszcwVPdS9nAnHSHZ/2hiP+B/lX2OsDUtbD81jm9dK2Xoi?= =?iso-8859-1?Q?lKqGe4wyVjUKJgxgyCnGRfYyRpmJMJi7+GxEgmVxhLgAFQQYMpIT+kKW62?= =?iso-8859-1?Q?qkRtdm2r/DzH67SodZ4RdT2T9cSEeNq4DS0be/OLCX51op8RZYbtyTEbr7?= =?iso-8859-1?Q?WTxch2ugnuqLe3ebrALR9en361PN6o9DaVUIEC2EKRzoqIVaAyb2mGjaaj?= =?iso-8859-1?Q?OhoOpxQQ5sGGLMRNylIwB8naA1GABqwKn+mcjGbqyFTCTm1VhLaTrf4Tf1?= =?iso-8859-1?Q?pSMPE3s32sShVcH/R889qML4tPV65ChEGN+wuOT/z+N9brRv+xxFvvlq7z?= =?iso-8859-1?Q?AuT1RQuU5AbiPN7yGq7gflOF6fUk0?= X-Microsoft-Exchange-Diagnostics: 1;CS1PR84MB0312;6:+cmSKOY3mBUPpLyHl2EKiqg/7Dnfr9KlD+ayUVIDcLA8QDcZzcav42p3Ka+lPHaPNwi72SyyFgBoo7XkheBM3FfvOq9ztBVzKWvomgRYPceGy7xjLEzY+hQQExgdV2wmO9o+EiIwH6nYEkBqUg5txr1cte9fz+AOTmDWo7GCePLTCspIYmTYzehFtjGT99Ydw65KgCJ2rJU/V9MIq2i/XY3C41yUQZN6caQs7HM86/sPjEttvwUNUpmt0sX2vGx3IkwqL9uItAPoeyONFpl2AOah+lsddaqLve3rL2RSFsg=;5:hlTIUX8aNXoM6UIiel/e8fZ2jKpUSSnrawlEv6NZvbhL9WUwfsvYFAbPUc6OJnCV11Kt+kqlgxVJv3pdDRR/9hCSZDJGnNpTjllwxDZBAOQ9KSDtQolGWO6+10iZy5XnXV/V8l9aihWEG7lmeN0FXw==;24:3zg+pvi2ULN7ZAIqNE4U4lSw4RsiQlezp4+eIxdfsBuUTPdFNGOg8daURUT5dFd3amJ9kHOLDYldv8dq92aIH0l4M0sw0llQX0/2aFfC9Uc=;7:vVA4AC4u9vOqfYJLw0nJqsaNQe0r6UZFOCCTHpG1sV80a70AmO105HaVFlv6RPYFposeSCIUaszIKZFQi91tJj4dCESz81XuC+qBUAgbR2SiWFpDfya6O4vFrOYOTJfHAVb61kTQ/+kARFWZfj0Lkh5fsbyXfGxaBvLUy+BBwbx0BqndkDpjg8pv8RB9+WZH+fvsvIVYgHPLigIzbajYmt1af1SdWWMRD8NiREj6o73wkn5H8ZlKz8983QbuP7ZY SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: hpe.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Jun 2016 18:17:44.8398 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CS1PR84MB0312 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 06/17/2016 11:45 AM, Will Deacon wrote: > On Fri, Jun 17, 2016 at 11:26:41AM -0400, Waiman Long wrote: >> On 06/16/2016 08:48 PM, Boqun Feng wrote: >>> On Thu, Jun 16, 2016 at 05:35:54PM -0400, Waiman Long wrote: >>>> If you look into the actual code: >>>> >>>> next = xchg_release(&node->next, NULL); >>>> if (next) { >>>> WRITE_ONCE(next->locked, 1); >>>> return; >>>> } >>>> >>>> There is a control dependency that WRITE_ONCE() won't happen until >>> But a control dependency only orders LOAD->STORE pairs, right? And here >>> the control dependency orders the LOAD part of xchg_release() and the >>> WRITE_ONCE(). >>> >>> Along with the fact that RELEASE only orders the STORE part of xchg with >>> the memory operations preceding the STORE part, so for the following >>> code: >>> >>> WRTIE_ONCE(x,1); >>> next = xchg_release(&node->next, NULL); >>> if (next) >>> WRITE_ONCE(next->locked, 1); >>> >>> such a reordering is allowed to happen on ARM64v8 >>> >>> next = ldxr [&node->next] // LOAD part of xchg_release() >>> >>> if (next) >>> WRITE_ONCE(next->locked, 1); >>> >>> WRITE_ONCE(x,1); >>> stlxr NULL [&node->next] // STORE part of xchg_releae() >>> >>> Am I missing your point here? >> My understanding of the release barrier is that both prior LOADs and STOREs >> can't move after the barrier. If WRITE_ONCE(x, 1) can move to below as shown >> above, it is not a real release barrier and we may need to change the >> barrier code. > You seem to be missing the point. > > {READ,WRITE}_ONCE accesses appearing in program order after a release > are not externally ordered with respect to the release unless they > access the same location. > > This is illustrated by Boqun's example, which shows two WRITE_ONCE > accesses being reordered before a store-release forming the write > component of an xchg_release. In both cases, WRITE_ONCE(x, 1) remains > ordered before the store-release. > > Will I am sorry that I misread the mail. I am not used to treating xchg as two separate instructions. Yes, it is a problem. In that case, we have to either keep the xchg() function as it is or use smp_store_release(&next->locked, 1). So which one is a better alternative for ARM or PPC? Cheers, Longman