Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757439AbcJGVqB (ORCPT ); Fri, 7 Oct 2016 17:46:01 -0400 Received: from mail-cys01nam02on0124.outbound.protection.outlook.com ([104.47.37.124]:24656 "EHLO NAM02-CY1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750958AbcJGVpx (ORCPT ); Fri, 7 Oct 2016 17:45:53 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=waiman.long@hpe.com; Message-ID: <57F81779.4050101@hpe.com> Date: Fri, 7 Oct 2016 17:45:29 -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: Dave Chinner CC: Davidlohr Bueso , Peter Zijlstra , Ingo Molnar , , , , , , , , Jason Low , Jonathan Corbet , Scott J Norton , Douglas Hatch Subject: Re: [RFC PATCH-tip v4 02/10] locking/rwsem: Stop active read lock ASAP References: <1471554672-38662-1-git-send-email-Waiman.Long@hpe.com> <1471554672-38662-3-git-send-email-Waiman.Long@hpe.com> <20161006181718.GA14967@linux-80c1.suse> <20161006214751.GU27872@dastard> In-Reply-To: <20161006214751.GU27872@dastard> Content-Type: text/plain; charset="ISO-8859-1"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [72.71.243.206] X-ClientProxiedBy: BN6PR20CA0012.namprd20.prod.outlook.com (10.173.158.150) To TU4PR84MB0318.NAMPRD84.PROD.OUTLOOK.COM (10.162.186.28) X-MS-Office365-Filtering-Correlation-Id: f3c7d02c-5f46-464e-1c0d-08d3eefb4ea1 X-Microsoft-Exchange-Diagnostics: 1;TU4PR84MB0318;2:BVL3djUEb4pXfoYPk4sP5mE+r5RM0lYoSakrOyRbHFGbGoAWzShiRSLRD2dod35pb6lnVcfyGLBkRWL/H2elBNNJeFD1e9tbF0CJ1fYLXjvMdieuVVpq5QDSCqkBv9DqAxEYOrdoLdtHmX8crVoBPyehmlzPYmsqvI1Y1PF814zKhoiD+f/+pk49tBkrVmceo5eVE2OBAlwarX6dNyMixA==;3:PtPsxAdXpe+jHrPYFDTxCKWQvscZGlEbqC2sOW33WTYMvczTK72ZKG6VvaJQgz4nPtiv6BV9109oMqEjFywUjddjOlrlbp5sw7Rnly0Urqog4LYu2f1hzndsSszsPwxsca1QacujEonZ/rPkiNpB+A== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:TU4PR84MB0318; X-Microsoft-Exchange-Diagnostics: 1;TU4PR84MB0318;25:Jn5fUELvQ7d3/IFQMNlK4wL/B3bwec5U9MshmkLZdZnCLemKB0CizOtXhjCfI6Zs6A253rI5EnyRWQMJbQZyefbIWZhvuXtYSoYJCe+e6jgtH4GiQ8dVFTfSsdLu0RdicsEtC7yBOtDgn21Hajb02WJrqf5i8XeASpZmfD/lUpZVtWk51aFGAL0obFzfpZEGfh/b1Mif+R6dQZWjNHcLGNDDts/r/91NVyxyXMfC40Sz18aW3ZSA3MiYicFh2ZQ3rpz+9eZm4yUG35Lv7+MVhSSUSeAvpaV3d7I7YGvILkrTR2U5k+IrP+HpqXUzKIr4LaIr1XMUm/FGf8w8TSkZR3pF0nZUokZxzPKUNAfLyznUfjMLgW2Wn2CEF3mo1R47AXCy9BKni3oCpTIlNnHtxtfzafImgkuD0gC71lr/59AXgoL/7ajkuWO5sC+bO5QgKs14swqtObpu/uc/9P6zDBKhm74bDVffirW8N7Wue+v9KTpZRiCenOWRoLNzpf0SeglGxPEz8oOvkIew3DH4X9s04BZVAfBgUlkFNzML/SYynR7lGu02Yr+trDlzPlm/ofRkynQLQSmUAj5ScXrHCeJ2aM/umSlnGWF1Js460ysJi0SkG2t0AmyRhYWskxM9PgK3fpA9VMzEwvv3GosggaPLNFErGFA/5aVkBvob5FOxysX9622OdMCcb92YHH+5XIhB6PjPVZkx85CVvwSYS3F5bqOJ6YZYcrWVHgGVuwE= X-Microsoft-Exchange-Diagnostics: 1;TU4PR84MB0318;31:KmGgZyVkRnnukisnViLWD1uGloThYQCl7+CqIvMxyM1SmrHsJSvlLU6WvsQ1CvsAfQL96qXAQqHDHu4bHYB9Ml4Mh5FqHztuNufKaKrehadXmwIG1A+kGdWDqjWbMfmWT3GCuMhRbXzbJps7+aNmRnnf3Rr8yfQNuarGOnUFa+wcmnzA4gEr+idlQ9vCRhzdrHsQL6FJwnGxgZvcatAAKREHSJ8j7AvI7t6k0jLy0yPFcpjqmN/cH7Tb8dW7O2byseXm1o9w9ycq1nmFUjjhnQ==;20:LfB3fDLjLC8b2SKZ/whneDHLUiCfe70cHICLder1LNWzfflL1nyaGP0l3qKiAu8h0zDIUI5YMghLSB0JJuLSSNN7FtnZS5pUWRsw89w2gM+mucA+w8AEJXDKo+mHGUd0wGKF2JQjd7CH643PhZ/5jSkREbxbPH+edsdGBqtU4fLVv8Z1iumQzTjy4IIeU8jkXmrHC4qqbGoQ3VqAoe9mvkT6wi4uPBC1S6GaZyL8sNGTvD5L+CqATQuTIgdqS05GWgWdvPWBgWp1Op6+/PlfxnBdQenT/IN2EkkOus71iOTotHiLyP+jGzcv73YVIxyOWIV8zu3q48ChQ3vNE4UtjcpykNRnw9tvn/sNcfVTeenwx5aaJZp0SidNMDKyhbIpMePCkMcVFKtQfMSy6TPOhulGTV27lJje4osX3wD57MeE75alCyr8ZAVYMwshwDZC/W0EimobAhfQ4gcaNANhhXJU3wbRzrpDkw/oo745ByGgduCa/el3/AXGUqBckD/7 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040176)(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001)(6055026);SRVR:TU4PR84MB0318;BCL:0;PCL:0;RULEID:;SRVR:TU4PR84MB0318; X-Microsoft-Exchange-Diagnostics: 1;TU4PR84MB0318;4:o+FmSwAmdkpbliynEUvRW5Nl3ksobQm/DpYxnT5emzp6qiKB2QueEy/I1VU4hhvOLBEtf6a6UgIf3EJRv1QtJ36mJHh6++lukr41kvx0dSoEUn/24u/nVR5tov9vEQNR3NO7xAXoyH9u0Fq+mocq26FvL3dM2cxFpfQvV6xN6kgWjTmPhD0VudIKTOEeQG4muUj4v5vCbQ/N4vlZb/5ZW4Z7WrhOvAGqqnNlO5g0cQ7Bnl8IGm1QlFtbhG8mlPICId5cbgEpm7TBZYoKffj8U0HsetNs6P5EqRstzOI7U8LO4+2YpdAVjV8G6D2OEO/Tnm1tjg4wHoPJxREEqRDEY9PswqK74EkkrsnJTzrSrbMKwEocfn4s/Ao2BaZd+DbUSjotHaLxPMiqYqEoOHZyFV7FZFnOscGycOdfHXsCBaU= X-Forefront-PRVS: 0088C92887 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6049001)(6009001)(7916002)(189002)(199003)(51914003)(377454003)(24454002)(7736002)(6916009)(50986999)(8666005)(6666003)(7416002)(54356999)(65816999)(76176999)(110136003)(5660300001)(305945005)(87266999)(36756003)(7846002)(3846002)(189998001)(230700001)(97736004)(586003)(2950100002)(101416001)(6116002)(92566002)(77096005)(4001350100001)(59896002)(2906002)(33656002)(68736007)(86362001)(105586002)(47776003)(4326007)(83506001)(65956001)(42186005)(23756003)(64126003)(66066001)(50466002)(80316001)(93886004)(8676002)(81166006)(65806001)(81156014)(117156001)(106356001)(7059030);DIR:OUT;SFP:1102;SCL:1;SRVR:TU4PR84MB0318;H:[192.168.142.144];FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?iso-8859-1?Q?1;TU4PR84MB0318;23:9HhMCpze5RtqCYAQnrnHkbORq51BJdAnpPV6Cw4?= =?iso-8859-1?Q?bp9g/ytjxeg/O2pkw0NRlothdgozjsI/SSgyz4vo0011jcQKagg5mfQ24I?= =?iso-8859-1?Q?VWMpNwETiprfZ88OOH1RwdGOCiDSvmlU7e9T19iCjIyDZvZYLTz6VfhuNz?= =?iso-8859-1?Q?5oEZJTHgEyCG8Zx9MfLLZgKeSUbPUeVRy2JXhjoRLPFnyOSh62cP5KLCXI?= =?iso-8859-1?Q?sTPRFVOMe4OzOdLWbNzCiHsyj/83rZsVaEH1V3OFj2diWVrcakb6fvLe/h?= =?iso-8859-1?Q?mv3S5haHNPLcu3LSXDk6W8/s7569FvIGVQ+VDqGrkjwbZN32tvSIyyLrfM?= =?iso-8859-1?Q?8qDCXbQWeGj2dBuBOHZ2SJ+Z2yRLSYLGEEmJpvG4qXivjgrfjrmdUt5A7X?= =?iso-8859-1?Q?cpnl6A69LRfMh1WBMWlQPGJKauB2VlDBVMxGKJEGf6ytFzKsYgB7aL53ld?= =?iso-8859-1?Q?bGknabqn59Cgevzp38uhpI9QkTt8oV+ieoGyfruhrPlAotXPxrZ7tElRzn?= =?iso-8859-1?Q?9W5PB+phCYZ/bV0bsIdH3zt29pc2wiM6NM4s/x8DYoLHolQY5+ZS5Xqfjg?= =?iso-8859-1?Q?XgCj3iwMmBa+eabpFyqzqCD2zs9GQznMGP++GvoJVGXVCJzsg1AXVykWCw?= =?iso-8859-1?Q?Zt1uH+qw5IND6gXrL7behJr6/RsZp+96x0vJMauQHBGzNRd1gMCOKmBZlm?= =?iso-8859-1?Q?qgW8J+ctFDcN3/dQylKs7nKZkPrj1WHPr0zVvxbMBMvrqqWaNGItts8+4q?= =?iso-8859-1?Q?p0Ckfrt5ebt4Ynempmf93AN0XPZvjzpAtiaTN0LBWjkMCm9qLo7+Q6m56k?= =?iso-8859-1?Q?b5B27n8B2ksrWjLuYCdnfNlKYZ3EJVpeYZThvZAZOmP+4tLlJ5ejkfe9LO?= =?iso-8859-1?Q?LAwkXzkm23P6a7/XEGnOy7nOZHRlTCozo+QD21P1V7gOlYR8cu2AyXnoCg?= =?iso-8859-1?Q?ibGOvFPVmbiF/kreBVw3rM0wBaeN6MfYdYKpj7A4cHLLK4l3xed3qM92TH?= =?iso-8859-1?Q?NPWlctUQeKRLEAniptYjdd20dkH9pHpTgqwUxQ0lZcnjvV4/UTOz01mCX7?= =?iso-8859-1?Q?cc05/2Q4fahQ2Sxms48smYqtyL0phZX13n8K6qC0HbDRihhkaJnJYFRL2p?= =?iso-8859-1?Q?EIAj1C3yrSGlM811kokvUAzf39+vsWlSsxiul6COJGcfQZ8cXwV7dMJ5kA?= =?iso-8859-1?Q?yzSMBgPvYnhAtdG70FjWhfqVovjctGlAMY6QgPzqfWIoLBNLv9YHNdQKNt?= =?iso-8859-1?Q?1IiDeSndOno5TeDQbCP/L2Eb7tz2GaBGQ3R+kY04NDDZNht+oL5wjBo9Zd?= =?iso-8859-1?Q?dHjRJRCC80yA/uYGtjW0cB9mvDU8MHQ0rnwxpVsH4j5qLDx6Sv+SWof2n7?= =?iso-8859-1?Q?qdb7aezx2FfOE8FBVqs/zuBDRDc2CpiPRxY977M5sKyaVRNDvUYuQqHROE?= =?iso-8859-1?Q?IGhNBLLWqxr7j9CkOg5RY+OMQeC0HFopCaUxg/PI3olsSLa1kRQmPkqYQ?= =?iso-8859-1?Q?=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;TU4PR84MB0318;6:ZPtBwenyvI0K84GbL1UbevRKLqoKnqgMZf7G/HMJNnyoSQ4xmI+WkEgmL0NPhQuy2iVEskN6fgdSMMUDGGM3HvRIO3t31td0Uxap65fITcyq6er+DxynOFY7swcK9Iyxmq8h2tU++x4MJ+j/vWs0lvCCZxgQ+OGx/LxFWM4tj5qCXD6TE3OYsUtim7sprpJhv53emb/ttYLkft0txgILKzc65reYMT0+kOrUSGsCz7xSfmd/PtCPX36bTLPhKWupO23OUoryx1DzV/3d2Vg00K74MCBaLMEIpZ26CUzcWP0Xuv55iN6vfE/0kCcd+V7JZEzjyjvVoaR+7sa7gr2tlUQnmCx9+gbII0Vy+MUAPYg=;5:+N9AMpnRu4uXPovXBZGiDBBSYCbsT4xBp8vCYKXD2xoqQnynpUOOS6AThOUcC3ShO8A0TfswUenmlfCQM9xkDfyCrTGJuxEcASrSe47gHezpqyAnpvMqGEb1Rq/Y+Lhm5tmOpM/m/HSqWDaMmoaoyEqvkrYGI9LgSTjevqh9Ozc=;24:eWBSYNsm7pmRlSUPaa1qG/VvgWlQEo77jI1zLggPjxtN5WbTFkay1vXuqbTjtRxChgYU024QHuVnBAuuLUBbOY9vUw8Voy8qJWMQy6ItPAc= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;TU4PR84MB0318;7:BBxhK0RVcClUY0NAbuZ32dG72N4jx5glrrNFNONRMrHL3jGes6mNP+LY6TsrjsMZxeNgjpTboUORe1gURaoGHtqm1Ha9UZKMzVmkgSuxe+FsPK9nJmWKnJfz9qGclnHhx5XIi1fykIW6RXodrb9VU9QqY8Sgrmy7RUj281F6C5dM4N9Hq0JG5B+SNe/ihrFYkdS+Z2xW3IilTy2eDcBkaKw6Q4qHGSRwPTNtQk+/3ooDE1tIiVfGTNVEugN1Bj3w+9j7IdswvDxiEPCaUTMk5EnKSYbsAs0XnHAfIiz04OHiT7tMJwNFf9rpSrx6C0OP7pbLbdwsaJAp7jBInvNBQg== X-OriginatorOrg: hpe.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Oct 2016 21:45:43.3152 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: TU4PR84MB0318 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2259 Lines: 46 On 10/06/2016 05:47 PM, Dave Chinner wrote: > On Thu, Oct 06, 2016 at 11:17:18AM -0700, Davidlohr Bueso wrote: >> On Thu, 18 Aug 2016, Waiman Long wrote: >> >>> Currently, when down_read() fails, the active read locking isn't undone >>> until the rwsem_down_read_failed() function grabs the wait_lock. If the >>> wait_lock is contended, it may takes a while to get the lock. During >>> that period, writer lock stealing will be disabled because of the >>> active read lock. >>> >>> This patch will release the active read lock ASAP so that writer lock >>> stealing can happen sooner. The only downside is when the reader is >>> the first one in the wait queue as it has to issue another atomic >>> operation to update the count. >>> >>> On a 4-socket Haswell machine running on a 4.7-rc1 tip-based kernel, >>> the fio test with multithreaded randrw and randwrite tests on the >>> same file on a XFS partition on top of a NVDIMM with DAX were run, >>> the aggregated bandwidths before and after the patch were as follows: >>> >>> Test BW before patch BW after patch % change >>> ---- --------------- -------------- -------- >>> randrw 1210 MB/s 1352 MB/s +12% >>> randwrite 1622 MB/s 1710 MB/s +5.4% >> Yeah, this is really a bad workload to make decisions on locking >> heuristics imo - if I'm thinking of the same workload. Mainly because >> concurrent buffered io to the same file isn't very realistic and you >> end up pathologically pounding on i_rwsem (which used to be until >> recently i_mutex until Al's parallel lookup/readdir). Obviously write >> lock stealing wins in this case. > Except that it's DAX, and in 4.7-rc1 that used shared locking at the > XFS level and never took exclusive locks. > > *However*, the DAX IO path locking in XFS has changed in 4.9-rc1 to > match the buffered IO single writer POSIX semantics - the test is a > bad test based on the fact it exercised a path that is under heavy > development and so can't be used as a regression test across > multiple kernels. > > If you want to stress concurrent access to a single file, please > use direct IO, not DAX or buffered IO. Thanks for the update. I will change the test when I update this patch. Cheers, Longman