linux/arch
Mathieu Desnoyers fb40bd78b0 Linux Kernel Markers: support multiple probes
RCU style multiple probes support for the Linux Kernel Markers.  Common case
(one probe) is still fast and does not require dynamic allocation or a
supplementary pointer dereference on the fast path.

- Move preempt disable from the marker site to the callback.

Since we now have an internal callback, move the preempt disable/enable to the
callback instead of the marker site.

Since the callback change is done asynchronously (passing from a handler that
supports arguments to a handler that does not setup the arguments is no
arguments are passed), we can safely update it even if it is outside the
preempt disable section.

- Move probe arm to probe connection. Now, a connected probe is automatically
  armed.

Remove MARK_MAX_FORMAT_LEN, unused.

This patch modifies the Linux Kernel Markers API : it removes the probe
"arm/disarm" and changes the probe function prototype : it now expects a
va_list * instead of a "...".

If we want to have more than one probe connected to a marker at a given
time (LTTng, or blktrace, ssytemtap) then we need this patch. Without it,
connecting a second probe handler to a marker will fail.

It allow us, for instance, to do interesting combinations :

Do standard tracing with LTTng and, eventually, to compute statistics
with SystemTAP, or to have a special trigger on an event that would call
a systemtap script which would stop flight recorder tracing.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Cc: Christoph Hellwig <hch@infradead.org>
Cc: Mike Mason <mmlnx@us.ibm.com>
Cc: Dipankar Sarma <dipankar@in.ibm.com>
Cc: David Smith <dsmith@redhat.com>
Cc: "Paul E. McKenney" <paulmck@us.ibm.com>
Cc: "Frank Ch. Eigler" <fche@redhat.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-02-13 16:21:20 -08:00
..
alpha xtime_lock vs update_process_times 2008-02-13 13:29:25 -08:00
arm Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm 2008-02-10 14:09:44 -08:00
avr32 ide: introduce HAVE_IDE 2008-02-09 10:46:40 +01:00
blackfin xtime_lock vs update_process_times 2008-02-13 13:29:25 -08:00
cris ide: introduce HAVE_IDE 2008-02-09 10:46:40 +01:00
frv xtime_lock vs update_process_times 2008-02-13 13:29:25 -08:00
h8300 ide: introduce HAVE_IDE 2008-02-09 10:46:40 +01:00
ia64 [IA64] Fix build for sim_defconfig 2008-02-11 13:23:46 -08:00
m32r ide: introduce HAVE_IDE 2008-02-09 10:46:40 +01:00
m68k ide: introduce HAVE_IDE 2008-02-09 10:46:40 +01:00
m68knommu xtime_lock vs update_process_times 2008-02-13 13:29:25 -08:00
mips ide: introduce HAVE_IDE 2008-02-09 10:46:40 +01:00
mn10300 mn10300: add platform MTD support for the ASB2303 board 2008-02-08 09:22:30 -08:00
parisc ide: introduce HAVE_IDE 2008-02-09 10:46:40 +01:00
powerpc Linux Kernel Markers: support multiple probes 2008-02-13 16:21:20 -08:00
ppc ide: introduce HAVE_IDE 2008-02-09 10:46:40 +01:00
s390 [S390] dynamic page tables. 2008-02-09 18:24:41 +01:00
sh xtime_lock vs update_process_times 2008-02-13 13:29:25 -08:00
sparc xtime_lock vs update_process_times 2008-02-13 13:29:25 -08:00
sparc64 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6 2008-02-09 23:28:26 -08:00
um uml: make mconsole_stack namespace-aware 2008-02-05 09:44:32 -08:00
v850 ide: introduce HAVE_IDE 2008-02-09 10:46:40 +01:00
x86 x86: pit_clockevent can be static 2008-02-13 16:20:35 +01:00
xtensa ide: introduce HAVE_IDE 2008-02-09 10:46:40 +01:00
.gitignore arch: Ignore arch/i386 and arch/x86_64 2008-01-19 21:29:39 -08:00
Kconfig Move Kconfig.instrumentation to arch/Kconfig and init/Kconfig 2008-02-03 08:58:08 +01:00