From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754804AbcBWS4y (ORCPT ); Tue, 23 Feb 2016 13:56:54 -0500 Received: from mail-bl2on0114.outbound.protection.outlook.com ([65.55.169.114]:9504 "EHLO na01-bl2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752099AbcBWS4w (ORCPT ); Tue, 23 Feb 2016 13:56:52 -0500 Authentication-Results: fromorbit.com; dkim=none (message not signed) header.d=none;fromorbit.com; dmarc=none action=none header.from=hpe.com; Message-ID: <56CCAB61.20206@hpe.com> Date: Tue, 23 Feb 2016 13:56:33 -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: Dave Chinner CC: Alexander Viro , Jan Kara , Jeff Layton , "J. Bruce Fields" , Tejun Heo , Christoph Lameter , , , Ingo Molnar , Peter Zijlstra , Andi Kleen , Dave Chinner , Scott J Norton , Douglas Hatch Subject: Re: [PATCH v2 3/3] vfs: Use per-cpu list for superblock's inode list References: <1455916245-32707-1-git-send-email-Waiman.Long@hpe.com> <1455916245-32707-4-git-send-email-Waiman.Long@hpe.com> <20160221213419.GB25832@dastard> In-Reply-To: <20160221213419.GB25832@dastard> Content-Type: text/plain; charset="ISO-8859-1"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [71.168.64.29] X-ClientProxiedBy: BY2PR1001CA0067.namprd10.prod.outlook.com (25.164.163.35) To TU4PR84MB0318.NAMPRD84.PROD.OUTLOOK.COM (25.162.186.28) X-Microsoft-Exchange-Diagnostics: 1;TU4PR84MB0318;2:nql2XVuw1o8nfGP7Ih8QEsir1ouBkgSx6jF+hqSZcZmQSkDBaDz7a/rftRyZdxUetpFmLBOMZLMqfEOfEXzXgfGgkkEEBVucEmvFL5jc606CQET8VAgitOvA+Xq5spO2pQk4BjW6CXHWFEHNXPGiog==;3:D/lz7Dy64H9lecVBVYzlEjNASsHi3tjEaBKN1gMhOi39jCI+AYcq16JulbpwiQo0cjLvv5mY/JEWTH9BxMOhgpK1fwz+d4cikrY+5dLbY9fzNj5ncrDzitOApBPHB82h;25:67pxnYu+Oo2IV/yNAxuApXfFgcXwy1Sgf5ISCuZTjLbcoIxcAx0812ys3kgx0tdjRn8ykB7BNxBIGwTD1FKjKtGVup4MMTZ5sTv+dILbo0cv3EusT301Xnlfv8UQhu+Ny5XO+RLO9NpPr50NfV6C7+8yhFEvKTod8tMVAB0mj2X4HrF1JVSDxv0HmUtHqLqt+YJ2TZVqiKRy6obCAf1tUG630d6nPmmW4klcDtA7DYh0yKptZB/1atKI6qpHDqzS+alKP898RBogxfE3WytY1Te6t9qdkLsEX09DMiPaXZn4a1Lv1N6L9n7ZyJ1dzCG0SBqCb+pm6c6gjhFH1qKqLLOIR/9w6283pleCxtFmw9M=;20:1aAVIp2c9inEasOzDgcuQJ0CGjgpJYhGkefws6bGEXW66d8zDURbGSD14lcrl+3/Zotj1LolcVtXJgKUhVdm2M+OlR/dF8bRNKbVsK1/cteXywtrodWcBIsAnQJTH0wTqvpa83Le5cNVedttXqIvInlgablTh8JlS+tucfNgosT2LqiWB4oWgN+ApQdKkDot3R9egJelbBjpPP1LONQ8T5UudUc01lGiIoVCyykOJhtjZNkL6z1RwBj6IuxsmEnI X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:TU4PR84MB0318; X-MS-Office365-Filtering-Correlation-Id: 8521175d-7422-40ca-7439-08d33c831623 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)(10201501046)(3002001);SRVR:TU4PR84MB0318;BCL:0;PCL:0;RULEID:;SRVR:TU4PR84MB0318; X-Microsoft-Exchange-Diagnostics: 1;TU4PR84MB0318;4:FORcb9QMCHd5DMm1eN4AgIVpMXV5bWScwCydMgtl7v7hEAljMBzyRe7qP9Ldrxoo8iHDUb/nnmZcJo9AM8gT/9rh3tMa1zh14/ymdchDvPKtdw1BbcK8MyFUXYAjr/4EvyARL0L0JiZMhqiPMmV4gT3vDP3boBsUlXNEWU9nTI1VfpCQMuyBhrKLHylbkDl3Y5lU08GQNoAf+8YZFkyPl0DJ6opn+HrvrC3ZdRAGqfbh/KhMvH2GnXM84NVL2vY6geVaQTu0XqJ7lTzS7PS14cQF6sYKgFzTZqssTMZDe9EZttjdecdvg9xwnfnGIy/+2rN90BkFTKV1AFD4GPw+L/o1CmqCGscSgGoWbl1n1sxgKCqENLLnm6QycWOcRbEG X-Forefront-PRVS: 08617F610C X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(6049001)(24454002)(479174004)(377454003)(42186005)(87976001)(3846002)(50986999)(54356999)(76176999)(65816999)(189998001)(5001960100002)(36756003)(86362001)(586003)(40100003)(64126003)(5004730100002)(5008740100001)(47776003)(65956001)(4326007)(230700001)(2906002)(117156001)(6116002)(50466002)(83506001)(92566002)(23756003)(33656002)(2950100001)(4001350100001)(77096005)(1096002)(66066001)(7059030);DIR:OUT;SFP:1102;SCL:1;SRVR:TU4PR84MB0318;H:[192.168.142.191];FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?iso-8859-1?Q?1;TU4PR84MB0318;23:2gcgHDbhELbNdmFHSjXkDCetG5KTlkyIbc3kvnO?= =?iso-8859-1?Q?IOOVpKJ7HIWpqo4CoxyuTHn+oWBdDcYtCgus3ZiqiCXm5cY9W6eumSVr9M?= =?iso-8859-1?Q?ILMGaG18G9FOc7AIISU5H+Bts4459qg9pHC7QzxT9ZGpW8zL3Qzulydf51?= =?iso-8859-1?Q?sMFa4VWrLUAI54yRTK8q1TFKLXkmkQnT+HTTxjGXlRtg6JGh1To7qYaW0K?= =?iso-8859-1?Q?ABmCkkJDQTxrYoFc1YFeFt3hAt40pSQJDd9aSgZUq94vB8cADv/pTPrgFs?= =?iso-8859-1?Q?byjNuo45AbO7aEWTHFM6GLUZDOFhQYXbhq15Q45NrgLlIN3guLMNeHIux1?= =?iso-8859-1?Q?dv18lypN1pCjY4taDbC2yXxkdQRLNJ0ZVElu0GYVNeA8fQ2ABU2924c7d+?= =?iso-8859-1?Q?dUT+CxwhZZ3LVsXBTRBEp2e+uBFh9ZuyKkx6st0HFVGTqQwj1l4vhVfgNX?= =?iso-8859-1?Q?9svELs+fLybiaiuhAyDzCde8jgfLGxqhkIr1/5adyOwRIa9wQNz6ajkofP?= =?iso-8859-1?Q?OeTwJ3yA9xLCRiJrnENEPgnSj/Y93N0KQoUBGb1CQWUNDYdWgjzbm5jBu+?= =?iso-8859-1?Q?xekIN2mhscdzHdZPUBeQYIGklaMKMgSH13PY9yt2lctCZrBvGS9vN1VLwz?= =?iso-8859-1?Q?1ZOzPGvSuy9dPAKZbj5dkjrTqTqDMteuuXdmfk6+3LUKNQsS6rB7EuKaXp?= =?iso-8859-1?Q?+y6O3uSV2mYGRvNi3j9X4trd5wa+jx+F3stusGb0dgGVeqSm6zvFOXRxnx?= =?iso-8859-1?Q?70X0psBRLpfion05UYnHKEF9U0e0cC2yTwfMYQKksYq8jk2Q8Ef4lYBNiB?= =?iso-8859-1?Q?wvsACGQwl7PKh7A2ScuLpws0VVTxHjvT55eSXdWVymTWkGs+712pqwi7H9?= =?iso-8859-1?Q?kc977T+9S+KOf2fEVTJ6X2aeqtd4J4alikOOR0d9m/wbQwN4+uaQZb82sW?= =?iso-8859-1?Q?wH17cLoufCeSefx9v5xWx46k8GFaiAnvQRKlq9ZjtFDyQWbSWvI7PBEJnk?= =?iso-8859-1?Q?NyR8G++kJSdibQFZH9MXAGjPEycYHR6jgxEqMKqVlyST2m0QAW/bFx42Pr?= =?iso-8859-1?Q?Y9+rm2pIrAHxIVp5I31+DTmnQ2+QLg2ILVgTC9UNYE=3D?= X-Microsoft-Exchange-Diagnostics: 1;TU4PR84MB0318;5:BBOcJsQdF5n46c8MrPQSLLE7k6OqI9nQjtiBpqacHNqBtChxJ0iU3TuHvNZhVDR5xTbubGgsZXsVQg1fgWV554ytJcQzPDPrn+3HYo2zGQBNX0bovc/su+Lhmxc/GeewykQM+cwi9VRXZlr13fpmeg==;24:sncOpbmy9yJLwRajulETJeZSLcPcmi3VbNtI8hFrEESlLYgvdLq7+iH40TZB/+/kjVbFLkAFxwHbIgLBWqaETmay7HcHF7mGDidn7ITBkD8= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: hpe.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Feb 2016 18:56:47.6363 (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 On 02/21/2016 04:34 PM, Dave Chinner wrote: > On Fri, Feb 19, 2016 at 04:10:45PM -0500, Waiman Long wrote: >> +/* >> + * Superblock's inode list iterator function and arguments macros >> + */ >> +#define SB_INODES_ITER_FUNC(name, lock, struct_fields) \ >> + struct name ## _arg { \ >> + struct_fields; \ >> + }; \ >> + static int name ## _iter(struct pcpu_list_node *_node, \ >> + struct pcpu_list_node **_pnext, \ >> + spinlock_t *lock, void *_arg) >> + >> +#define SB_INODES_ITER_ARGS(name, i, a) \ >> + struct inode *i = container_of(_node, struct inode, i_sb_list); \ >> + struct name ## _arg *a = (struct name ## _arg *)_arg >> + >> +#define SB_INODES_ITER_ARGS_SAFE(name, i, n, a) \ >> + struct inode *i = container_of(_node, struct inode, i_sb_list); \ >> + struct inode *n = container_of(*_pnext, struct inode, i_sb_list);\ >> + struct name ## _arg *a = (struct name ## _arg *)_arg >> + >> +#define SB_INODES_ITER_SET_PCPU_LIST_NEXT(n) \ >> + { *_pnext =&(n)->i_sb_list; } >> + >> +#define SB_INODES_ITER_CALL(name, sb) \ >> + pcpu_list_iterate(sb->s_inodes, false, NULL, name ## _iter,&arg) >> + >> +#define SB_INODES_ITER_CALL_SAFE(name, sb, phead) \ >> + pcpu_list_iterate(sb->s_inodes, true, phead, name ## _iter,&arg) >> + > No, just no. > > Ungreppable, breaks cscope, obfuscates everything, shouts a lot, > code using the API looks completely broken (e.g. semi-colons in > "function declarations"), and it reminds me of the worst of the > worst unmaintainable code in an exceedingly buggy and undebuggable > proprietary filesystem I've previously had the "joy" of working > with. > > Just fix the bug in the previous version; it's so much cleaner than > this .... mess. > > Cheers, > > Dave. Sorry for that. I will scrap the current approach and use another way to iterate the list instead. I will send out an updated patch soon. Cheers, Longman