From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754060AbcDVOZX (ORCPT ); Fri, 22 Apr 2016 10:25:23 -0400 Received: from mail-bl2on0129.outbound.protection.outlook.com ([65.55.169.129]:50638 "EHLO na01-bl2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752850AbcDVOZU (ORCPT ); Fri, 22 Apr 2016 10:25:20 -0400 Authentication-Results: infradead.org; dkim=none (message not signed) header.d=none;infradead.org; dmarc=none action=none header.from=hpe.com; Message-ID: <571A3444.3090703@hpe.com> Date: Fri, 22 Apr 2016 10:25:08 -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: Peter Zijlstra CC: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , Subject: Re: [RFC][PATCH 31/31] locking,qrwlock: Employ atomic_fetch_add_acquire() References: <20160422090413.393652501@infradead.org> <20160422093925.045007784@infradead.org> In-Reply-To: <20160422093925.045007784@infradead.org> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [72.71.243.150] X-ClientProxiedBy: SN1PR0501CA0042.namprd05.prod.outlook.com (10.163.126.180) To CS1PR84MB0309.NAMPRD84.PROD.OUTLOOK.COM (10.162.189.158) X-MS-Office365-Filtering-Correlation-Id: 5e008fc3-2ead-4a34-4799-08d36ab9ed40 X-Microsoft-Exchange-Diagnostics: 1;CS1PR84MB0309;2:AORYkvxeI2LB16YGH7NhEayxt9jbdvRYoHDkkZ30YT7o5WnBG7Cvsk8YQ3/dSNBPWVPwBzDycOmEge9hRWomhorMEDxZuWcLFEAsm4gfK5G9UmITBd3eMmjs55boLhq5iKWvwl2byQo+Qk8miLgRif5BUuE5bv26NXg4V5YooLJMMxb+0j9QACNk1Zx+NgEL;3:D5+bWxSrolLsxSmv4xzi7JVPeH2EwvhKrTjFH3cM1QcKwNO3h+xnMxOrQcao+jiWVnsomwt1KolQzENw1PG3KiSns3G58HJLbJSkCEbZhav02s9YiONxaLV57Ee6Ak78;25:950DH7ji+cOIHEKkJYokXhZG7JivOksCHyR4aB7AJhu7b+V0dmZd1uaVr/xl5X6YzFZbQzBalhUIzvBTJAfk4BmVbMTS+KZRbw8G1pnIMbPTVv56ILcSsoNmKfOTng+X8ROwad2JgvDBgVTk1ZjlgiPph6zcqPMLf0gLIGfUl+H/zAxhMwXXmgbe/PaUQe5E77vpm2Rko8bgdpeavdig4XtKU9i7vDEkKT2uUoQQKyeHlxWpIHUCZICyRyEssyO4LzwRkHXZCwZubtMikPidn7ilkfDtonn2HHYEDisfwf2+fgVHBWKp6j8bzv+ZqjcqMBtz+rcUUzCjee4L64uAXQ== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CS1PR84MB0309; X-Microsoft-Exchange-Diagnostics: 1;CS1PR84MB0309;20:VZoj9YGa33+PdK/NvyzhdlVRgEuzAnI/L0AAQTODyjuj9MpQtk6U/ymETfAkWlIe7ta8g8/yI5GcurAFdYRfar3La3Hi38/rkSv7DexieJR2HVB6aTWElclkapWcgttjj4DPYfXFM0YJDtEmZNf53v29YgIIQDQ6IjaGo6RFbdCEfULuuNfKRSEswGPzxAd5uJojBz2Ov+qfCLLsH/eciKY7nGyAWcn4PwoPruoBud/UHkdfR1ay82UP2m/nVSZzugADlEussR1fTM8q5FsVUW3wzCpLeucdehCT3xgLpr5yDh9dGi7YvFQCD1mGpJRVc984qnbpY2aM58wYfQi7Sg==;4:EKPMHFECIxhQH3K1ARNI1JTuxaMF6CjaD92qYeSZ1HUUPYoHPsUMnzXNn2F42KY/Zr2vec7mFvURQqSiBeKbh64hDf78Pt6/iLqv5XtzeV9Skb/GmMaDSxEj/QJct/VfAAbVF9RMTvKBfqQ58p+ML8N3IZPujgVQAPeGRs91cxeEMzBSkKWjt7r4085YPYKBfr07lv2uyv0Im162Y6IB/5GfDigQp06tTZKFUqwUeblFpqJEVXdgyuDA6I8Dbruokt71AU3Hlh1ZqM+ZcYkalqU5IDam4wDCNb2AX6lbD22Aqafzq6HHEw/Xlj94Akz1OgUfHfAYQnJOpaf3LyZgx5kCdd9H8Hp13YzaXiO7ZVg4gyVxchmRYaxUJsygIwkxWbETHvJfUBbBKI19b+AX99sMt7DhHW6oAnngZ3C6PNw= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(9101521026)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(6055026);SRVR:CS1PR84MB0309;BCL:0;PCL:0;RULEID:;SRVR:CS1PR84MB0309; X-Forefront-PRVS: 0920602B08 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6049001)(6009001)(24454002)(377454003)(19580405001)(59896002)(81166005)(76176999)(87266999)(23676002)(19580395003)(117156001)(54356999)(230700001)(36756003)(4326007)(2906002)(83506001)(42186005)(33656002)(80316001)(86362001)(50986999)(65816999)(2950100001)(66066001)(1096002)(77096005)(65806001)(189998001)(110136002)(47776003)(4001350100001)(92566002)(65956001)(586003)(5004730100002)(50466002)(3846002)(6116002)(5008740100001)(64126003)(142933001);DIR:OUT;SFP:1102;SCL:1;SRVR:CS1PR84MB0309;H:[192.168.142.161];FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtDUzFQUjg0TUIwMzA5OzIzOkdaQW15UkxsVlk5ellCTVBlemtCT3NTZFJ4?= =?utf-8?B?ZmRhZG5uRTJyNkd2UE5GZ2duYU9sWG45UHFiNm1FTTltSGJ2MXpxa2gwRXdx?= =?utf-8?B?aHRNSEtWUi9laWR3bGlkdGFWZ0JDN2gwcjZzV1dqejRNanpYaVgwWWNIM05S?= =?utf-8?B?dzUvVjZRallIbS9pUWFlMS94TjhzaGJ6WHV2SzdRWTBBUG9yL1I4cXNVVDZ4?= =?utf-8?B?alBNb1VQajlubHdLMFEyU244NTNrZWw4VlpLanFmMGdCZHQyMXd6WVRaZmFn?= =?utf-8?B?RFluNFpkS3pVcTh5dTRVSm5NWDRhM3E5MkdIS1BIQTVEdVZjWnhKenI3aFIw?= =?utf-8?B?Y3VPUjBFYlJOL1VkOEtQOEJSN01XTDRGQjZjZkZLdGNSZXhLWHpvM1diSytW?= =?utf-8?B?cGQrOWFTRDNBNFB4V2xPcWRZKzZUL0sxYTIwdUFYdU5lWGx2VHdSNjUraUp3?= =?utf-8?B?dUFZR1RTalJ0cTFaaHpxOHpENktIaDdtTGNEckEzQWIvZE9EWGlBdVJMTWZ2?= =?utf-8?B?RVFtbGljQUdjdTFyK0RkYVVBUEFvYkxka3BLVjFOZkNRSnpRaW5QQy9RM1VZ?= =?utf-8?B?U3I0QUs0R2duOG5pbkt0b1FaTGtWMjMxLzFwdm5Pc25rTWs2Rnd5N1g1Vm04?= =?utf-8?B?QmxQc0piWHBaRllkK1JHU2U3OEluZnlGaTZieEpBeUJJYm13Y2dqVjBHTXNt?= =?utf-8?B?bUlWYXhJUU1vSlNDT0Y0dTJYOXJMVjh4OG9BdWQ2a2FOV3JtL3ZxOHNpS3BR?= =?utf-8?B?Mi8ySHZBVFB1dmJ5am8zZ0hFL0RkdHZJeTljNG4vWWdlM1hTQ1YvU25qRkE3?= =?utf-8?B?WXJOK2xmQ3JqMkdYa2JTN25oekxMdU1iVGQ2OXE4LzE1NjJBUTJvUEZ4dXVx?= =?utf-8?B?NUlGQ2duQnh1d1VxbmtRNlp4RXM4SUtzS1Q5VGU1ZWtVbFliZHMzcmdYSytk?= =?utf-8?B?TGhwdU1rdjF2dTY2MEZ0eWxWYWtTWWNmOVU5ay9KY0NtUWpJL0wrOVIxejRB?= =?utf-8?B?ajF3enluVWZyWlcxRy91cE5hRUFmcytQc2U0WnRFdlZpai9lbXJWSWxWYVZ0?= =?utf-8?B?Y3BMQVNOQ3V4Z0JzR095VTNQNENVcllSRlVQR3hGdExqeU44WG55RWQ0TytK?= =?utf-8?B?MHhNMUtqS0VBSWRJOUtrNkhoS2hrOTJWQ3Q0ZzFxUUJBd2dvOWYwbjQ4Q0NG?= =?utf-8?B?UjhBVmdxWHpUN3AzMGtDODl2VjF2N09wUXFYVExWdmJaZGcwR0FEMVhFMzRV?= =?utf-8?B?Y0JydGRBdFM5SGhmbzg3d3NvMG9XcVNoUDU3K0pyTk1oUGJvSGVobkFmMFpm?= =?utf-8?B?bnlzbk9kV0pGcW1jTURXNDNCUnI0U1NiM1ZuNm9XS2lodUVpTDBORWh0TkR2?= =?utf-8?B?T1FKdTJwV1RVUWVlZHpRRjd5K05EaXZUZDRSa1RMR2VNcXc2Qy85L2x6bjJL?= =?utf-8?B?SDE3Q3hrbU9lT0Y0SFJjcjgzbHp5ZEh2RWt6Q1hMeDVlNVZQTDVteWlMKzh0?= =?utf-8?Q?QzPK8JiNuJWQsibJgLszTkjNhSoQmjALDHkVt5JGGGFxkv?= X-Microsoft-Exchange-Diagnostics: 1;CS1PR84MB0309;5:vKu1VBLTrdD0amLErRLlGDiXtSVUYnumI4+/0VcyWJB45QWwbOSiFlKUamlvBwH+awqIWnEr2NNdwAqbD7fkmUqA+mW0+jgzO4rNu9RcfX980kusN80jNz56TeACGNRj6DGg2Jqnjfw2dN4c42BbEO4yT89AUdbh0PWuXfizoYyoNH7Vva5aPOIVilMUsctG;24:1cb66J8MAnGX7r//DUoOvED6+UKGJJUEG7Hhts9/JZm4nb1RLodBk52sW/UTNbP/tDT3Y40+ZvzrV+2wJRLvCNty0A6beWBL7IICf8Td08Q=;7:mzyziMkoKtEGYtcsl/AxO+8fHKoKPyG4Lp/kBPZZzhxMIo9o8OoPA2/PpHyr1s8xv4XTnVqckaOOR6wf4tGben1fdX0UvcUUic7op4ir1pnbNCUp9pbcnyBUBLOHa8Ds5MXLmUizZkykokTNXYWJi194OuBzOO7IQePceejOU1NdB32o1CzefMUdoQeZgZzMnmu1VMsESFwAfjZjhYjc3DkGkTJCFwSJlNi4ErYohMM= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: hpe.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Apr 2016 14:25:14.1121 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CS1PR84MB0309 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 04/22/2016 05:04 AM, Peter Zijlstra wrote: > The only reason for the current code is to make GCC emit only the > "LOCK XADD" instruction on x86 (and not do a pointless extra ADD on > the result), do so nicer. > > Signed-off-by: Peter Zijlstra (Intel) > --- > kernel/locking/qrwlock.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > --- a/kernel/locking/qrwlock.c > +++ b/kernel/locking/qrwlock.c > @@ -93,7 +93,7 @@ void queued_read_lock_slowpath(struct qr > * that accesses can't leak upwards out of our subsequent critical > * section in the case that the lock is currently held for write. > */ > - cnts = atomic_add_return_acquire(_QR_BIAS,&lock->cnts) - _QR_BIAS; > + cnts = atomic_fetch_add_acquire(_QR_BIAS,&lock->cnts); > rspin_until_writer_unlock(lock, cnts); > > /* > > Thanks for taking out this weirdness in the code. Acked-by: Waiman Long