From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751888AbdJ2SfN (ORCPT ); Sun, 29 Oct 2017 14:35:13 -0400 Received: from mail-by2nam03on0085.outbound.protection.outlook.com ([104.47.42.85]:14944 "EHLO NAM03-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751437AbdJ2SfL (ORCPT ); Sun, 29 Oct 2017 14:35:11 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Yuri.Norov@cavium.com; Date: Sun, 29 Oct 2017 21:34:57 +0300 From: Yury Norov To: Joe Perches Cc: Kien Ha , linux-kernel@vger.kernel.org, devel@driverdev.osuosl.org, Andrew Morton , Linus Torvalds Subject: Re: [PATCH] Fix line too long warning Message-ID: <20171029183457.xibbcvuduexv25fd@yury-thinkpad> References: <1509245173.3669.5.camel@gmail.com> <20171029155409.5pntisfklykssda4@yury-thinkpad> <1509298107.26592.26.camel@perches.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1509298107.26592.26.camel@perches.com> User-Agent: NeoMutt/20170113 (1.7.2) X-Originating-IP: [95.104.161.7] X-ClientProxiedBy: HE1PR0102CA0009.eurprd01.prod.exchangelabs.com (2603:10a6:7:14::22) To CY4PR0701MB3828.namprd07.prod.outlook.com (2603:10b6:910:94::34) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 2c69dc32-c5f5-417e-2255-08d51efbc873 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(4534020)(4602075)(2017052603199);SRVR:CY4PR0701MB3828; X-Microsoft-Exchange-Diagnostics: 1;CY4PR0701MB3828;3:qvDwJOVknwn8ojp9x8IoF94HwPo/jb1VGb7p4u9clTjWfRzccT6SVhqdjPCaZ3uJU77KKn6O1klORf0vwD+s4MxmJWYLmER/Ll4mdA4cLZBzRlFCwe8PPTCZ5OFY95A1NsTpOKtSKWVsaaNet64brR8I+DRjsRxO/cuRVEvnZCZunBs3mWrT10ml6nVg0KODnwp+rLYyNj1Jayno+//15u1Zh/JWq63OvRvkSuqOA1mwdYUBmXOaBCzZ1EafBLQG;25:n61cpCQcfLLNpc48TvG8ACQCx64zt+4WoQhCqmMYqMR4m3MREWpShyT3cmDmgqYIalkQNKlt+xkoyDmm9d2fQOw08jxffhE/F8J3dc1iJ10MbcDYb6hcOKfe7zFvGl1XoCRC1fTegd9bko6pfgxL5xSjek9oPrMR9DliQDIusWz1jxCPABiCaJUKO0/VgMWdXe8P6Quw6NebO+0IJjsrhFUXiTxK86bFIYg3fZaBQ2AYHRcA2QJGZW9/fSDaaLv6W9xoiW09SLIxLYhk5HWC4rxY8Z6kRyVX6I9oOLN6bzrC4yLWtSfZU5J/dgl1Pd34ygQiyTUm4nhu6tYCzmWjOg==;31:Fbtrcfh3aqhEqV/iwhvC29Bgl9F85Vi1xJ7KvurmHHkfkArQivc5cXQYcypJQ9daw96G4sIV3xYlrDetnIbOFxTHFKt/so/NA/X0wfQA5PcmeFOfsCAunBz1sMf+qBtHRnGfKPTe1lIrvBEUwMsGPjQm3U7990c9rvJdfgcaPmF8oFt+UZLb9PCnKA85bq3vosLQ/jIJXRrfPrF69lP6Mlc5xXf96BTNqhUEJg38l64= X-MS-TrafficTypeDiagnostic: CY4PR0701MB3828: X-Microsoft-Exchange-Diagnostics: 1;CY4PR0701MB3828;20:toDoqdT+12JoGkzqjsG0xQyE4HuxK2PbWDmzMVB9HXCrH9gipucMhwnWLD+7Ng02gF/Op3KKA3bfve7A9pAgrsUMm0n+MVHbCjZrAmIAv7n8mVLNPkM+GFNWCdgUAShZ9l+vjBFaDSHWj7cscWYOZkI1iqPbfR9lZzJFYXZyPHNImtzwsir996b6wjfTVsl22o4zmCnjcVFK1jez7qcX7+Rl5SApbZbRujyT8cjQtFRgrSa8ZaqpWFir686OeZXzzqUCBa/JevLH3S/8Q1awypXhH3ENVH4xL8TOV+z5wVbPo+I7QtRPG1xxhQ07RF3po1VCXnRem441bAAc/Tj+IvnyMJG8xuqokzIsZNSDqyAAf400CN1WyNvo/+o5POZby/dzTqzGN+p5wUD34lwiYX5ZlujV8W+PR+uP+e+Bb73dORXLDMZsUXLQVsjAT3XhAxrZMSaRY/hu4JAuZaUiOkKkb3VvWKe3JYzQeVF7n9QMTiP6KGP4xaN33W5BZR9qf5+QWUePwRIC4shndkAELQlcVXgsgeYbPogEDUlVI0lI1GyTdG92HKRnTBpDR3emuPNwCc68hGvMuhWXCPOayLVtHdY4IQbHvHrUHf95JYY=;4:pVoxn0VbLmpNKCxpD5dtoW+LoATh4H/yA9t+LlyLbe+AeaYvFwKhfRf6h3TFxc49BbQv65acVJqzUAeYAMLg5DvbKLxnZTfRXvV0yUes5HXs5KScs+nfbHf/qDQBFoAF4ryMe+5CIszpmz8TPfzhjFQTdQkksfd6r75KluDIA2EJZGECiYhA2miCRiP3iFdCSYsxFyq3JZf0ME0/eXHMPnVN3SHZ6fETPxlfTxaaqDKZJIdBpwiPPpa2kA/crMROvNEikxEJzTEmkePUZjFlrw== X-Exchange-Antispam-Report-Test: UriScan:; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(5005006)(8121501046)(93006095)(100000703101)(100105400095)(3231020)(3002001)(10201501046)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123560025)(20161123555025)(20161123558100)(20161123564025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:CY4PR0701MB3828;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:CY4PR0701MB3828; X-Forefront-PRVS: 0475418F50 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6069001)(6009001)(7916004)(376002)(346002)(189002)(24454002)(52314003)(377424004)(199003)(3846002)(23726003)(83506002)(6116002)(8676002)(6486002)(189998001)(81166006)(81156014)(8936002)(76176999)(101416001)(54356999)(50986999)(1076002)(305945005)(16526018)(97736004)(72206003)(7736002)(2906002)(478600001)(229853002)(4001150100001)(39060400002)(25786009)(4326008)(53936002)(54906003)(16586007)(9686003)(58126008)(66066001)(5660300001)(316002)(6666003)(6496005)(6246003)(2950100002)(42882006)(6916009)(47776003)(105586002)(33716001)(68736007)(76506005)(33646002)(106356001)(50466002);DIR:OUT;SFP:1101;SCL:1;SRVR:CY4PR0701MB3828;H:localhost;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;CY4PR0701MB3828;23:qrtD80UJRN0xrjqMHq7WhKkvX75YM+w0h6Ahbbm?= =?us-ascii?Q?LNXz6idTcw4ONNueDv1dQV9rvuPxlkyelwE9OkUv7R052n6Izp5/RX5LIjox?= =?us-ascii?Q?hyYsQDl5Lj0Khfmtdw0LAaSsB7WGKnTcpJiZsstBZi7iMRyus0knX3r5UCty?= =?us-ascii?Q?QcV7wr+pPxuoRsdcNwhRAt/LwapfJ0sh0Ht3xVMhNJufDLNxztzTe8dLudFZ?= =?us-ascii?Q?y8bBJIAnWe+rsQWYRpDW4A6MQy5yj2c7XoaRnGMFvC+RWUnD4VixWLc9iVLh?= =?us-ascii?Q?Xsz17HdPAM/YNvYJ6YrajnKAdyOqq/t7JzVoyp0qpq703TeNBnij3Zx1wQhd?= =?us-ascii?Q?0UGjdH6DfW9ry7V6uwJwA4NB2xXxO3tFAZJvMG1aIlWHtKb8J9s0k8e2YG6j?= =?us-ascii?Q?8sfK7dtK5uZ3ggNyiVzh6gl/CO9JeizUvTOKMYsI1Yxyu25KgDaU70EonmuX?= =?us-ascii?Q?98K+Taf9cvdvlqHvIghuciTNK5Bi9F1ITks/+yi5QGGfXR1rdy4KeJ8C92an?= =?us-ascii?Q?Dx0/7vUYWyr3EI/FIldD3E2vHDhhgP+HI/9RCPJYjWncGVthiAnLQq6vHW9U?= =?us-ascii?Q?EWypwKTKiRRkB++h6BHxdJ1wd9vNqMRwhlmCGcMs5htJV3LC2aJ7AmMyNOWq?= =?us-ascii?Q?J8AUr5D/IX/KbMiBuhrj4EqdDkZALbx6OOAkim/HaOD8Fs0/JjXg3HxGwmGJ?= =?us-ascii?Q?rsbCHwQfGnztAKQKKQ/221docGSHHeNPDxKa26USfhzaoP/SxSczDXySBjb6?= =?us-ascii?Q?7+oadHZDQ5S6C17DemvtpSmK5ferL3BbYRwrrrsf2nRBCfZpGZQDcT55MyUG?= =?us-ascii?Q?u3jauvdQqUHTnIpjtd5usmeOoMs7UkPDJqh3kvi8LnJGs2+pcY8cxjVY6Ko5?= =?us-ascii?Q?zUoYvL+dCAPjEa0qkrzvtG2Nttosl69eIAKX5MOOJbwEMjClAv4yITQyn40j?= =?us-ascii?Q?SkASrZcHIrqLrvgnEvlzal6ztxRh6yFaYC1+CkDogXBn4A9cw2oKNlcfZtor?= =?us-ascii?Q?wPHs8Cxn/s/jItcuX60GKbCOggP7D/tmVu3av7NEYJQ7KDISS0vIAT5hocbr?= =?us-ascii?Q?yXDPY6P3Mzf6B/irlahvp4nq76/QjGYTh4OtO94Kg8EpEddTDi8FtrjbJKFx?= =?us-ascii?Q?S7ug4JKEFuvvuC8NRniv+ixx+AFPJ/ZJgBz7FYRpmqln3ySpbdaX10+z5h9S?= =?us-ascii?Q?io/YyGHLaafGWOU0oSlYu8ys5sG9ECiqneUsMgbHryakRMNXokkJDTvV66NS?= =?us-ascii?Q?/PE1kxwMB2PPpOHFIvS+7Mqq8zPD8WGF2r5EL7i3eIQSa9bnaPeyBSp3hhi/?= =?us-ascii?Q?HAuE6UZfJEBLZxw+WgZBh/2a1ZiV6zne0U5zOlcSGkaToZkFIWpKrzJsLOE2?= =?us-ascii?Q?nP7PEzQ=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;CY4PR0701MB3828;6:lR0tIz6D9QGJqrQMLbbQUwpf6iC8tEZiz1BbH3XmuHxeh5g1oDmSzrtyKBxPPOG5ydknqV34igHUlaeBvv/xP6Ln4sdwswlB+XWrabGAXze6lj1CUcHENbUkh195N493pkkesT3gWFVZZ40XcRol+7USm33XpllcZAXbPtjYjWpBtO8e45EaEd7DLu2NdkTU0YYtEhh0rptpgxS+IfRCfhUumFJXrWkYo82XCEFNS8wVmvOMUwfA8dODj2i0xNDvsAmhzq5pPF+Fl4FM3JCwt1eeK2nOVlP+hcybwuracW2bK6W6MS0hSq8eKc7B+ily+8B3mTpzLCVk9J1XEbEtS8otov9fLFwyKPMGa5r5AHY=;5:+0wZzd/n9N8U+M/jMQ8EWgI0hsiNyFFSBlgMMyokDypusEdplKR0QoaBhgGaocqYmFpblNFu2RKMT2zZAiu51JHZbfo0aSxqsTyxUhcEgh/y4X/y3VrTm2WpIERxzxj8hpvC5Dx/x4wziA7WhEcVjsahggQjwLyyP8IX8tOiGDc=;24:wCJZYMR7Dow9DOFk5Z189gGWzZr1TPKREjG6vBTDzJq/0VMqCgPZNIuiVQSSYFkOA73fIx2RJAVgB6uijZTuglOl07l9YtYfEHHTSiN6xcM=;7:OE78hcV9KXmsKhnZ7Oi9AftsST8JlRO1jCLDj9o0TPYC5jLf46+7M13d5ntNDr7vVIq/uON/8N6xAEadVK2D/8YRX0fyW1oor6L1DdkkRmQQ1JV7xnbj+J62MkEMqNqmOVetHagEgAYAMRJYXNI0tfZkth1tHVknXTdi3bvDyooDlVfOmi2zxoFUpT5TEDSr0SH9ZH/98jH9X/vh3ym0IoDJHfnXgwyFrHdXSGdbwYX6mg4EYF20xSq2dLQvYY7W SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Oct 2017 18:35:08.6093 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 2c69dc32-c5f5-417e-2255-08d51efbc873 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR0701MB3828 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sun, Oct 29, 2017 at 10:28:27AM -0700, Joe Perches wrote: > On Sun, 2017-10-29 at 18:54 +0300, Yury Norov wrote: > > At second, and most important, refer Documentation/process/coding-style.rst: > > Now, some people will claim that having 8-character indentations makes > > the code move too far to the right, and makes it hard to read on a > > 80-character terminal screen. The answer to that is that if you need > > more than 3 levels of indentation, you're screwed anyway, and should fix > > your program. > > > > The real problem here is not "line too long", but "indentation level too > > big" - 5. And it worth to address real problem. > > Line length issues can be a combination of several factors: > > o identifier length > o quantity of dereferences > o indentation depth > o code complexity > > 4 indentation depth levels are not a real issue. > A significant percentage of lines in the kernel > are 4 or more tab indent levels deep. > > checkpatch suggests that 6 or more is the depth level > that should cause real concern. > > Here's a little breakdown of lines that start with > a tab followed by a c90 keyword in the kernel > > $ git grep -P "^\t+(if|for|do|while|\}|else|switch|return|case|break|continue|goto)\b" -- "*.[ch]" | \ > cut -f2- -d":" | perl -p -e 's/(^\t+).*/\1/' | \ > sort | uniq -c | sort -rn | \ > awk '{total += $1; count[i++] = $1} END { for (j = 0; j < i; j++) { printf "%d\t%d\t%.2f%%\n", j + 1, count[j], count[j] / total * 100 }}' > 1 1325462 52.19% > 2 863007 33.98% > 3 271844 10.70% > 4 64009 2.52% > 5 12502 0.49% > 6 2199 0.09% > 7 501 0.02% > 8 166 0.01% > 9 51 0.00% > 10 20 0.00% > 11 10 0.00% > 12 4 0.00% > 13 1 0.00% > > I think it could reasonably be argued that the > indentation depth warning (DEEP_INDENTATION) > should start at 5 and not at 6. > > --- > scripts/checkpatch.pl | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl > index 6bdd43d5dec5..923e4ff09d24 100755 > --- a/scripts/checkpatch.pl > +++ b/scripts/checkpatch.pl > @@ -3353,7 +3353,7 @@ sub process { > > my ($level, @ctx) = ctx_statement_level($linenr, $realcnt, 0); > > - if ($line =~ /^\+\t{6,}/) { > + if ($line =~ /^\+\t{5,}/) { > WARN("DEEP_INDENTATION", > "Too many leading tabs - consider code refactoring\n" . $herecurr); > } There are 2 different subjects here - this specific function in staging driver and general considerations. Regarding the function, it has very simple structure, and so deep indentation level is definitely a symptom of bad design. Regarding general considerations, the kernel is very complex, and I admit that indentations deeper than 3 are unavoidable in some cases. But we have coding style that insists on 3, and this rule is (probably ?) written by Linus, so... :-) Nevertheless, your patch is the step toward right direction, so if you need my ack, Acked-by: Yury Norov