fb40bd78b0
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> |
||
---|---|---|
.. | ||
spufs | ||
axon_msi.c | ||
cbe_cpufreq_pervasive.c | ||
cbe_cpufreq_pmi.c | ||
cbe_cpufreq.c | ||
cbe_cpufreq.h | ||
cbe_regs.c | ||
cbe_thermal.c | ||
interrupt.c | ||
interrupt.h | ||
io-workarounds.c | ||
iommu.c | ||
Kconfig | ||
Makefile | ||
pervasive.c | ||
pervasive.h | ||
pmu.c | ||
ras.c | ||
ras.h | ||
setup.c | ||
smp.c | ||
spider-pic.c | ||
spu_base.c | ||
spu_callbacks.c | ||
spu_fault.c | ||
spu_manage.c | ||
spu_notify.c | ||
spu_priv1_mmio.c | ||
spu_priv1_mmio.h | ||
spu_syscalls.c |