Files
linux-kernel-test/include/linux
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
..
2008-01-28 14:54:13 -08:00
2008-02-06 10:41:15 -08:00
2008-02-07 08:42:23 -08:00
2008-02-05 09:44:13 -08:00
2008-02-10 18:11:16 -05:00
2007-12-26 19:36:35 -08:00
2008-02-05 03:20:13 -08:00
2008-02-06 10:41:02 -08:00
2008-01-23 05:24:15 -05:00
2008-01-28 15:00:14 -08:00
2008-02-08 12:41:03 +01:00
2008-01-29 21:55:15 +01:00
2008-01-28 14:54:10 -08:00
2008-02-03 17:45:46 +02:00
2008-01-28 23:21:18 +01:00
2008-01-28 23:21:18 +01:00
2008-01-25 21:08:02 +01:00
2008-01-30 13:31:10 +01:00
2008-02-03 17:45:46 +02:00
2008-02-03 15:42:53 +02:00
2008-02-08 02:09:56 +00:00
2008-02-08 09:22:24 -08:00
2008-02-07 08:42:30 -08:00
2008-01-28 23:21:18 +01:00
2008-02-03 17:45:46 +02:00
2008-01-25 21:08:33 +01:00
2008-02-03 15:42:53 +02:00
2008-01-28 14:51:22 +01:00
2008-02-05 09:44:19 -08:00
2008-01-30 13:30:27 +01:00
2008-02-13 16:21:18 -08:00
2008-02-07 20:39:44 -05:00
2008-01-27 18:14:52 +01:00
2008-02-11 09:20:50 -08:00
2008-02-01 16:13:16 -05:00
2008-01-28 15:08:27 -08:00
2008-01-28 15:07:58 -08:00
2008-01-28 15:07:57 -08:00
2008-01-28 14:55:09 -08:00
2008-01-28 14:55:09 -08:00
2008-02-06 22:39:45 +01:00
2008-01-31 19:28:20 -08:00
2008-02-13 16:21:18 -08:00
2008-01-28 23:58:27 -05:00
2008-02-06 10:41:21 -08:00
2008-02-08 09:22:29 -08:00
2008-01-08 16:10:35 -08:00
2008-01-24 20:40:05 -08:00
2008-01-25 21:08:34 +01:00
2008-02-13 16:21:18 -08:00
2008-02-03 17:45:46 +02:00
2008-02-06 10:41:01 -08:00
2008-02-09 11:08:33 -08:00
2008-02-08 09:22:31 -08:00
2008-01-28 14:56:29 -08:00
2008-01-28 14:54:18 -08:00
2008-01-30 02:06:08 -05:00
2008-02-06 16:29:59 +11:00
2008-02-05 09:44:19 -08:00
2008-02-02 11:32:01 -08:00
2008-02-10 12:52:46 -08:00
2008-02-02 02:44:34 +03:00
2008-02-07 23:11:56 -08:00
2008-02-03 17:45:46 +02:00
2008-02-06 10:41:20 -08:00
2008-02-08 09:22:31 -08:00
2008-02-08 09:22:26 -08:00
2008-01-25 21:08:24 +01:00
2008-01-25 21:08:24 +01:00
2008-02-05 09:44:22 -08:00
2008-01-30 13:31:47 +01:00
2008-02-08 09:22:41 -08:00
2008-01-31 19:26:46 -08:00
2008-02-07 08:42:34 -08:00
2008-02-07 08:42:30 -08:00
2008-02-08 09:22:41 -08:00
2008-02-08 09:22:27 -08:00
2008-01-02 13:04:48 -08:00
2008-01-02 13:04:48 -08:00
2008-02-03 17:45:46 +02:00
2008-01-25 21:08:33 +01:00
2008-01-31 19:28:30 -08:00
2008-01-24 00:47:27 -05:00
2008-01-30 13:31:20 +01:00
2008-01-30 13:31:20 +01:00
2008-02-08 09:22:31 -08:00
2008-01-25 21:08:34 +01:00
2008-02-07 08:42:34 -08:00
2008-02-05 09:44:07 -08:00
2008-02-01 17:45:14 +01:00
2008-02-07 08:42:16 -08:00
2008-02-08 09:22:34 -08:00
2008-02-08 09:22:36 -08:00
2008-01-24 20:40:26 -08:00
2007-12-26 19:36:35 -08:00
2008-02-04 23:50:13 +11:00
2008-02-04 23:50:03 +11:00
2008-02-04 23:50:02 +11:00
2008-02-04 23:50:03 +11:00
2008-02-06 10:41:03 -08:00
2008-02-03 15:42:53 +02:00