public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Ingo Molnar <mingo@elte.hu>
To: "Frank Ch. Eigler" <fche@redhat.com>
Cc: Paul Mundt <lethal@linux-sh.org>,
	Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	Jes Sorensen <jes@sgi.com>, Andrew Morton <akpm@osdl.org>,
	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>,
	"Martin J. Bligh" <mbligh@mbligh.org>
Subject: Re: tracepoint maintainance models
Date: Mon, 18 Sep 2006 17:02:31 +0200	[thread overview]
Message-ID: <20060918150231.GA8197@elte.hu> (raw)
In-Reply-To: <20060918122527.GC3951@redhat.com>


* Frank Ch. Eigler <fche@redhat.com> wrote:

> > For dynamic tracers no such 'parameter preparation' instructions 
> > would need to be generated by gcc.  (thus for example the runtime 
> > overhead would be lower for inactive tracepoints)
> 
> Any such additional code would be small, plus if properly marked up 
> with unlikely() and compiled with -freorder-blocks, it would all be 
> out-of-line.  This small cost could be worth the added benefit of 
> systemtap being able to probe that point without debugging information 
> present, and avoiding its slow & deliberate way of accessing 
> target-side variables like $x.  (The slow & deliberate part comes in 
> from the need to check any pointer dereferences involved.)

yeah, agreed. It seems Mathieu agrees that more synergy between 
SystemTap and LTTng is possible and desirable, so i think that's a good 
basis to step forward: lets figure out an API for static markups. 

The current LTTng static markup APIs have the following form and 
distribution:

     82 trace_kernel_trap_exit
     35 trace_kernel_trap_entry
      8 trace_real_syscall_exit
      8 trace_real_syscall_entry
      7 trace_kernel_arch_syscall_entry
      6 trace_kernel_stack_dump
      6 trace_kernel_arch_syscall_exit
      5 trace_process_kernel_thread
      5 trace_ipc_call
      3 trace_process_stack_dump
      3 trace_kernel_irq_exit
      3 trace_kernel_irq_entry
      3 trace_fs_write
      3 trace_fs_read
      2 trace_timer_expired
      2 trace_locking_irq_save
      2 trace_locking_irq_restore
      2 trace_locking_irq_enable
      2 trace_locking_irq_disable
      2 trace_kernel_tasklet_exit
      2 trace_kernel_tasklet_entry
      2 trace_fs_seek
      2 trace_fs_exec
      2 t_log_event
      1 trace_timer_softirq
      1 trace_timer_set_timer
      1 trace_timer_set_itimer
      1 trace_statedump_enumerate_modules
      1 trace_statedump_enumerate_interrupts
      1 trace_socket_sendmsg
      1 trace_socket_recvmsg
      1 trace_socket_create
      1 trace_socket_call
      1 trace_real_syscall32_entry
      1 trace_process_wakeup
      1 trace_process_signal
      1 trace_process_schedchange
      1 trace_process_kernel_thread__
      1 trace_network_packet_out
      1 trace_network_packet_in
      1 trace_network_ip_interface_dev_up
      1 trace_network_ip_interface_dev_down
      1 trace_memory_swap_out
      1 trace_memory_swap_in
      1 trace_memory_page_wait_start
      1 trace_memory_page_wait_end
      1 trace_memory_page_free
      1 trace_memory_page_alloc
      1 trace_kernel_soft_irq_exit
      1 trace_kernel_soft_irq_entry
      1 trace_ipc_shm_create
      1 trace_ipc_sem_create
      1 trace_ipc_msg_create
      1 trace_fs_select
      1 trace_fs_poll
      1 trace_fs_open
      1 trace_fs_ioctl
      1 trace_fs_data_write
      1 trace_fs_data_read
      1 trace_fs_close
      1 trace_fs_buf_wait_start
      1 trace_fs_buf_wait_end

that's 235 markups (i'm sure the list has a few false positives, but 
this is the rough histogram).

Right now the name and type of the event is encoded in the trace 
function name, which i dont really like. I think markups are less 
intrusive visually in the following form:

	MARK(trace_fs_data_read, fd, count, len, buf);

but no strong feelings either way.

also, there should be only a single switch for markups: either all of 
them are compiled in or none of them. That simplifies the support 
picture and gets rid of some ugly #ifdefs. Distro kernels will likely 
enable all of thems, so there will be nice uniformity all across.

	Ingo

  reply	other threads:[~2006-09-18 15:11 UTC|newest]

Thread overview: 82+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-09-17  9:40 The emperor is naked: why *comprehensive* static markup belongs in mainline Karim Yaghmour
2006-09-17 11:21 ` Paul Mundt
2006-09-17 14:36   ` tracepoint maintainance models Ingo Molnar
2006-09-17 15:02     ` Roman Zippel
2006-09-17 15:09       ` Ingo Molnar
2006-09-17 17:18         ` Roman Zippel
2006-09-17 23:27           ` Ingo Molnar
2006-09-17 23:41           ` Ingo Molnar
2006-09-18  0:17             ` Roman Zippel
2006-09-18  9:01               ` Jes Sorensen
2006-09-17 20:37         ` Roman Zippel
2006-09-17 22:34           ` Ingo Molnar
2006-09-17 15:36     ` Mathieu Desnoyers
2006-09-18  0:07       ` Ingo Molnar
2006-09-18  1:12         ` Karim Yaghmour
2006-09-18  1:13           ` Ingo Molnar
2006-09-18  2:32             ` Karim Yaghmour
2006-09-18  2:57               ` Ingo Molnar
2006-09-18  3:54                 ` Karim Yaghmour
2006-09-18  4:09                   ` Ingo Molnar
2006-09-18  4:43                     ` Karim Yaghmour
2006-09-18  2:43             ` Mathieu Desnoyers
2006-09-18  3:21               ` Ingo Molnar
2006-09-18  4:26                 ` Mathieu Desnoyers
2006-09-18  5:08                   ` Ingo Molnar
2006-09-18 12:25             ` Frank Ch. Eigler
2006-09-18 15:02               ` Ingo Molnar [this message]
2006-09-18 15:45                 ` Mathieu Desnoyers
2006-09-18 15:48                 ` Alan Cox
2006-09-18 15:22                   ` Ingo Molnar
2006-09-18 16:19                     ` Alan Cox
2006-09-18 16:15                       ` Ingo Molnar
2006-09-18 17:02                         ` Alan Cox
2006-09-18 16:15                       ` Frank Ch. Eigler
2006-09-18 17:02                         ` Alan Cox
2006-09-18 17:27                           ` Frank Ch. Eigler
2006-09-18 18:04                             ` Alan Cox
2006-09-18 17:54                               ` Martin Bligh
2006-09-18 18:05                               ` Frank Ch. Eigler
2006-09-18 19:10                           ` Vara Prasad
2006-09-18 19:49                             ` Alan Cox
2006-09-18 19:39                               ` Frank Ch. Eigler
2006-09-18 20:28                               ` Vara Prasad
2006-10-06  5:33                                 ` Steven Rostedt
2006-10-06 13:01                                   ` Frank Ch. Eigler
2006-10-06 14:23                                     ` Steven Rostedt
2006-10-06 23:17                                   ` Jeremy Fitzhardinge
2006-09-18 15:47                   ` Frank Ch. Eigler
2006-09-18 15:42                     ` Ingo Molnar
2006-09-18 16:30                 ` MARKER mechanism, try 2 Mathieu Desnoyers
2006-09-18 16:28                   ` Ingo Molnar
2006-09-18 17:47                     ` Mathieu Desnoyers
2006-09-18 19:39                       ` Alan Cox
2006-09-17 20:19     ` tracepoint maintainance models Nicholas Miell
2006-09-17 23:06       ` Ingo Molnar
2006-09-18  0:05         ` Roman Zippel
2006-09-18  1:52           ` Theodore Tso
2006-09-19 12:58           ` tracing - consensus building insteat of dogfights Christoph Hellwig
2006-09-19 13:25             ` Roman Zippel
2006-09-19 13:45             ` Karim Yaghmour
2006-09-19 14:25               ` Karim Yaghmour
2006-09-18  0:10         ` tracepoint maintainance models Nicholas Miell
2006-09-18  0:43           ` Roman Zippel
2006-09-18  0:56         ` Karim Yaghmour
2006-09-18  0:56           ` Ingo Molnar
2006-09-18  2:09             ` Karim Yaghmour
2006-09-18  3:30               ` Ingo Molnar
2006-09-18  3:52                 ` Theodore Tso
2006-09-18  4:11                   ` Ingo Molnar
2006-09-18  4:24                   ` Karim Yaghmour
2006-09-18  4:32                     ` Ingo Molnar
2006-09-18  5:03                       ` LTTng and SystemTAP (Everyone who is scared to read this huge thread, skip to here) Mathieu Desnoyers
2006-09-18 15:11                         ` Ingo Molnar
2006-09-23 15:50                           ` Mathieu Desnoyers
2006-09-18  5:37                       ` tracepoint maintainance models Karim Yaghmour
2006-09-18 20:12                   ` Michel Dagenais
2006-09-18  4:14                 ` Karim Yaghmour
2006-09-18  4:09                   ` Ingo Molnar
2006-09-18  4:57                     ` Karim Yaghmour
2006-09-18  1:03   ` The emperor is naked: why *comprehensive* static markup belongs in mainline Karim Yaghmour
2006-09-18 15:53 ` Jose R. Santos
2006-09-18 17:28   ` Karim Yaghmour

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=20060918150231.GA8197@elte.hu \
    --to=mingo@elte.hu \
    --cc=akpm@osdl.org \
    --cc=fche@redhat.com \
    --cc=gregkh@suse.de \
    --cc=hch@infradead.org \
    --cc=jes@sgi.com \
    --cc=lethal@linux-sh.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mathieu.desnoyers@polymtl.ca \
    --cc=mbligh@mbligh.org \
    --cc=michel.dagenais@polymtl.ca \
    --cc=richardj_moore@uk.ibm.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