Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751635AbdFIODz (ORCPT ); Fri, 9 Jun 2017 10:03:55 -0400 Received: from mail-eopbgr20087.outbound.protection.outlook.com ([40.107.2.87]:32256 "EHLO EUR02-VE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751534AbdFIODx (ORCPT ); Fri, 9 Jun 2017 10:03:53 -0400 Authentication-Results: davemloft.net; dkim=none (message not signed) header.d=none;davemloft.net; dmarc=none action=none header.from=mellanox.com; Subject: Re: [RFC][PATCH] atomic: Fix atomic_set_release() for 'funny' architectures To: Peter Zijlstra , Will Deacon , Paul McKenney , Boqun Feng Cc: linux-kernel@vger.kernel.org, Ingo Molnar , Thomas Gleixner , vgupta@synopsys.com, rkuo@codeaurora.org, james.hogan@imgtec.com, jejb@parisc-linux.org, davem@davemloft.net References: <20170609092450.jwmldgtli57ozxgq@hirez.programming.kicks-ass.net> <20170609110506.yod47flaav3wgoj5@hirez.programming.kicks-ass.net> From: Chris Metcalf Message-ID: <5be546b5-e34a-0bce-8cf5-b7c3f7ff28fe@mellanox.com> Date: Fri, 9 Jun 2017 10:03:40 -0400 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.1.1 MIME-Version: 1.0 In-Reply-To: <20170609110506.yod47flaav3wgoj5@hirez.programming.kicks-ass.net> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US X-Originating-IP: [216.156.69.42] X-ClientProxiedBy: BN6PR10CA0029.namprd10.prod.outlook.com (2603:10b6:404:109::15) To AM4PR0501MB2754.eurprd05.prod.outlook.com (2603:10a6:200:5b::10) X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM4PR0501MB2754: X-MS-Office365-Filtering-Correlation-Id: adf8b547-d82c-43a9-2520-08d4af405acc X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(48565401081)(201703131423075)(201703031133081);SRVR:AM4PR0501MB2754; X-Microsoft-Exchange-Diagnostics: 1;AM4PR0501MB2754;3:AVDh79fB8ugMMLHHrWQDYg3V+y6lpOTX/iJb5HOcsEHCgfhmUmyFu5yUQMMLUo5BDcl5tUaTzmRD6g1pIpYueUDEgL14VrJA2x/zGnYm3VmMYJBHqumLeJdhQHtUC97nnaxyydr4SSLSFUodlDFo1muN9eyrmcvnVKNO88iKSkTnfseTK3u08nknKLic9maqdPph3aIOicYTzLM8EoQFx56p8kr6A0MX+qc74KTaCyOLykBNWY9r/lEj1r3Nds7SIAafZR7qpz3CUeXJnCfe3SKywuYF/pK9FCYqLDhG1HclkaW2pTQ+sj5oSh27fcTtB32A3dn7FliNK4EiaoTpjJ194yXshxXDrIjb2k5Y9K0=;25:IilUsPDgZGiwOWQQ/CM69PoUdFAVVVGe55n2s0Fh2ECl0mn+Tmi/L4Cj0BQvhfOW0JIQmUrOgS93FeAd4aaWCQD/AkNtv80SOW9lkpZeHs3Ih2tIxjwtZy++AsPKNI8TnXYIv1jhYwRhwggJZyWVaUkyGorwiBDD86NEo9YC4PBkoA5GoWuEe02o0M6DSWRiOXZWC9on9P85gLPR8SPDeZNGHV5neQ5H6nwXqtFVS+URqbgtlz7W2vqV8PSZuTPHZiEj947m+lD43GHJ5eTfBD3aey5eJJ4jQ03ViZnRtoq/6UcD1Ds9QEIKf6Xq90eciZAi8nqyTETL1uksJKj+qx3Qq5n6sb7fG8wRyVU3wvFQqqyiltvz9qAtae01fdCwrwmeFNKmTgdErYaR8R42DhhEeO9iBCshoxGJGcF1QkZtfXHLHgHuZbeL6aDTWIIil3u9opfocsEux/eFsBFez7uyuEkt3GtwbXAFRh9FXRc= X-Microsoft-Exchange-Diagnostics: 1;AM4PR0501MB2754;31:/E4iwAHL1e+VN81X3uEAJF445+S8p7akJlTqyynNs7W9XVuta5QuXOK2HvRJ/KD1xoEKruojYXfTNBdT09NlpKUFHtPg6uLm3Z71KUeUOm7Y/vUb5jzpcP3ipA0ukcMMxJAfsmzxvr+Yf+jO0V9G6pko56YPn5izTWTuP/R6omOQf0aliy59Bi1ZaKFN1ExX8qlJZ7eatXhOsGp0DFNtBtjoLcpVfLRQpABnh1WZI1NTuk8CLl50igmTeO+tC63g;20:2CYu8urdE8yr1YaYHURFyiKpBk9i1N7ZsY/j4tubIquoC9lRy4OuXpvXoe2Q0Ylo6DMQs3sGk3YLLjVMXOkO3TFQoIzw+ncoCUtnYtV51y7AZEMFcI9ZkotmhysmxY5m5kFWat4iT8UUEJMWh47oe7tSBHKM2fHSL7/KxClPJZCbhvi34nnIxbyC9DB1Gm1oY3MSVIjWLDw8LezyzSN0AK4gBR8wVTSwdy9FKDOfMacWzDeVA1YTxcuQfp+naVCbqTpAxDkB7VzZgj/p8RC8eWj54cIVaH9X8SSizDRa1ndsljv8a0hoc2eWcDWsCPM5+jEmogSD2iEn7peSN1n3mdqM0x1I7My62KWbFd1glC6quruPzEfBl8Xo928YwR5JjtiGodCw7nlyCU41WEi/ix+WD4iLjSDMadTQnMpgae+1v5bqmVCSNumViZs/SLf6jDIF7cbGbnaQ5xuhF819SahMrrZJR4NC6eCktpa3Nq1CApuL/j2ssPP/3jqWw5hE X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(171992500451332); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(93006095)(93001095)(10201501046)(3002001)(100000703101)(100105400095)(6055026)(6041248)(20161123562025)(20161123558100)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(20161123564025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:AM4PR0501MB2754;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:AM4PR0501MB2754; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtBTTRQUjA1MDFNQjI3NTQ7NDpjbDNhYjVLS0g4bG9RRGZPZUJaK1ZLTVJP?= =?utf-8?B?Q2xmVyswTUNuL1JDYXhxMkRYbzIvZGNGQWs1a0YzemhRK211b0JxVitsN3hk?= =?utf-8?B?K3hrSW8zYURpN0liWkNLVGxBMFdJdGErNEpmaUhtMnJXNis5Y1o0SGJTNE5y?= =?utf-8?B?cEUxUTNwUVZ1UXZ6bm5jVlJyMkpycW5CUE9rbVR5MU83RU5DeXBkam5QNXp3?= =?utf-8?B?WUVDSzhBMnlzZ3BFeGM0d3YvWmh2Q0lsc2c0TGgyVDBaR3Z0NlBERGZLcHhk?= =?utf-8?B?SHU0Vk5YakhhVEZrdzBLaVI5Y2pHazgzdkwwSU84RHVlS3RDVDVpaitUUGpV?= =?utf-8?B?K3o2SWlKOEtpV1pUWGQ0WmVtVkF2SFpQbk1UKy91RUZsQkJwYUl1dUp0VUxO?= =?utf-8?B?MjRsSEFTWlRZMUxBRkU2VXk1LzRtZ0xHaUFCRWZLT0dWNlRHbmVsM3dXQ1BK?= =?utf-8?B?dlRZb1crUitCVWVUZVNlNjhBUFhvRElGRnZXa2xVVUtGSFJ5ZTdVS2ZkbU0y?= =?utf-8?B?TEFHL0M5VVFaVmtTWlMycTFyWFRIelVKQk5hZmMwV01EQVlaejZINitnaEUz?= =?utf-8?B?MW4yN0ZhcWprWFAxc1ROYUp6S3lzM1RrajVjM3l1ZmUrK2hSckUvK3hUMXMx?= =?utf-8?B?bzhUK3JDdjlYOUlUZmlNZ0dCN2U1TW9hejZOWmZ3UlpvdlNPMzNTVkozbUtM?= =?utf-8?B?cnZkNHZMeVByTTd3VEl4ZjNWbWVXNStkbm5aSGxvQzk3Lzg0czlFR0l2Mlho?= =?utf-8?B?eEtjMHkzUGNPVjlkMExMakllcEZmQ29BQlA0d3piWmsyeU01WDhEWVpjRDNj?= =?utf-8?B?UmdyNTl2Z2NjbEh6WVc2bFZhSHRWVU1KVHFjLzNQYTBsSEZGR0g1VVR3N2h3?= =?utf-8?B?OW5DK2FlZWo1ZXRaUFRxLzVNRmpXN3lhbkhkWWg1N29GTVdPdXppLzB6SDVx?= =?utf-8?B?aHFiVitsQVo5QUZPWXo1aFN0OVRwYkR0amVROVZwamlxUlNMelNPVXE3Ky8x?= =?utf-8?B?aCtVYkJDRWtrazhvallPekhzVkc0cTlzaUFoOWlCSWh0VU1yekZFWExvTld4?= =?utf-8?B?TkFlRWxZRVNLUFB1TGpCQW00MWk3QWdEbXRDbW84WmlmQUlyVUU2Sk1uZ1Rs?= =?utf-8?B?T0tYeVlrRU9YeHA2VjlEVmFtYVZsU2oya1k2YWtSY29WZFNGWkxmN2NaSGd4?= =?utf-8?B?cXJFc1VGZ1NkTmtpMWQzU0VVYUttV2dqbmpBZ2ZlRko1U0dXR1J2LzZhb2dQ?= =?utf-8?B?aFNXOGZHYkRqOXdONC9qTHNzbFFYUGpCN3g5VHZUdEtzTjFsSFBzVlMzdnhR?= =?utf-8?B?ckhuU0xrWmJmNFViSkVEY1RESmNxekNieVY0TVZqSzZIRDdwbFVESEEvUTAz?= =?utf-8?B?c3JHdlAzUFd4aDhnQWpLdVdWSHFjTWhXd3plaDdMTk9aaWhpZlVBb1dzSyt3?= =?utf-8?B?WlQvbHk5SldFWkFOdlVMUVFwUWJWR0VkVW0weWJ6ellSVHl3QUtsUk95dzlS?= =?utf-8?B?VUp5RU5wb2ZyVnI4c0I3U1hzbElENUZHSFdrSlQ3ZnI1TVYveExRZk92bHZM?= =?utf-8?B?OVFYaEFFalpJUVhMRVBUL1FKWXVsRjViNWMrUDFqN1JxcWFvaUxDSzF4R0RI?= =?utf-8?Q?ahi8Da74fLZ45yUMcR3Hi?= X-Forefront-PRVS: 03333C607F X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6049001)(6009001)(39840400002)(39450400003)(39400400002)(39410400002)(39860400002)(39850400002)(24454002)(377454003)(3846002)(4326008)(478600001)(6666003)(2950100002)(23676002)(36756003)(64126003)(81166006)(86362001)(76176999)(189998001)(230700001)(8676002)(33646002)(31686004)(305945005)(7416002)(42186005)(54356999)(7736002)(53546009)(65806001)(65956001)(66066001)(65826007)(5660300001)(47776003)(53936002)(50986999)(6486002)(31696002)(229853002)(54906002)(2906002)(6246003)(77096006)(25786009)(38730400002)(3260700006)(6306002)(966005)(18886065003);DIR:OUT;SFP:1101;SCL:1;SRVR:AM4PR0501MB2754;H:[10.15.7.183];FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtBTTRQUjA1MDFNQjI3NTQ7MjM6TjlCa1hXaCtVa05tNFZVSVM2SVRab1lQ?= =?utf-8?B?WXFuTm9SQlIwZXZhREZ2MWo0b2p4N3NZVEZ2NVk2Q0QyZjhxcHMzVzdndW9P?= =?utf-8?B?c1FPZGNrUzlUNzFpRmlXSk82dWN6L3dzODZocVI2Z0tBeGZEd0tReGtoYnJE?= =?utf-8?B?eVVXYkdPbGc3d2Y3TzZmR2hRcEhmMjdXYTc2ZjVsZEcrTis0WXh1TlZIU0ha?= =?utf-8?B?THQ5Q0xmR2NwV1FkRlhqYVhHZEcwS3k0NVhieEFJSXozV3IyV0JzZG5TWXE3?= =?utf-8?B?UWRmbGtSUlNQWXhFbzFiUXhGN2pMRno1TElFbm90MDJKWlF5Mlp5cmdiYmxT?= =?utf-8?B?SG56dU5vWEVZcXRleFlGZFJscVB6NGpqNk1mTHFRbXhkVVlzSG5VUzNGdnBI?= =?utf-8?B?SUhnNmxET2xSTnh0ZnVKSUpPYjFmcnJXZEpoSWp0RUIxejdwQmtRS1NvVXU5?= =?utf-8?B?WmxHdWhqYXRIa2gyOGlrMXJQK3JFMURVNDczSFN1R01ROGNIUDM1dTEwWEp3?= =?utf-8?B?K0Fheml1Qnp0azcvYkp0RGRTM0JVUjJqRjRMRWZRVGkwQmM1WEF6UnNkL3hu?= =?utf-8?B?YlZFZ3lNNXBVUWNYWWJDMDd1ODZCTm5KMU0wMXNzSUpQbnpaQnJabDRLcGNL?= =?utf-8?B?NVNFNzRlRmczaHMwK2ltSUZyTDYvRzVuZGlZWXpiZUZ1VUcvRWxSVHE2Wm9t?= =?utf-8?B?cXNiWEZQY3F1TlpnVDQvcUFVWmEweXFWMEFYaDlvTXIydTJIN0RGaHRRQ0VN?= =?utf-8?B?WFdPQW94aDlOM3docU1lVGhhNW5zQW9pT2hrUDVWdFRVdWJqaDYvS3VPM2NG?= =?utf-8?B?Z1ErVjEvdUdGeFZuSEdSaTRBTXMvR2lsQ3VxL2NlOVg4KzViQUpaZS8rSkt1?= =?utf-8?B?MXNHWmk2dDN0SCs0UVdkVmJ6cFdlWDY0UzNSd3lZdGRrWWtGRlArWEhQUnE3?= =?utf-8?B?aHBDNXpCRCsrNmhxOG4wQ29FMVY3SnZNcXNtOCtYUDJiSW96ZVZIU2g3azJJ?= =?utf-8?B?Skw3WlU2VTNLUmhFMEl1c1ludlpUempnTm9qeTZmRW9zdDNQVDRYY2RxaHYz?= =?utf-8?B?Vm9jWkZGQUlIcXNMbk52Sy9GZmVpNTJ6ektYMUY5Mlo0MlpOZzRhYk8yUHM0?= =?utf-8?B?VGJRZi9NVE5ZWFpqUU9JU3ozTk5hZVAzb2cvcVVVMVpkMll1UG4rRkliZnAz?= =?utf-8?B?U1R4Qjl2dStZSk5wc2lkWW8rUi9DUlI5bjdHd1l3WU9pRUpNWW00NFFOQzJI?= =?utf-8?B?VUxtZklBRHF5UDNPdkdMNkV1VGtMcldremRxaUt4b3NHR3hxVmY0NjRMamNv?= =?utf-8?B?S3lralh5c0hBT2FSUThIMTJwLzJSMXFTR0hGSk1BSkl6S0U2UllLcEc3dzRt?= =?utf-8?B?bDUvNWNxNzZvL1diOE53Q3lLUEkwVE1kNVlyUXdGOUJBVjhuTmxCMithNEMr?= =?utf-8?B?NVA3WDJ4MHRvQmQ2QUtHeGxlTkQ3dnhHYUpXNWRjblIrVXB4SWNtWlpzWEM3?= =?utf-8?B?WVdnK0xYdDlWdkI2OVNETmtFUTFhR0ZPMTQvMDlSSFF0U2pLMnQ5T1RMamcr?= =?utf-8?B?NUc2N3g0Sm0raEZsa3dmU2RGZUpqM3ZmZkkvRjRKcEo1ZW5PMkRocFlJS1E5?= =?utf-8?B?aFh4bXlJWmxnQjZQcTR0WE1hSVNZQTdLUklTVGZUSGlieW0vNng3ajRSVXlq?= =?utf-8?B?ZEtRLytQbnZvR1pYOHo3eXdSM1ZUdkpaczNhUUJ6VjRDYmprUDhEWmY0Q2tD?= =?utf-8?B?VTl3MkVtckJkMDhvVklBTU8zT3RmRGczTnl6Y2NMbW43dTJSOE8yRDhEdkJR?= =?utf-8?Q?ho7Jy26zAQ3fmd/?= X-Microsoft-Exchange-Diagnostics: 1;AM4PR0501MB2754;6:dH0GmfAVDDtx2QF5Q0h0mSW8k5Or80strVB2PrMXXnQAhKRaoA5fP6RJJ5UZywBpHluuo17pQ0OktmR7LoYHwmsakW9xxS1cto//C/G3DXoeqAM84Ww1CphJQgNGn3LQkrLX0hxXxvTgy7WteIwP/FONnKTpG5SuYHxvReambeEwXpeVhbaQ+TAv5HH7+vZrk56xLhYYVIcHtbvAhiiXU2Jz9JHdsYParkrdPBFg/qcu4fjxjBe4iQQCL2nAxEiBOXyTKNhBAaBRK2PhvqVAvQpJXm8ZaGBBgqiUnmYJycjkAxj5xBJP18NwG1c0jDohEmv27wQ+c7kRnyUwN4/coPVeuL0ZNzRmW0Pycfy0bC2Vfqy7aKN8xs1+0ZfkfXawjYDvWsgLjDO+yfcsZFTjP58jJsTe6NmQGe1IMLFHpneSoXVr4UrjDIpRhZrfrrAxSLPyg9XqgKIi2UnTac2LWnePRPqVQGD5vykMC5A+FmdBXYVkAirKtWCr0FWPGkbSS9YhIYFt7FvEVZffUPz4evhsilGoEBVTjXS94p2BTLU= X-Microsoft-Exchange-Diagnostics: 1;AM4PR0501MB2754;5:lp0pdCEcLilIAZ6xibfVsVyRRlmRVAvfkDufq6CNVCRSovxUwu17E9Q/iqjgKSqiSZhasZdGO7wzyGEjb30RggY0PGu84TKNlf8NClAHMFst4BV1KmcDyJ0W/Gju9mOWxbTah6TRYoGU1z+l/WQTubhamyySnIReq6RRpKWjP324EwuHGGmhvTj1jMSAddvbjelZwRUeLWjUiRUvZgTLh2i+yBHfmbszC3O7IVJr2OL4WQlE1ckunK8gjNIhmWTSa7SGfFCieTwd2Ve/FXw8LBUkhRpKZVGtgnBJCJd2WAKRqEgW6uykVnxLOQQLopqdCHI61bECO5K3s0b1mQ7nHUV4aTWvBE5gYUam6N81PoXeo2/RIae2EbNLZfVq6msReBYikCJWUjBDaQUJbxSp4yVgsOXiEl+OuLw0U78pMiFBBFTQAvNPSBeDPeg0qANIssj3CJeNa3BOf1/ZugINL/ZleY7BfWLMn5Z1oFBDQlMWDEmFS6bHZyggdkwXsx9q;24:2GsuloyEKUJw/4qDoqDnkWxkqVEmgDhAyj1Wfjr1r0nAdPFBDnzJ+xojFfaiaDcua2VD9IJqy1M34Lyj7IUBUL3AmeRV0SnR8bhbvztzDEQ= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;AM4PR0501MB2754;7:ztKXb0eWzmssGXDG4MLBJmcxn6t7CaRjch5Q/9hy81X7fXXz0bbsG6Wlf8vcPFAetd7MFon2Lzg0mf5lUWYUqpmMGsURvfIqVg3K16riXLjFAkZ1vqm3AZL35SjExyJGP8ReXuXgxsBepd5yC8uanGJqFDYNdYPNPec3pMBuZ6wkSsmwOaojCPpW2L512d4lAwy0N6merdZv+dj/aixAXTyL35bXm0EBhjC2ZgCEurYPGq4b4OMA7LziDfIXFRWIGdZ4hw3u0jC2usCfywi9+p3CtEmPWLPfGR1i98RgHrrihDIZIe+XyYXIJmucn+xRlrTxIc7tFPdTIr6Tjhr9RQ== X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jun 2017 14:03:48.7616 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR0501MB2754 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 958 Lines: 23 On 6/9/2017 7:05 AM, Peter Zijlstra wrote: > Subject: atomic: Fix atomic_set_release() for 'funny' architectures > > Those architectures that have a special atomic_set implementation also > need a special atomic_set_release(), because for the very same reason > WRITE_ONCE() is broken for them, smp_store_release() is too. > > The vast majority is architectures that have spinlock hash based atomic > implementation except hexagon which seems to have a hardware 'feature'. > > The spinlock based atomics should be SC, that is, none of them appear to > place extra barriers in atomic_cmpxchg() or any of the other SC atomic > primitives and therefore seem to rely on their spinlock implementation > being SC (I did not fully validate all that). > > Therefore, the normal atomic_set() is SC and can be used at > atomic_set_release(). Acked-by: Chris Metcalf [for tile] -- Chris Metcalf, Mellanox Technologies http://www.mellanox.com