From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1423395AbcBQRNK (ORCPT ); Wed, 17 Feb 2016 12:13:10 -0500 Received: from mail-bn1on0133.outbound.protection.outlook.com ([157.56.110.133]:7362 "EHLO na01-bn1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1030341AbcBQRNH (ORCPT ); Wed, 17 Feb 2016 12:13:07 -0500 X-Greylist: delayed 56020 seconds by postgrey-1.27 at vger.kernel.org; Wed, 17 Feb 2016 12:13:07 EST Authentication-Results: linux.com; dkim=none (message not signed) header.d=none;linux.com; dmarc=none action=none header.from=hpe.com; Message-ID: <56C4AA19.1080907@hpe.com> Date: Wed, 17 Feb 2016 12:12:57 -0500 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: Christoph Lameter CC: Peter Zijlstra , Dave Chinner , Alexander Viro , Jan Kara , Jeff Layton , "J. Bruce Fields" , Tejun Heo , , , Ingo Molnar , Andi Kleen , Dave Chinner , Scott J Norton , Douglas Hatch Subject: Re: [RFC PATCH 1/2] lib/percpu-list: Per-cpu list with associated per-cpu locks References: <1455672680-7153-1-git-send-email-Waiman.Long@hpe.com> <1455672680-7153-2-git-send-email-Waiman.Long@hpe.com> <20160217095318.GO14668@dastard> <20160217110040.GB6357@twins.programming.kicks-ass.net> <20160217110520.GN6375@twins.programming.kicks-ass.net> <56C49CCA.7090805@hpe.com> In-Reply-To: Content-Type: text/plain; charset="ISO-8859-1"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [71.168.64.11] X-ClientProxiedBy: DM2PR11CA0007.namprd11.prod.outlook.com (25.160.91.17) To DF4PR84MB0140.NAMPRD84.PROD.OUTLOOK.COM (25.162.192.26) X-Microsoft-Exchange-Diagnostics: 1;DF4PR84MB0140;2:gUhyoSaTPBqlbwwzTnq+iiCzJbHhtP8Hc7QWQNf4QEs3TWcvjhRoJkFOh4maKDd+5/+EUmgspMhLSViacuelUjq6vU2AhnFI7onx2kl2RcE9nQSR1pPb5vK2tESH4O/RiS459CcHuYikTWwMmvSVcw==;3:fsjOEkqxYB2UGWAiHqXATGLn/yjwzT4/SFcjubZNxNGxg0ouhjN0crORp6IcP+XWPESMvGichf0az/5/5n/SD33ZYVHdOhel4oXiRADrtMN0Q2NOqi6Qdp/qvDRLcLAC;25:82xuO2AiCZP8Hgn5OGGn99468SCqlLyeWnrgxjE5yUCHRkSNuu93FUvQBFyDLrt8nUZX1zLWgIL3JIAydYiYJuFVk686mZaHclDScIWYSyfVsZrxTN8MVw2SCt/T4RlS7YpuONvRGGCVFnnTcUFcm5thZG+ZvY9QLVpPeRKHhR8Hs7+yi52hvPbHSMV6gJJdf+2iAbj1WR+0dViNiHgqwiEzsIH73V7IRdG3OXz9J9S4Un4C0ho2GWOueVZoheFUWWWHU4bfzJr7hKu09a4XiGCjHjYJ7R+i5vf+dDg5LDewtVbJU/7yMnpif4yg5es+;20:JLpubmdLNnWJKsVHbi3ifdwvGMeA9t09YWQXxpUeS6wAdKuOQeR6e7LYQO9613qYYO3sbQQ6ys9N5osI4SRKCVYMtPzfl/gLdKmk3IpAuVgmdPv4pTftsO3zxQlaPgqMM4PRTjA+SvA6a+oW5g4nlavj52H8gyg0qkGr4O4kmq6z50+VIjLrH2GWw0C+ajKMysAMUEnpGlj/sAsQ888yQvUcrdStHvxrowWYnEu7SR0sYKH8r9FQwzK2apRMDHII X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DF4PR84MB0140; X-MS-Office365-Filtering-Correlation-Id: 9b5985cc-8f6a-4e98-0def-08d337bd9991 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046);SRVR:DF4PR84MB0140;BCL:0;PCL:0;RULEID:;SRVR:DF4PR84MB0140; X-Microsoft-Exchange-Diagnostics: 1;DF4PR84MB0140;4:+Om/q0cHOxu5HzSrWP23WuUqFE/oG0atGC+2e5O0QmcK1HNahoRzaOBOA6MUBTG+fU40Zz6hwKHin10bhYdAHbEP4Vxmnk4IlHUY1dD5SuvqZCqWLWeGArlEsex3futG9OPAiKovOA5B32cbYAVU70LD+b/Fgo2yDnXUf0kS9d2iEQanyehj6rmNvx9N/ws1QFiyfoG80F7NyEhyjzUISydkiuXkRYAyhpZqD0lT+P2SbdLVvzPjq8uuXeJJVTQD9V33peHH4w8A1ykNC0VAY+1AcXXhS8VfDz0tfLb6Ry9r58RGwRBg+/DoJtVmVwJlXoAIQiSva/4qCT53b8kSGsfx0enyt/FkNvjQAWBAKochgR4eFI7bCW6G5IMHk/7Q X-Forefront-PRVS: 085551F5A8 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(6049001)(479174004)(377454003)(24454002)(5008740100001)(87266999)(40100003)(36756003)(23756003)(54356999)(65816999)(2950100001)(80316001)(4001350100001)(586003)(76176999)(5004730100002)(50986999)(92566002)(87976001)(189998001)(2906002)(1096002)(4326007)(33656002)(83506001)(77096005)(230700001)(86362001)(66066001)(47776003)(117156001)(3846002)(6116002)(110136002)(65806001)(5001960100002)(65956001)(42186005)(7059030)(217873001);DIR:OUT;SFP:1102;SCL:1;SRVR:DF4PR84MB0140;H:[192.168.142.188];FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?iso-8859-1?Q?1;DF4PR84MB0140;23:vM4sXPb97z2h34ZfVuAqLZ7fXFhlNqnGH54l9Ma?= =?iso-8859-1?Q?wnRsPuiUDXRxWfxUvufSi9oTaHJ85d5ifNayVjh45SZQ1mc1uHtwGI6PgJ?= =?iso-8859-1?Q?D4Td3M0KZ7VpS72Pey7uFn4wSwz7Akq1T0M8VbS44gC59Aov8aKboLGdsx?= =?iso-8859-1?Q?t62mTlL1b8YMmTbSznhPvbvs6RxDIFcfl4x9NEc1wsUB2pgSuispg6PvgP?= =?iso-8859-1?Q?F2FEhlxXX2pGcW/TTg6eegXAwh0AHd1CNcyTeCZ2CkHkHmG0U3e0lks5/x?= =?iso-8859-1?Q?LamYy6H6Xcwt4ICrm9ER7wY3F0KGLXpzpG2kUZLqTnchfhfr9f4at5+2we?= =?iso-8859-1?Q?8n9Sa554AC0aSiAIcaI9hGkseKUNY/ejqaqgeZ43sHFokwwuTLDRSNDt0g?= =?iso-8859-1?Q?jdE20nHe9aNVHnfzbNb/Uw0gNhs5RdDNfs6B3fTkglnDOBAhQat2Cg99D+?= =?iso-8859-1?Q?LoXOmNYCX04hnNOWXKJNqFR5GSt2DCtLoFBUs4VjrYH8bTRxqT+5p98vlf?= =?iso-8859-1?Q?dHJjhpYEKzbfbc4oP4x14F8uky8hhZTDuJmAZ8nDgMDsJ9pSUESxqEAwmw?= =?iso-8859-1?Q?fSpZCXmdKOJYWV9fWbwFA2cwrkGkc+TQg2sXGK0V9mCwua3qKonwvVIh5E?= =?iso-8859-1?Q?EyT8u55A3kUVMrrE6Onf8+MyLuYEyMEt24y4oOSZq3r+rOP70ISLAszRc1?= =?iso-8859-1?Q?OpW2wKHL/YIAw9Ip7EMPyzDiKxHJfDtxc+8TYRrR/JyN6dj1/v8NcQ8Dh5?= =?iso-8859-1?Q?RpLBa6JbItWuSIRbxKR4cRaSjTAm5+EGGE2tsBo0xUz+Lb1c+rXOEHs0Bv?= =?iso-8859-1?Q?qLTix8u25oHmo8z9cPTHt7ffU6pVdCCnfNI1Iu3diEowJQEkBX+KlCbWwq?= =?iso-8859-1?Q?iwnT51Jkc7WHyADpbEHfLj5nw2Rw+keX699FktCdyeflb6zJ4usEpB0e33?= =?iso-8859-1?Q?EP0TBWWcqYoX9PfpdTvWJSWUvnNMqBhm7TPIeG6D7jxl9/xq7rlunWJkPZ?= =?iso-8859-1?Q?uedd04XHVAiXED9wEkNl2p7pmMOkKEf4MSXSLLbQ6zeaMT/J6Mpe+DsdqY?= =?iso-8859-1?Q?3kzlnzPhfhYFtUL7q4ej5GjgGse84TESHoAum4TTh6H/vxOrVK4/scVGht?= =?iso-8859-1?Q?aA0FnqWaFm93q177J5WCOapYvlY0HJjU/jv45o9Wc/zlBaO8=3D?= X-Microsoft-Exchange-Diagnostics: 1;DF4PR84MB0140;5:ME+2tH9HCoV1TSoiV//NVVKD3JdmMDxaanfsKmH6U1YffoWetUCtYVt4RoeRnlaBpLKOsvLUlow7L/6P8I9IfvYoDUtAfEokdyc1Wj7RtiOgoCaDThuN+DpKt8/zkCAk5HFaHtmscFN0OhzWjAjDHg==;24:TDA6SeXjvTLdyhGAq+fhhTrStuPBVo6L3HVOBmnW2Nwg13rHN+may+w5fOO1mdSGf1S5fm1VDFetxLAjlq83D3m9dHPSXojh+lAqq1MJqGs= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: hpe.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Feb 2016 17:13:03.9294 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DF4PR84MB0140 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 02/17/2016 11:27 AM, Christoph Lameter wrote: > On Wed, 17 Feb 2016, Waiman Long wrote: > >> I know we can use RCU for singly linked list, but I don't think we can use >> that for doubly linked list as there is no easy way to make atomic changes to >> both prev and next pointers simultaneously unless you are taking about 16b >> cmpxchg which is only supported in some architecture. > But its supported in the most important architecutes. You can fall back to > spinlocks on the ones that do not support it. > I guess with some limitations on how the lists can be traversed, we may be able to do that with RCU without lock. However, that will make the code more complex and harder to verify. Given that in both my and Dave's testing that contentions with list insertion and deletion are almost gone from the perf profile when they used to be a bottleneck, is it really worth the effort to do such a conversion? Cheers, Longman