From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932881AbcFOTJE (ORCPT ); Wed, 15 Jun 2016 15:09:04 -0400 Received: from mail-bl2on0124.outbound.protection.outlook.com ([65.55.169.124]:53427 "EHLO na01-bl2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753055AbcFOTJA (ORCPT ); Wed, 15 Jun 2016 15:09:00 -0400 X-Greylist: delayed 86390 seconds by postgrey-1.27 at vger.kernel.org; Wed, 15 Jun 2016 15:08:59 EDT Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=waiman.long@hpe.com; Message-ID: <5761A7C0.6000709@hpe.com> Date: Wed, 15 Jun 2016 15:08:48 -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: Davidlohr Bueso , Ingo Molnar , , , , , , , 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> <20160615165659.GC2094@linux-80c1.suse> <20160615171250.GO30921@twins.programming.kicks-ass.net> In-Reply-To: <20160615171250.GO30921@twins.programming.kicks-ass.net> Content-Type: text/plain; charset="ISO-8859-1"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [71.168.64.62] X-ClientProxiedBy: CY1PR21CA0068.namprd21.prod.outlook.com (10.163.250.164) To TU4PR84MB0319.NAMPRD84.PROD.OUTLOOK.COM (10.162.186.29) X-MS-Office365-Filtering-Correlation-Id: f863f8e6-2a37-43cf-2fea-08d395507f03 X-Microsoft-Exchange-Diagnostics: 1;TU4PR84MB0319;2:2s6LEBJeXfvsAcx/Z5UDuR8n7oYb+zvjjGlKr2fbT9P//4UeyiTtVYCU9oKxvFJBniJ4P4lReKI/iWazXtgyhth/ftts50wRHxzhvBVi1/aNTmJci2L7FXzwPD19VmhZISgubDcu6EIMyVTyXIruv7zYEWdVgmu9JEsSwM32UUQJJAdYCx2bDXpoLfVEwC7J;3:C6z48x4a0GQ0ThSyXRpTyradM+sBLaRyXbclShWW1kLHoXQVQokdOkuev0Z7OL2QMfJbLByPmhQOLc+d4KQXJj8sn42EhW0XizK7FsPYmc9Ta05VIQdJOi4+kDomeqtf;25:uPsYy7GYcd9dCErUTAW0br2SxLEWnOXjuvEhQ05lVNq+BIN/jdj3mUdPKwuFEmy1RgHe+aUwZseCLJTHvcAgVkXYhb93X2CzfjWpS7027+9bjdncssxLqIym+vItcRbIytf05BDnhbXl8HqnaWiNTqRDzYsYee8E5op59xvnN5yNo1RIK9O74RsXzOGY08BapRQWWnXRNPwNEZO+vVzKJRBthpBbHfuf+KmAlJm0tR+lD0CLdg/Mm5XbUW23/jG2g7yJ1JKSb9+5N2Mx8PP1czLvfAKSqGX92NAeNzhcMprASv7jbdBvISrbIaOj4J+iavgunMWQcmMhSipDfnOzq9HU8OQx2KZ3Ru+8cGrbsN7295DA1JTJijdA3C0rSmFrUH5L5vzI5PE7acHe3A0kxvyNou0AWPgPEN1jFAuz8vw= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:TU4PR84MB0319; X-Microsoft-Exchange-Diagnostics: 1;TU4PR84MB0319;20:qhkAbkTwSFn9p4QXCMmHqaW+3lTTPhQrzg5ryIBHjPueVCI5X55DrWkej0TLhlhSYG2WKH08KXm7tOPQ2TzV7f6WzSACgVr5zDj6NG6kAY8vmSkmer51ANh2pf/GPHtrUvk/0esrC8AvgmJMonylY/RAcrjdyZ7BCBPyLdRjCsOazINzQOM+EYG4JMGyxicu2Ve4FNZdrEfrcSskIPnErKUvFi/+SSdngzXBe6xScoCcptM9hZ1k9PnjZytpFzMsKlqqf9zsDGKXrr/YSy7hqd2ZEega5pKRR2G2kX5LYWJkmCUd2xGHRL9kw7AqzOTWK77oyuXAcoe1H6wyjD+ctbu1ANsyTbbFSdAnXdvY0c4NIePgpNWiciAx2dRZG/JU7NXaId5xCLjvrlTM8IoPJkuFDDytyiuyWF2fFscZvc28uMxFAYqEiYry4iCewIammLVxfkBNBKBYnaSw6Heh99m4W3PZ2pBysZ7DiAcvNx/S+0VkBcaCaBxatK6mngVr;4:+s4+Rgyjq9pyNIM5huxJZRKYJrLO0aaG81NasZPRxIRe2MW9sCsLtOLkQ4On+FD0EZEuPu4fyBHsIu6chCL2dKFfgkDZ4+czYBmbBO6ocNDFStztEGTV1lOZS+pQcJKvftQlGLOvZHxOICl3DoilijDs1LYXEyncGzGIQhi/1DEusqWPZvU8qeEhkLqHTVNs8+mUh5SfO/b1qIpoTu5GGBcU/MOgkOFL2T5Io8QXSiurpZ6ib35w2u9vI+sx+7pAP0DAojX8z2mwBvLWZJLb9uqwUJ/sImmPemJ5vFeFU6LCv9lGCrWYymLl0gjjZ5CbrVFmDI7qoQUX90oZkyOitGklw9IfqsyyEWmqYGepU9Xf4AGyzsNbteYudiEbHKDR 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)(10201501046)(3002001);SRVR:TU4PR84MB0319;BCL:0;PCL:0;RULEID:;SRVR:TU4PR84MB0319; X-Forefront-PRVS: 09749A275C X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6049001)(6009001)(7916002)(377454003)(189002)(199003)(24454002)(51914003)(101416001)(2950100001)(50466002)(65816999)(6116002)(2906002)(8676002)(5004730100002)(81166006)(8666005)(4326007)(5008740100001)(97736004)(33656002)(23756003)(68736007)(3846002)(4001350100001)(81156014)(77096005)(80316001)(47776003)(230700001)(117156001)(59896002)(106356001)(87266999)(54356999)(76176999)(50986999)(83506001)(105586002)(189998001)(86362001)(65806001)(42186005)(586003)(93886004)(92566002)(65956001)(110136002)(64126003)(66066001)(36756003)(7059030);DIR:OUT;SFP:1102;SCL:1;SRVR:TU4PR84MB0319;H:[192.168.142.154];FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;CAT:NONE;LANG:en;CAT:NONE; X-Microsoft-Exchange-Diagnostics: =?iso-8859-1?Q?1;TU4PR84MB0319;23:rXBWw+aSbCqSognG7rfhI0xEaaq4iKXy9X18ofL?= =?iso-8859-1?Q?1LnnieGshPhOFyWKTNnHq+b3GEzK2zxy8YHLcU7QGHwBGs4kNIMJ462LyL?= =?iso-8859-1?Q?WvysjCum6oo4DjO0bKnhy5/wixNTw/YprKD0a3x62wPVzkVJVDyyXFFTY7?= =?iso-8859-1?Q?e6D1nOOgxy7blBTfIQnXUz7sHoY0Nrab8aM4hBwbvNFSJ6Lvw/fNsG8ePg?= =?iso-8859-1?Q?IcdLd40CZ/Rha8OZQZseejwbLUTW/geE5cYw8LLGWT6Ctag1HaQuloM0g4?= =?iso-8859-1?Q?q12bx/iniDJcFYQBNT3FMs+rR8NmFu1z/WT/OqnyO7/VYv9iHcxOcV0qIW?= =?iso-8859-1?Q?EVso7bjgf1bSTFuPs2UN27Jc2QdhQ76OnwkBeOwSpyJVw3ysjPI+8R3I9j?= =?iso-8859-1?Q?fQERi0SqE/k9VGh/UE79jUWStShd4As6ijn9mRxgrvGbSFttjolY86Wlvd?= =?iso-8859-1?Q?nzPeTSTvlTtilsc3UtqNiR47OgO1oQW4Fon1IKnzIfZxerfA9Tc83y/MF0?= =?iso-8859-1?Q?QNyO4JSbwCM0glxs+Xhmm02s4JBvpNvgH7AqqRv85j1SqTdaoIQd9BseWx?= =?iso-8859-1?Q?Ehnh+3/rM7/PhQ4OMoVB1url4npU/qGD1pBgJeqIpnHvxIALiPHiDNI3dm?= =?iso-8859-1?Q?ee742CbnewMbfZqimAAO0i/p39f7FO07CcTIufJfQZI47yWWZg5unvTJ2j?= =?iso-8859-1?Q?WF+0YckOSZKLn6aGlZa2A12PMGIYy1CbgQQbMC8c06aaED0aLZAs7L5CWM?= =?iso-8859-1?Q?JXgMyB1zfZyS/yYzz6DPdA48P1QL/up3gHVwyNxWqvhVIVaJWKRh/UjViZ?= =?iso-8859-1?Q?+ZbN1YxoHqfdpcYVaHdM2krZYfb/0D3Yu5jAN+K3DVdMj+FDqLpNn9psKB?= =?iso-8859-1?Q?2xibhcTaxQgA2UvwTfzr/q1vTG7qSlC9n/cku2rdG4r4sNfv6uMBxGzCJ4?= =?iso-8859-1?Q?nSfLbwThurSl/oVLYAy/w1J/v83bOQoV3ZSbdd3rAes/PEpszUM7Rmoq4r?= =?iso-8859-1?Q?DgBWin2JdwKHLEtw6vf8Klgop8q7srCGExjbkYHYgjYPAAXrWUc9JVD0bw?= =?iso-8859-1?Q?aOjQ70zraD3k9Rhw9TdpzrOusgpFt4GHPXs1A9XAxopeqoQQ/4At5UbX+p?= =?iso-8859-1?Q?DytVB3i2CXDjx8a6K+7eCerXkT+uOdGuloFMD7z7ByDclzp1AIguaBA1Xh?= =?iso-8859-1?Q?joIIM13Y2IrHeOCGClMFDQbINjHoMSb5qFaYv6gvQCoawZXLiwnGVpzDC8?= =?iso-8859-1?Q?aq7jOX6wMFX4fK1FAx2mkOROY0kXrk9H6NICBddr5XLeRgAZJQ8kctp0oH?= =?iso-8859-1?Q?TSUPY+r3mVOprxxY4e2sU6oH+njRZxYbWs91UWJNSbjr24ddANtts3QAWO?= =?iso-8859-1?Q?KX3maIZ5WVLw4xw0Lssci7d4tvz49?= X-Microsoft-Exchange-Diagnostics: 1;TU4PR84MB0319;6:Wja1FW08/lOC10dxuSfYtXZrPFqiwfhzYF0sGB0LMo6mywvWRsooNE7W+WEIJgHgdh6DMZuMF6wzB3xuhi096cwJl5KLSo+Bs6z319CmJO6irgiB92opPfMZTKCSDcs9nUD6TL19DW/YeIVd3/9100067VSxBAGCLP3zz9UdbfpE9SKk132aOTbza7S0R9pHPoXVSRVMRzivnjs02O2YgrlxHPDNskio1+LCkpFTZfNDzGDe3Zc4T/FJaJW6NmNw4eE6MvLl1vn8L+mX2qdv+3kcTPV+FZ/1eU2xvuIDdjY=;5:DBkguOma/6iSq6SK/av94efpa4mCNTkqnEHCyXVxYpUGXM93X5W7rXLEucoiajEPyo4xEWjcgIdpffLzv4Rq7IWhLYjSHuTIW2LCD1YQiZJY/DN2U7py8Lk/tiBMB7pmS7aFBq2dt5AKLGCZ3mVzBQ==;24:HjFpy9ankGx8lTxSxTgBzhseChZUHC0YulqlO1voS8tE2Z3MvQfAhHK3dDAfXCnS9wuahbW2fQUcR/HqfxLcPlwr9wWBzanrGaNJqBrf44o=;7:rkyUQLS0u6E1H0GByOgyKkRjrZWxfcn52A+jCjKhD6gPZccXu4gLrjgQOSZF9nUwmJylPadRvoHwa0G2dQ5Qqpurq3U9+qAdrXl/nR13ZCl3lCcHk1ZMdA1WO9U/96DH61zybo+ktO2Sh48LPZHFJaskYSIV7uYSbNew+p2YChUGgIkO/L/jUWG3Jak0L59qCX9Za8X7jIYTrKuzU6iEATpAsaBORisPfPLrS0/yRRE= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: hpe.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jun 2016 19:08:52.6538 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: TU4PR84MB0319 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 06/15/2016 01:12 PM, Peter Zijlstra wrote: > On Wed, Jun 15, 2016 at 09:56:59AM -0700, Davidlohr Bueso wrote: >> On Tue, 14 Jun 2016, Waiman Long wrote: >>> +++ b/kernel/locking/osq_lock.c >>> @@ -115,7 +115,7 @@ bool osq_lock(struct optimistic_spin_queue *lock) >>> * cmpxchg in an attempt to undo our queueing. >>> */ >>> >>> - while (!READ_ONCE(node->locked)) { >>> + while (!smp_load_acquire(&node->locked)) { >> Hmm this being a polling path, that barrier can get pretty expensive and >> last I checked it was unnecessary: > I think he'll go rely on it later on. > > In any case, its fairly simple to cure, just add > smp_acquire__after_ctrl_dep() at the end. If we bail because > need_resched() we don't need the acquire I think. Yes, I only need the acquire barrier when the locking is successful. Thanks for the suggestion. I will make the change accordingly. Cheers, Longman