From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from e28smtp03.in.ibm.com (e28smtp03.in.ibm.com [122.248.162.3]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "e28smtp03.in.ibm.com", Issuer "Equifax" (verified OK)) by ozlabs.org (Postfix) with ESMTPS id E8099B7D20 for ; Thu, 27 May 2010 03:31:33 +1000 (EST) Received: from d28relay01.in.ibm.com (d28relay01.in.ibm.com [9.184.220.58]) by e28smtp03.in.ibm.com (8.14.3/8.13.1) with ESMTP id o4QHVTFb008606 for ; Wed, 26 May 2010 23:01:29 +0530 Received: from d28av02.in.ibm.com (d28av02.in.ibm.com [9.184.220.64]) by d28relay01.in.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id o4QHVTfD2301968 for ; Wed, 26 May 2010 23:01:29 +0530 Received: from d28av02.in.ibm.com (loopback [127.0.0.1]) by d28av02.in.ibm.com (8.14.3/8.13.1/NCO v10.0 AVout) with ESMTP id o4QHVSDT005646 for ; Thu, 27 May 2010 03:31:28 +1000 Date: Wed, 26 May 2010 23:01:24 +0530 From: "K.Prasad" To: Frederic Weisbecker Subject: Re: [Patch 1/4] Allow arch-specific cleanup before breakpoint unregistration Message-ID: <20100526173124.GA8283@in.ibm.com> References: <20100526065129.GA3746@in.ibm.com> <20100525083055.342788418@linux.vnet.ibm.com> <20100525091356.GB29003@in.ibm.com> <1274787559_8162@mail4.comsite.net> <4250.1274867681@redhat.com> <20100526171742.GA5563@in.ibm.com> <20100526172314.GD5299@nowhere> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii In-Reply-To: <20100526172314.GD5299@nowhere> Cc: Michael Neuling , Benjamin Herrenschmidt , shaggy@linux.vnet.ibm.com, Linux Kernel Mailing List , Millton Miller , David Gibson , "linuxppc-dev@ozlabs.org" , Alan Stern , Paul Mackerras , Andrew Morton , Roland McGrath Reply-To: prasad@linux.vnet.ibm.com List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , On Wed, May 26, 2010 at 07:23:15PM +0200, Frederic Weisbecker wrote: > On Wed, May 26, 2010 at 10:47:42PM +0530, K.Prasad wrote: > > On Wed, May 26, 2010 at 10:54:41AM +0100, David Howells wrote: > > > K.Prasad wrote: > > > > > > > > My understanding is weak function definitions must appear in a different C > > > > > file than their call sites to work on some toolchains. > > > > > > > > > > > > > Atleast, there are quite a few precedents inside the Linux kernel for > > > > __weak functions being invoked from the file in which they are defined > > > > (arch_hwblk_init, arch_enable_nonboot_cpus_begin and hw_perf_disable to > > > > name a few). > > > > Moreover the online GCC docs haven't any such constraints mentioned. > > > > > > I've seen problems in this area. gcc sometimes inlines a weak function that's > > > in the same file as the call point. > > > > > > > We've seen such behaviour even otherwise....even with noinline attribute > > in place. I'm not sure if this gcc fix > > (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16922) helped correct the > > behaviour, but the lesson has been to not trust a function to be > > inlined/remain non-inline consistently. > > > If we can't put the call to the function in the same file of its weak > definition, then perf is totally screwed. > > And in fact it makes __weak basically useless and unusable. I guess > that happened in old gcc versions that have been fixed now. > > Anyway, I'm personally fine with this patch (you can put my hack > if you want). > I guess you meant "Acked-by:" :-) Thanks, I'll add the same. --K.Prasad