From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 102393 invoked by alias); 22 Mar 2017 12:56:19 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Received: (qmail 102364 invoked by uid 89); 22 Mar 2017 12:56:18 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.2 spammy=acquire X-HELO: EUR01-VE1-obe.outbound.protection.outlook.com Authentication-Results: arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=none action=none header.from=arm.com; Message-ID: <58D2746A.90405@arm.com> Date: Wed, 22 Mar 2017 12:56:00 -0000 From: Szabolcs Nagy User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.8.0 MIME-Version: 1.0 To: Stefan Liebler , CC: Subject: Re: [PATCH 1/2] Optimize generic spinlock code and use C11 like atomic macros. References: <1481905917-15654-1-git-send-email-stli@linux.vnet.ibm.com> <5857CF10.1060100@arm.com> <628f6311-239c-5eea-572c-c2acae6fcbee@linux.vnet.ibm.com> <1487017743.16322.80.camel@redhat.com> <60a34645-17e4-6693-1343-03c55b0c47ad@linux.vnet.ibm.com> <1487437038.20203.68.camel@redhat.com> <25ad863b-6f20-bfb7-95e6-3b04a2b3eee8@linux.vnet.ibm.com> <1487598702.20203.138.camel@redhat.com> <9c3fc2b3-57b6-b160-3f97-5ce3be05f4c0@linux.vnet.ibm.com> In-Reply-To: <9c3fc2b3-57b6-b160-3f97-5ce3be05f4c0@linux.vnet.ibm.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-ClientProxiedBy: VI1P193CA0017.EURP193.PROD.OUTLOOK.COM (10.175.177.155) To DB6PR0802MB2488.eurprd08.prod.outlook.com (10.172.251.23) X-MS-Office365-Filtering-Correlation-Id: 5881f0bf-7dae-435a-fabc-08d47122d2b7 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(48565401081);SRVR:DB6PR0802MB2488; X-Microsoft-Exchange-Diagnostics: 1;DB6PR0802MB2488;3:VEx0NeHr96pNbUDsBt2Xvq7KZfHmNFev48EAhUpnZ8QBRzSehK6hOfYCquMfnjuy50I5MEnvpxqIJ6SolPVQsKIZnuxNp452MO5a8CrLuKMkNIM9taqRXmwCQ1cq4OGea5l2zrFzyf3w/spn52FSH5SX/mQ1aYVJS5aHJJkGKwtxyK+cndFLdk0gPPOzsULJSw6h4Vd7qvq+sdivnR4pRBhzlO9qDC6dKH3EicBkLq+4hDJ/KMCJzAQgCFwoVSGbdZFnJLUKZE+xlAF38p7qc7XoYMtjYFWKho3r9q8PvKM=;25:M1mhi6ouw3pog1VjV9YfrLL2QbIL6b7ixNG7RwLneXInkgL9udAcIJxhgliSxYrgnviPldAU7oMEVro+JW+LuuV+udY2vvw9Myizbtm0yZv0g3FvezEWzgCKk47cdK38JJJMOf9O/euFf5aB2cBNBdF6luBTMDRUyqIeKAby5u9Z33FOsfl+u6+OA0kdwF3lPltVgJSoaEBVNwx7xhl2ajA/BWfo43k8LNh1BlOk88Ya8OQ1cOeV44PSCewL9xE37/HxVpEWTuS986AgZExgHGulV9/V8jXZqg/+PAA9Ycg4eTXMClgTjO+gxMNmqraMAd5hanZKGNkW1vw7DXxDhLRBxrQNeNnbspDYPr02weL+x25sswN5cAOxTFqalO/8VT46/Ehn+kvXcgb9fNc+tLwUGZ49eZ3gIHy2rsBkTOinW9CI6cTLNLtAMiGQzJjH7FPmaRk0IyOo5jjUwhkwqQ== X-Microsoft-Exchange-Diagnostics: 1;DB6PR0802MB2488;31:LBEz0oZgUjOE8CsJnlOgO9eotF8BwBia3bEVMl+OH9k8vJgumKCVqG2zDK+oiAivytwGEFcl11eJDCwG5s7i4lSEyx9MGkZRE/M7nwVLl7YzwADH3raXtkOR703oxMeDz5Jw3KRV0CP6kEdXqIA+/qOlg3+xFv3LD8IpAXsb88x2yrEt9ArDjh72W/OSBy34pUcQ+Ih2CFrmtQY8cJ5Oxm65qIiGSE8EQ7UTHIL47pZvcRwiB2IbrO+MuNeM3poD;20:BO2ZqBQDvMFnSn68mLZtr3tBJk45t2KzD3u77uGr8EXCG0bL7HmpIMlFOFKqmFih2rUVmCasM7k0fYyKuRZ0b2D2BlSuEKa4+gGP7G9UmRyqiO+V1vKZGOd9EFzI7BS0zLECL+OFrnSt6aJbYOtXOHJk57nmsTNUyZxNjEUwBzQ= NoDisclaimer: True X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(6055026)(6041248)(20161123560025)(20161123564025)(20161123555025)(20161123558025)(20161123562025)(6072148);SRVR:DB6PR0802MB2488;BCL:0;PCL:0;RULEID:;SRVR:DB6PR0802MB2488; X-Microsoft-Exchange-Diagnostics: 1;DB6PR0802MB2488;4:iDjrPfamy9+gjcKYV4UgRoS4im5tZjtuB3YUz2x6O6aE7hvaY6y0snYGD9YdOfLWQvj2YWd3rui8jGN0s7FyR41dM+pU88QVMJVTGTtwlsXbvBChzoQnHPhq5NHkGMqnkuLvqEbDQAuGBrL/7TYDEx53DTZT8Iymq5qOLCQ95fud3nz7vMa8z2ieYtyr59P7CAMSmjBtK2kyZIRul8Mzqe4c2LFlOwwz/g/bohgATiUY1zhtGa64Z3896Z916QcNaDlsMmlrey83ngxMTNLNoucQJArBuH8LMjmsrdw2Q/warxg4efCfKEdxn3KLJYGVySNb9qWPvLEuYdtOd5DZRz12A8CCyyzmU7xUQysgaRFnu8UwAvPz6KPpQvubSqUaUBwKz4ruDn4uZs50geqLco6gwLjffgoHV01hKzlGsZGTIWIwoPMgeghzLMVxV0nH0/b/FBt3OKbMWavmVap8l4RPHeDD7VbhKEhSY4B9PNz7bnaUaxbO1PVoVlCx3irCyxvtSepxXh8rxRGOqMbOVRIAYE0jOEoxuImA+4GPjcxnkK2Xsc4VyCv9iytVxYSszHry2V4WIanV30+emkdb8yN97V5jYwQ22g6PmxhUs0OoA+On2pXpCgVyu8zdWtDJ X-Forefront-PRVS: 02543CD7CD X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6049001)(6009001)(39410400002)(39860400002)(39840400002)(39850400002)(39450400003)(377454003)(24454002)(2950100002)(229853002)(47776003)(7736002)(65806001)(230700001)(5890100001)(33656002)(2906002)(65956001)(66066001)(305945005)(4001350100001)(6246003)(53546009)(189998001)(50466002)(3846002)(8676002)(77096006)(54356999)(36756003)(38730400002)(6116002)(81166006)(83506001)(65816999)(6486002)(93886004)(50986999)(90366009)(4326008)(86362001)(42186005)(53936002)(23676002)(5660300001)(25786009)(64126003)(76176999);DIR:OUT;SFP:1101;SCL:1;SRVR:DB6PR0802MB2488;H:[10.2.206.69];FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtEQjZQUjA4MDJNQjI0ODg7MjM6cmZFeTNBem1QSzJLdXpDaktqUHBCOWg1?= =?utf-8?B?TEpsUTdCNk9zVWMzamtrd0hnb2pHWm1ZSXlqY1NkaVRES0ovVnZIYmlJS1Nl?= =?utf-8?B?V1lkcW5xbkdBM0diQUFVb1VVSmNhRllRNEEzZlFxYVNvbzBRZnN1RWZaM0J5?= =?utf-8?B?TjBwRDNDcGcvWHNoeU1nRVdKQnRFQjVqbXRkOTRhc3pFaG43ZUc4ZE9JMzRx?= =?utf-8?B?OTZvVjE1TjQ4dFdiU1p0VlYxZmdxeVl2WUFyckhqNG1LbWRDMVJYd1NlWlNB?= =?utf-8?B?M1VRZmxkRkJ3RmREK3pkN0lFTEdiN01Lb0pVbzBpYUhrRUowZW9vbHM4OGNl?= =?utf-8?B?S21VSXZ3cG43anZtMnRvaStzcDBqRnZPaTNvYll4dkNmZDlYWUx2RE10OU8x?= =?utf-8?B?QnlrWmFmaVBNS1ZCaWNXcHllYk5CR0FIUkovVkhXbFZvY1YwN2hTUmcxVjAv?= =?utf-8?B?Sk13NStiTUJ2SlFpUENoZnJlZTU3bUJ2SVYxT2pPampLRm13T2VESG1kMngy?= =?utf-8?B?L3V2VVlvS2NYNFp3M1NObTQ1RE1CbmFsNmZvNzcxK0pmMnp3clIwTnF5STZx?= =?utf-8?B?M3FCWnIwUTQzTlpGNGN1dmYvV1MzNjUycTBvUVExRXNjeTNaQlVMNGZldVlv?= =?utf-8?B?N2t2bkZpeXJYM0EwUk0waUJ1OFJuMS91ajFhS0ZaY0pZYlN3RERiM25vSlFa?= =?utf-8?B?a1ExVmJUeDhyVTJGWFlBbldZdTV0TmlmSlJSc0JxL0Zqemd2RkJETlRkZ0tR?= =?utf-8?B?THVCVnpsK2I5cjRJTDl2M0U5SGdFY2NOeFVXWTMzSm9Ia0lobHh0REpDelkr?= =?utf-8?B?OGRsdWVDUExSeVVCeWhWSlV2MUdMN2xmL281WEVMOVFZWWJURkxqWEdSa0Zn?= =?utf-8?B?U3B3dzE5eFFvMjVBRjNxUVVXL3hWYzNCZXQvckFrNktjRHlHb3hpMEFUc29B?= =?utf-8?B?K0p2UnRSWUIyc2w3MWJ6ekVmamNPZWFVOWdBMGZPRC9OVHo4V2ZIaWVDZUJv?= =?utf-8?B?Z2h2YWxJRVdhbW1nSTQzWDdSVmg4UEp6MlpmMWNCdVQwRUFheXgxSEI1dXdY?= =?utf-8?B?VDJsZjJ6VmVyY2ZoVjFLRXBSUkJzeWdQdkdtUHlKZVRsNUo3VHY4NzNlY1pR?= =?utf-8?B?SmlGdWdZTTFHWUs0Q2Y5MUdEK2U1Y3hUcGxqRW1KQmVKNVM2TFdYU0ZqTFE5?= =?utf-8?B?UFZLMmRMUnFJTW42aFdwWGhaU2RQZXo3Tyt4UVJBZWl5eGlVdm5LSjV6ZXd0?= =?utf-8?B?eENiTWJYWDQ0MUM1ekplTTBiUklWK29HcnVoVHZaNGRNK3Y3UE5Bd2loSzM4?= =?utf-8?B?S1l6K2ZVMjBCTFFPTURqUStMNFZ3ZTFGbGlLbVMvTG1FczFFUGRBNnJGYlZt?= =?utf-8?B?TS8ySy9HRkx3ZU1TLzNneTNtN0I4dlJsaTJjT3MxNTVlOW9zdFFrT2FxQmtM?= =?utf-8?B?WmJlN0FFM2ppSzBGcXl3NzVkb0dMdEZnQXpWK0I5VUZXS1FNVkpTYzVwUng4?= =?utf-8?B?cU9ZVUN4NlpPeHdLdERBbVR6MjhEN3VwUUhqaGVlNGswbGFBQklrbnI3ODVh?= =?utf-8?B?MjRnUkxTWm0zNjFvUkExSE10K0xmZGdkeUlCR1FIWU9YTVpRSmI0aFNzeWhZ?= =?utf-8?B?RkY4S2g3WmlHVE8zMGd0Y0cwVGJ3Ky9Yem5wTVFDZXhyUWdDK0VvQmg1QkNN?= =?utf-8?Q?CG9zFGIcTbJIPbmaaWaM=3D?= X-Microsoft-Exchange-Diagnostics: 1;DB6PR0802MB2488;6:ZoV7u9HXgvesyeW87lNpAMhex3KOYR504aB1g8XrJdfvF4s2sdNJV63LTlO+1hNcz6V+6x8A24dkqY7yv1ErdKdr+OOumFG4rK9j2ywH80PfheOw/tkFVwf/sZh4dsB5ewgclRj43TzlevxqxuW31YBwQO/o6VQNJzVJdYfmJV2jdGAc3lfQAiybFUX8DvudzteXeCxloxBVHDASJ5Mdrp0MPTkM6iR1WU2HNFVQpHSXXnJnt/ivQfjYygNHQFcWUoYvYZgJw5Y97Y+pq9m7OKwF0gkC4TfnU7uRtao6pklGLPxvXXfW2ZXYC644HSnr09TgXPoM2dIe5uiIL5RtNcgFFY6gNJF8en7rVBurN97V4y1bd54P8j/SH1CbNf1zBcwpzzuYhaLzbClMe1cyqBOmgSQYM0djtXQ8n3WdjQU=;5:3bvjdUqPDz94K/OUSoqE8rCHfyePKd4NVXp/X0G83NWGWgMPDqmSPuLtNnbvo+8iAJne/FuZKMEvZv17P4kK8aw5HKZqMC2iZL6qyi2ffFeGmYeWX12gWvwkjj9iN/CV1Zwd536ZIpwWE7PZXB9JZA==;24:1b/SoMNWSyjR7wgLEk/9VGCrQQLiS+ws8YO1YCjpMzQm+TEoFDd59tePaCWbgJ8G4wOOlSp7nQ4a3nU2AZm3ObknXqpwP1EbxqfR8R5h+4A= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DB6PR0802MB2488;7:Or0El5a/UiQud/1eJJ4DaRYOjfo6sLBASWshcYuUyZgcrB6jSFzn2pnUHmQhkjNeQv/W/KHQAFUlb6CIkSKSEXExwikboM2GJAptAc3TDG08/Ls5UMElah8yIFnHf6jEK9ayE9vuIK54cqbd/lE8X3UwuOjlycZ+KPeIcJTybu1Yt7qOm1Pave2IlmEWKO2T3YWx3vwUA79WAL0dNWjyAtIOAKZBxj7lU3OI71ujupWbZpy5z4SAhKai50c+ko9NOJ2pBfTAO03knHNd2iVyXByhXsOva/8n9+shQJYhEtWnxu3WL8ZWbOraQGd2pIIwHPlLKH+USzowPp05osL/GQ== X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Mar 2017 12:56:13.8977 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0802MB2488 X-SW-Source: 2017-03/txt/msg00505.txt.bz2 On 21/03/17 15:43, Stefan Liebler wrote: > On 03/14/2017 04:55 PM, Stefan Liebler wrote: >> Okay. I've attached an updated patch. It is now using case 2). >> This choice applies to pthread_spin_trylock.c and the first attempt to >> acquire the lock in pthread_spin_lock.c. >> Therefore I've introduced ATOMIC_EXCHANGE_USES_CAS for all architectures >> in atomic-machine.h files. There is a check in include/atomic.h which >> ensures that it is defined to either 0 or 1. Can you please review the >> setting of 0 or 1? >> >> Bye Stefan > Ping > the aarch64 changes look ok to me (but this is something that ideally would be benchmarked on real hw with interesting workload and i haven't done that because it is non-trivial) on a trivial benchmark it seems to be a bit better than the current code. the performance of the unconteded case can be improved slightly by reverting the unlock change (the release store is stronger than the barrier was, conceptually there is a barrier before and after an armv8 release store to prevent an independent load-acquire to get reordered with it in either direction) power consumption of a contended spin lock on armv8 can be improved using a send-event/wait-event mechanism, but then the atomic_spin_nop needs to be in a loop with an ll/sc pair not with a relaxed load. (i guess we can introduce a target specific spinlock if this turns out to be relevant) (git apply complained about an extra newline at the end of atomic.h)