public inbox for systemtap@sourceware.org
 help / color / mirror / Atom feed
From: Mathieu Desnoyers <compudj@krystal.dyndns.org>
To: dean gaudet <dean@arctic.org>
Cc: Martin Bligh <mbligh@google.com>,
	  "Frank Ch. Eigler" <fche@redhat.com>,
	  Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>,
	  prasanna@in.ibm.com, Andrew Morton <akpm@osdl.org>,
	  Ingo Molnar <mingo@elte.hu>, Paul Mundt <lethal@linux-sh.org>,
	  linux-kernel <linux-kernel@vger.kernel.org>,
	  Jes Sorensen <jes@sgi.com>, Tom Zanussi <zanussi@us.ibm.com>,
	  Richard J Moore <richardj_moore@uk.ibm.com>,
	  Michel Dagenais <michel.dagenais@polymtl.ca>,
	  Christoph Hellwig <hch@infradead.org>,
	  Greg Kroah-Hartman <gregkh@suse.de>,
	  Thomas Gleixner <tglx@linutronix.de>,
	  William Cohen <wcohen@redhat.com>,
	ltt-dev@shafik.org,   systemtap@sources.redhat.com,
	Alan Cox <alan@lxorguk.ukuu.org.uk>,
	  Jeremy Fitzhardinge <jeremy@goop.org>,
	  Karim Yaghmour <karim@opersys.com>,
	Pavel Machek <pavel@suse.cz>,   Joe Perches <joe@perches.com>,
	"Randy.Dunlap" <rdunlap@xenotime.net>,
	  "Jose R. Santos" <jrs@us.ibm.com>
Subject: Re: Performance analysis of Linux Kernel Markers 0.20 for 2.6.17
Date: Tue, 10 Oct 2006 13:58:00 -0000	[thread overview]
Message-ID: <20061010131729.GC6200@Krystal> (raw)
In-Reply-To: <Pine.LNX.4.64.0610081223150.28503@twinlark.arctic.org>

* dean gaudet (dean@arctic.org) wrote:
> 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 <my_open+0x13>
> 
> 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).
> 
Hi dean,

Yes, good idea. I effectively did the 1 byte write to make sure it could be
coherent for any code alignment on the machine. The only problem with modifying
the jne into a je is this : How can we take a pointer to this assembly
instruction when it is generated by gcc ? We can always search for an
instruction pattern after the inline assembly, but we have no guarantee that
gcc will not put any code between the inline asm and the actual jne.

Mathieu

OpenPGP public key:              http://krystal.dyndns.org:8080/key/compudj.gpg
Key fingerprint:     8CD5 52C3 8E3C 4140 715F  BA06 3F25 A8FE 3BAE 9A68 

      parent reply	other threads:[~2006-10-10 13:58 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-09-30 18:02 Mathieu Desnoyers
     [not found] ` <1159642933.2355.1.camel@entropy>
2006-10-01  3:47   ` Mathieu Desnoyers
     [not found]     ` <1159676382.2355.13.camel@entropy>
2006-10-01 15:44       ` Mathieu Desnoyers
     [not found]         ` <1159747060.2355.21.camel@entropy>
2006-10-02  0:18           ` Mathieu Desnoyers
2006-10-02  0:53             ` Nicholas Miell
2006-10-02 14:42 ` [UPDATE] " Mathieu Desnoyers
     [not found] ` <45212F1E.3080409@us.ibm.com>
2006-10-02 15:44   ` Mathieu Desnoyers
     [not found] ` <Pine.LNX.4.64.0610081223150.28503@twinlark.arctic.org>
2006-10-10 13:58   ` Mathieu Desnoyers [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20061010131729.GC6200@Krystal \
    --to=compudj@krystal.dyndns.org \
    --cc=akpm@osdl.org \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=dean@arctic.org \
    --cc=fche@redhat.com \
    --cc=gregkh@suse.de \
    --cc=hch@infradead.org \
    --cc=jeremy@goop.org \
    --cc=jes@sgi.com \
    --cc=joe@perches.com \
    --cc=jrs@us.ibm.com \
    --cc=karim@opersys.com \
    --cc=lethal@linux-sh.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=ltt-dev@shafik.org \
    --cc=masami.hiramatsu.pt@hitachi.com \
    --cc=mbligh@google.com \
    --cc=michel.dagenais@polymtl.ca \
    --cc=mingo@elte.hu \
    --cc=pavel@suse.cz \
    --cc=prasanna@in.ibm.com \
    --cc=rdunlap@xenotime.net \
    --cc=richardj_moore@uk.ibm.com \
    --cc=systemtap@sources.redhat.com \
    --cc=tglx@linutronix.de \
    --cc=wcohen@redhat.com \
    --cc=zanussi@us.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).