Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757994AbZDUVd5 (ORCPT ); Tue, 21 Apr 2009 17:33:57 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1752695AbZDUVdo (ORCPT ); Tue, 21 Apr 2009 17:33:44 -0400 Received: from hrndva-omtalb.mail.rr.com ([71.74.56.124]:60867 "EHLO hrndva-omtalb.mail.rr.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752733AbZDUVdn (ORCPT ); Tue, 21 Apr 2009 17:33:43 -0400 Date: Tue, 21 Apr 2009 17:33:41 -0400 (EDT) From: Steven Rostedt X-X-Sender: rostedt@gandalf.stny.rr.com To: "Frank Ch. Eigler" cc: Andi Kleen , Jeremy Fitzhardinge , Mathieu Desnoyers , LKML , Ingo Molnar , Andrew Morton , Thomas Gleixner , Peter Zijlstra , Frederic Weisbecker , Theodore Tso , Arjan van de Ven , Christoph Hellwig , Lai Jiangshan , Zhaolei , Li Zefan , KOSAKI Motohiro , Masami Hiramatsu , Tom Zanussi , Jiaying Zhang , Michael Rubin , Martin Bligh , Peter Zijlstra , Neil Horman , Eduard - Gabriel Munteanu Subject: Re: [PATCH 2/8] tracing: create automated trace defines In-Reply-To: <20090421212347.GC402@elastic.org> Message-ID: References: <49E6065B.7080409@goop.org> <20090416023456.GC22378@Krystal> <49E69E76.9030608@goop.org> <20090416234410.GA20513@Krystal> <87zlebpzmk.fsf@basil.nowhere.org> <20090421155106.GE3792@Krystal> <49EDFFE6.1080401@goop.org> <20090421202828.GB32179@basil> <20090421212347.GC402@elastic.org> User-Agent: Alpine 2.00 (DEB 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1592 Lines: 49 [ removed Pekka@firstfloor.org due to mail errors ] On Tue, 21 Apr 2009, Frank Ch. Eigler wrote: > Hi - > > On Tue, Apr 21, 2009 at 05:17:17PM -0400, Steven Rostedt wrote: > > > [...] Perhaps we should fork off gcc and ship Linux with its own > > compiler. This way we can optimize it for the kernel and not worry > > about any userland optimizations. > > In this regard, kernel land does not seem that unlike user land. > > > if (unlikely(err)) { > > __section__(".error_sect") { > > /* put error code here */ > > } > > } > > > > And have gcc in the error section (if it is big enough perhaps) do: > > jmp .L123 > > .L124 [...] > > [...] > > jmp .L124 > > > We could do the same for trace points. That is, any part of code that > > really would happen once in a while (error handling for one) we can move > > off to its own section and keep hot paths hot. > > This is called -freorder-blocks or -freorder-blocks-and-partition > (depending on how far you would like gcc to move unlikely blocks). That does not let us pick and choose what and where to put the code. But still, a fork of gcc would let us optimize it for the kernel, and not for generic programs. /me has been sitting too close to the furnace and must have been taking up some of those fumes, to be considering a fork of gcc a good idea ;-) -- Steve -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/