From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751415AbdEBECK (ORCPT ); Tue, 2 May 2017 00:02:10 -0400 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]:49233 "EHLO mx0a-001b2d01.pphosted.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750781AbdEBECJ (ORCPT ); Tue, 2 May 2017 00:02:09 -0400 Date: Mon, 1 May 2017 21:02:02 -0700 From: "Paul E. McKenney" To: Linus Torvalds Cc: Ingo Molnar , Linux Kernel Mailing List , Peter Zijlstra , Thomas Gleixner Subject: Re: [GIT PULL] RCU changes for v4.12 Reply-To: paulmck@linux.vnet.ibm.com References: <20170501095915.rm4zi5z4ta44il5p@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-TM-AS-GCONF: 00 x-cbid: 17050204-0036-0000-0000-000001F67020 X-IBM-SpamModules-Scores: X-IBM-SpamModules-Versions: BY=3.00007009; HX=3.00000240; KW=3.00000007; PH=3.00000004; SC=3.00000208; SDB=6.00855004; UDB=6.00423106; IPR=6.00634165; BA=6.00005321; NDR=6.00000001; ZLA=6.00000005; ZF=6.00000009; ZB=6.00000000; ZP=6.00000000; ZH=6.00000000; ZU=6.00000002; MB=3.00015261; XFM=3.00000014; UTC=2017-05-02 04:02:06 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 17050204-0037-0000-0000-0000402016B5 Message-Id: <20170502040202.GR3956@linux.vnet.ibm.com> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2017-05-02_01:,, signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=0 malwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1703280000 definitions=main-1705020022 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, May 01, 2017 at 06:19:44PM -0700, Linus Torvalds wrote: > On Mon, May 1, 2017 at 2:59 AM, Ingo Molnar wrote: > > Linus, > > > > Please pull the latest core-rcu-for-linus git tree from: > > > > git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git core-rcu-for-linus > > I pulled this, and then after looking at it, ended up un-pulling it again. > > I refuse to take that nasty header file from hell. > > I see absolutely no point in taking a header file of several hundred > lines of code. > > We have traditionally done too much inline code anyway, but we've > learnt our lesson - and even back when we did too much of it, we > didn't put random code that nobody uses and by definition cannot be > performance-critical in big inline functions in header files. > > If it was some one-liner helper function, that would be one thing. But > there are functions that don't even fit on the screen, and that have > multiple loops and memory barriers in them. > > The one function I decided to grep for was used EXACTLY NOWHERE. Yet > it was apparently SO INCREDIBLY important that it needed to be inlined > in a huge header file despite being huge and complicated. > > So no. This is too ugly to live, and certainly too ugly to be pulled. > > The RCU code needs to start showing some good taste. > > There are valid reasons to inline even large functions, if they have > constant arguments that make us expect them to generate a single > instruction of code in the end. But that was very much not the case > here. > > Not pulling. Try again next merge window when the code has been > cleaned up and isn't too ugly to live. Please accept my apologies! I was patterning this code too much after the various *list*.h header files, and failed to notice that the functions were getting large. I will get rid of the unused rcu_segcblist_extract_all() function and create a kernel/rcu/segcblist.c for the functions that are either non-trivial or performance-insensitive. Does that cover it, or am I missing something? Thanx, Paul