From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751803AbcEUEBO (ORCPT ); Sat, 21 May 2016 00:01:14 -0400 Received: from mail-bl2on0148.outbound.protection.outlook.com ([65.55.169.148]:52257 "EHLO na01-bl2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750699AbcEUEBN (ORCPT ); Sat, 21 May 2016 00:01:13 -0400 Authentication-Results: stgolabs.net; dkim=none (message not signed) header.d=none;stgolabs.net; dmarc=none action=none header.from=hpe.com; Message-ID: <573FDD7C.8080102@hpe.com> Date: Sat, 21 May 2016 00:01:00 -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: Davidlohr Bueso CC: Peter Zijlstra , , , , , , Subject: Re: sem_lock() vs qspinlocks References: <20160520053926.GC31084@linux-uzut.site> <20160520074946.GA3193@twins.programming.kicks-ass.net> <20160520150049.GB7086@linux-uzut.site> <573F77EF.3020409@hpe.com> <20160520205222.GI3193@twins.programming.kicks-ass.net> <20160521005921.GB28231@linux-uzut.site> In-Reply-To: <20160521005921.GB28231@linux-uzut.site> Content-Type: text/plain; charset="ISO-8859-1"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [72.71.243.228] X-ClientProxiedBy: BY2PR05CA036.namprd05.prod.outlook.com (10.141.250.26) To CS1PR84MB0312.NAMPRD84.PROD.OUTLOOK.COM (10.162.190.30) X-MS-Office365-Filtering-Correlation-Id: 84ea0fb0-a19b-4abc-bfee-08d3812c8b13 X-Microsoft-Exchange-Diagnostics: 1;CS1PR84MB0312;2:Q2QU4RnJvtQMgtVqCPsP4Gq1XMfICuNJumv+OXG50UlZsmHdzzyAGK1QudDsbxtJbS+amZWJMX50dLQ3hAiQreSZkvRb1lNWntJmjY3uRTHczRLmqXknSAgEsGiaimF44sHG5OOXwgG5JbkFKPUwcjwfOHoZo0m1R1KLDc4hlnnY7YMkoFAgSp+gN3bqMZ8b;3:zT8+eHNNSO5VyawSodzy2nHTj59h175BerzbmCfek/mWN25UgA9ORuMXmqN1ojtUJpkMJQhI5gu2PMwET2fLj9b8K145diNdHc877Jiqv0Ocqclcrp9znf1Ta6QhRsHr;25:VPGfiaQJbUG0GAO9l5rfRUMOOAcccQq6z1uYBpuPJ7rrTA068RzFQaLk6EXiD3YcYz0k+EYMFOwdV3YHPDrkRnpG5QqzSr++GWfilusCoAJ0E7KONOJHTp0jHstK5MDDz5nS+z3qjt7P00HahmcdsHrPC7LbS/hLUwgeDnop4w+tqJJdUyWUbR0qnR+dUgfY4DaRJ8QVZqNbBDH1td8EtI9m1ulSGCU+2EvyHMQiDs95dDYZCneLOyfYHGlGwyWpzkYX2hc2zckXBpe3ai8LXRj6jdkwweVl4Xmpf+ZBAiKloRLAIviR0RJw5IG+ewqqRfZAzUB0a47StRqHZmEQV/+hDICHnA4LMxCqZgdRRSOG6kmB/+/HCBMQL9kXlXT+yOy16rn2Q1zjfFjPYR6s16WL42ScZ7H9PJK9DUBHt1w= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CS1PR84MB0312; X-Microsoft-Exchange-Diagnostics: 1;CS1PR84MB0312;20:Qs+j1EeH4XYlaX0RZ/c0g6NUgKGMiW4IuukPsT3VaYh1Gdl0DiAhL2FQttZYO3GSi6GmlDrmPX4/rUGNl11WnBSdDgpc7m3A/SMZ07dA+NLjwmMUJIReC6BUd2O4R7gAqKbZZzdeJsqZSha7xVMb50epT1U7jZcUG33Egsgfx8CJQWelT9xjAg7hVlBN5HvFup3NkSnqArXPRpIG582rwgdEhbTZxN+G3GangKYsxACY4grQQ3IP5lJhvwWcy51RRxKQnOWh9SQ6zmQ1eKOPVGxUATmZTkuIRrQcxoO9xK9Wy7uiSOYc+wAehYGrZaLXdAwATLl57FboAN3qtEtUCg==;4:Ivv7EF9kUszzb3VJXfJsydoUArPXuyf2M5NW6Lu1fTLAGDMKq4TxC5jTtZg9ASb90Q09Ic6Ie7T4kz1B9PXeS6EB0TLngJgMCPnhU/BSzbu3mkcbHKbxr6Mh0QrFSRCfhQRRlSPfCM0z2nksa9ymK6xT2vhZqe5MFV3ETUbNQds1iuKgZBvn0EfjY+Uh74EMDqdEeqkSPOZ0rLkmSNE9kuND//Zlk9f+GrL3JsR2DB5ywlwcDaotkbwR0h3swHu5lmahJpj9UTZtMsP0D7X8k6RzgHIKq5gaYIzAQMjojUzHC1DP4LFv4yuFnlTma+kOoKTfH4vnKBIOJduv832GpEmST3NsyQWVbzNYl+jLtkxeGEtWJlKmMoGCNwzQI9DF X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046);SRVR:CS1PR84MB0312;BCL:0;PCL:0;RULEID:;SRVR:CS1PR84MB0312; X-Forefront-PRVS: 09497C15EB X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(6049001)(24454002)(377454003)(4326007)(83506001)(5008740100001)(2906002)(36756003)(50986999)(65816999)(2950100001)(117156001)(76176999)(54356999)(77096005)(3846002)(586003)(6116002)(4001350100001)(189998001)(50466002)(23756003)(92566002)(64126003)(93886004)(5004730100002)(81166006)(110136002)(65806001)(8676002)(66066001)(65956001)(47776003)(230700001)(42186005)(33656002)(86362001);DIR:OUT;SFP:1102;SCL:1;SRVR:CS1PR84MB0312;H:[192.168.142.135];FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?iso-8859-1?Q?1;CS1PR84MB0312;23:0ObWqP+jOUnO6yaT2g5ybZZgytvtdOduJJQsCrU?= =?iso-8859-1?Q?tqWj0e0IRenXeY6lGNIMYSRHOBOJwnyJS5UcBTQR6ktcfRSq+RVxquXwTh?= =?iso-8859-1?Q?RbZZVGU1uSTb7knpnlaxFxJLedzkVWWMIlD7jGTz7/CmHUudP5Fl9MH9q3?= =?iso-8859-1?Q?jhXGnuTvb6t2F2Rc3CAeYfkffyjaI/MkfwPyu5Q+fTxRw7SjuSujTWo4K0?= =?iso-8859-1?Q?6k57fo5wT9laSKEGjdd2698nktOnRdLjlScx84D534VAueox1UIQvFMZBY?= =?iso-8859-1?Q?+rDCuvO6qTGhoFy+Vs37AdI/ayCbZHoMVF+DDCae29Dztg8GyEOBUbL0QM?= =?iso-8859-1?Q?LNu+f0g06tU9ThU+BvOBATqTF8MDT+BO+yJjud/12dHVsQrB8IlQ+s6j+G?= =?iso-8859-1?Q?6WN0EYCsNJAMHtXqtDqTvXj6EJQ8nEkMrpD9j1oLBitTL36MQSdYWtrB3V?= =?iso-8859-1?Q?f0uhJtwH70zZyDxxRaeAQ91IIjk5PsXZ2yodIOZaYlo5JqIE9FYv8lDo3w?= =?iso-8859-1?Q?sQYT7YlK3lh4FK20T4/pgKWVIUoWn1gk/S3z7SVag+Q+paIhD4U/7StAQw?= =?iso-8859-1?Q?ndr3bFU/KyE34FWFvFOrz1bq5Xr11AWwmgw4KfhA+2aAS8fNysjjqNe1SQ?= =?iso-8859-1?Q?Fiz1vWheBpo6UeMiQMdzb6Jn3VVEEfvAeftcr9hJpY8YCHLZvRdoDgD1mg?= =?iso-8859-1?Q?42H079nD1lugoXtndMUPf09dKjMTK/ZDu3KeRQ0iTXvr7rEfaHKsfUBpg3?= =?iso-8859-1?Q?rBpa5m8Zx703WYJoYsyJZsZuoQidwFotBFRpOScFQ9SJzYlRyzWYVLj12E?= =?iso-8859-1?Q?evoGVXUjutMeS9KK16pY4K2sF49sXGhLH9wv0e2VVJLvMPOh+M4W9bFGLO?= =?iso-8859-1?Q?E+Synb3yRaxm4ix4f9t1WJGDOTe+JRNnV2qRMyk284lGCyH0w/ldpPePUc?= =?iso-8859-1?Q?QbZtc4MJc6cBcWhvaqpcn6oePqw5onGejSZUaxue6+we8uiLJFptCG5YHi?= =?iso-8859-1?Q?S8wiEw0NX/RdIvoqp/PSqSqUx2co/PMwYwXSdKZxkEZNGFZ2uEsH3jL2sc?= =?iso-8859-1?Q?CHs4IVG4u5vjtFuko2HxQ=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;CS1PR84MB0312;5:LkzJQbhffj7CWS1wcKPMUpnPKcj08ckQ0kQCodz2JWOKhaOOLMCME0B/doJzf+smDxlJXyK+yyuWG5Qk2RsFOcl0LS3W4Z07yyMKIP8ZhvaN/IHqjtGbECKYyU3oEnKAIXCvjVyXNH1+hTodkbtTxQ==;24:i4jyNEGI4YZ5ej9CYBA9HL/NMRHYcT386H/itiAc5L8aNjPiDlfEMsBd675e8OLWqurJSxq7SAm38BJtHs1T4q87eDcjGW9E5g+Ugtdppck=;7:htJuvqyO5KPQUXhsc4WaAa2Vxa4N3W4ZUcTlysPsG3GBIGguCsqA9QS5fQuAO8KCBtgjFMIFBdh2IV4mLLFL1lI9UB0oCyO+MnwDU8/ApdsNTBlT77ovT+BvPZCwoEDnw+oG6PtES6L+L7HoRmrZP5Zw52mx0igvJx5pl90iULFXmMijS2rX3duGR5UfXI9g SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: hpe.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2016 04:01:08.7805 (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 05/20/2016 08:59 PM, Davidlohr Bueso wrote: > On Fri, 20 May 2016, Peter Zijlstra wrote: > >> On Fri, May 20, 2016 at 04:47:43PM -0400, Waiman Long wrote: >> >>> >Similarly, and I know you hate it, but afaict, then semantically >>> >queued_spin_is_contended() ought to be: >>> > >>> >- return atomic_read(&lock->val) & ~_Q_LOCKED_MASK; >>> >+ return atomic_read(&lock->val); >>> > >> >>> Looking for contended lock, you need to consider the lock waiters >>> also. So >>> looking at the whole word is right. >> >> No, you _only_ need to look at the lock waiters. > > Is there anyway to do this in a single atomic_read? My thought is that > otherwise > we could further expand the race window of when the lock is and isn't > contended (as returned to by the user). Ie avoiding crap like: > > atomic_read(&lock->val) && atomic_read(&lock->val) != _Q_LOCKED_VAL > > In any case, falsely returning for the 'locked, uncontended' case, vs > completely > ignoring waiters is probably the lesser evil :). > > Thanks, > Davidlohr The existing code is doing that, but I would argue that including the locked, but uncontended case isn't a bad idea. Cheers, Longman