Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751357AbWJHTb3 (ORCPT ); Sun, 8 Oct 2006 15:31:29 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751358AbWJHTb3 (ORCPT ); Sun, 8 Oct 2006 15:31:29 -0400 Received: from twinlark.arctic.org ([207.7.145.18]:37608 "EHLO twinlark.arctic.org") by vger.kernel.org with ESMTP id S1751357AbWJHTb1 (ORCPT ); Sun, 8 Oct 2006 15:31:27 -0400 Date: Sun, 8 Oct 2006 12:31:24 -0700 (PDT) From: dean gaudet To: Mathieu Desnoyers cc: Martin Bligh , "Frank Ch. Eigler" , Masami Hiramatsu , prasanna@in.ibm.com, Andrew Morton , Ingo Molnar , Mathieu Desnoyers , Paul Mundt , linux-kernel , Jes Sorensen , Tom Zanussi , Richard J Moore , Michel Dagenais , Christoph Hellwig , Greg Kroah-Hartman , Thomas Gleixner , William Cohen , ltt-dev@shafik.org, systemtap@sources.redhat.com, Alan Cox , Jeremy Fitzhardinge , Karim Yaghmour , Pavel Machek , Joe Perches , "Randy.Dunlap" , "Jose R. Santos" Subject: Re: Performance analysis of Linux Kernel Markers 0.20 for 2.6.17 In-Reply-To: <20060930180157.GA25761@Krystal> Message-ID: References: <20060930180157.GA25761@Krystal> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1403 Lines: 41 On Sat, 30 Sep 2006, Mathieu Desnoyers wrote: > - Optimized > > static int my_open(struct inode *inode, struct file *file) > { > 0: 55 push %ebp > 1: 89 e5 mov %esp,%ebp > 3: 83 ec 0c sub $0xc,%esp > MARK(subsys_mark1, "%d %p", 1, NULL); > 6: b0 00 mov $0x0,%al <-- immediate load 0 in al > 8: 84 c0 test %al,%al > a: 75 07 jne 13 why not replace the mov+test with "xor %eax,%eax" and then change the 0x75 to a 0x74 to change from jne to je when you want to enable the marker? i.e. disabled: 31 c0 xor %eax,%eax 75 07 jne 13 enabled: 31 c0 xor %eax,%eax 74 07 je 13 it would save 2 bytes, 1 instruction and avoid partial register writes... and still has the nice property that a single byte store into the code is required for enable/disable (which sounds like a great property -- i assume you were deliberately going for that). i assume there's probably no reason to tie the sequence to eax either -- you could let gcc choose it (or maybe you already do). -dean - 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/