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
..
irq
IRQ_NOPROBE helper functions
2008-02-08 09:22:42 -08:00
power
PM: documentation cleanups
2008-02-07 01:27:17 -05:00
time
ntp: correct inconsistent interval/tick_length usage
2008-02-10 10:48:03 +01:00
.gitignore
Update kernel/.gitignore with new auto-generated files
2008-02-09 23:27:01 -08:00
acct.c
audit.c
[AUDIT] ratelimit printk messages audit
2008-02-01 14:25:04 -05:00
audit.h
audit_tree.c
auditfilter.c
[AUDIT] make audit=0 really stop audit messages
2008-02-01 14:24:33 -05:00
auditsc.c
[AUDIT] create context if auditing was ever enabled
2008-02-01 14:24:45 -05:00
backtracetest.c
x86: add a simple backtrace test module
2008-01-30 13:33:08 +01:00
capability.c
Add 64-bit capability support to the kernel
2008-02-05 09:44:20 -08:00
cgroup.c
Handle pid namespaces in cgroups code
2008-02-07 08:42:22 -08:00
cgroup_debug.c
compat.c
hrtimer: don't modify restart_block->fn in restart functions
2008-02-10 10:48:03 +01:00
configs.c
cpu.c
cpu: fix section mismatch warnings for enable_nonboot_cpus
2008-02-08 09:22:41 -08:00
cpuset.c
proc: seqfile convert proc_pid_status to properly handle pid namespaces
2008-02-08 09:22:24 -08:00
delayacct.c
dma.c
exec_domain.c
exit.c
kernel: remove fastcall in kernel/*
2008-02-08 09:22:31 -08:00
extable.c
module: Don't report discarded init pages as kernel text.
2008-01-29 17:13:18 +11:00
fork.c
kernel: remove fastcall in kernel/*
2008-02-08 09:22:31 -08:00
futex.c
futex: Add bitset conditional wait/wakeup functionality
2008-02-01 17:45:14 +01:00
futex_compat.c
futex: Add bitset conditional wait/wakeup functionality
2008-02-01 17:45:14 +01:00
hrtimer.c
hrtimer: don't modify restart_block->fn in restart functions
2008-02-10 10:48:03 +01:00
itimer.c
ITIMER_REAL: convert to use struct pid
2008-02-08 09:22:29 -08:00
kallsyms.c
remove support for un-needed _extratext section
2008-02-06 10:41:01 -08:00
Kconfig.hz
sched: high-res preemption tick
2008-01-25 21:08:29 +01:00
Kconfig.preempt
sched: remove the !PREEMPT_BKL code
2008-01-25 21:08:33 +01:00
kexec.c
vmcoreinfo: add "VMCOREINFO_" to all the call for vmcoreinfo_append_str()
2008-02-07 08:42:25 -08:00
kfifo.c
kmod.c
kprobes.c
kprobes: kretprobe user entry-handler
2008-02-06 10:41:11 -08:00
ksysfs.c
kthread.c
sched: fix, always create kernel threads with normal priority
2008-01-25 21:08:33 +01:00
latencytop.c
sched: latencytop support
2008-01-25 21:08:34 +01:00
lockdep.c
lockdep_internals.h
lockdep_proc.c
Makefile
avoid overflows in kernel/time.c
2008-02-08 09:22:39 -08:00
marker.c
Linux Kernel Markers: support multiple probes
2008-02-13 16:21:20 -08:00
module.c
Linux Kernel Markers: support multiple probes
2008-02-13 16:21:20 -08:00
mutex-debug.c
kernel: remove fastcall in kernel/*
2008-02-08 09:22:31 -08:00
mutex-debug.h
mutex.c
kernel: remove fastcall in kernel/*
2008-02-08 09:22:31 -08:00
mutex.h
notifier.c
kernel/notifier.c should #include <linux/reboot.h>
2008-02-06 10:41:02 -08:00
ns_cgroup.c
nsproxy.c
namespaces: move the IPC namespace under IPC_NS option
2008-02-08 09:22:23 -08:00
panic.c
ACPI: Taint kernel on ACPI table override (format corrected)
2008-02-06 22:07:51 -05:00
params.c
Add new string functions strict_strto* and convert kernel params to use them
2008-02-08 09:22:41 -08:00
pid.c
kernel: remove fastcall in kernel/*
2008-02-08 09:22:31 -08:00
pid_namespace.c
namespaces: cleanup the code managed with PID_NS option
2008-02-08 09:22:23 -08:00
pm_qos_params.c
pm qos infrastructure and interface
2008-02-05 09:44:22 -08:00
posix-cpu-timers.c
Use find_task_by_vpid in posix timers
2008-02-08 09:22:41 -08:00
posix-timers.c
hrtimer: fix *rmtp handling in hrtimer_nanosleep()
2008-02-10 10:48:03 +01:00
printk.c
printk_ratelimit() functions should use CONFIG_PRINTK
2008-02-08 09:22:39 -08:00
profile.c
Nuke a duplicate include from profile.c
2008-02-08 09:22:34 -08:00
ptrace.c
ptrace_check_attach: remove unneeded ->signal != NULL check
2008-02-08 09:22:26 -08:00
rcuclassic.c
Preempt-RCU: implementation
2008-01-25 21:08:24 +01:00
rcupdate.c
rcupdate: fix comment
2008-02-13 16:21:18 -08:00
rcupreempt.c
Preempt-RCU: CPU Hotplug handling
2008-01-25 21:08:25 +01:00
rcupreempt_trace.c
Preempt-RCU: implementation
2008-01-25 21:08:24 +01:00
rcutorture.c
relay.c
relay: nopage
2008-02-06 10:41:07 -08:00
res_counter.c
Memory controller improve user interface
2008-02-07 08:42:18 -08:00
resource.c
[POWERPC] Add arch-specific walk_memory_remove() for 64-bit powerpc
2008-02-08 19:52:48 +11:00
rtmutex-debug.c
Don't operate with pid_t in rtmutex tester
2008-02-08 09:22:41 -08:00
rtmutex-debug.h
rtmutex-tester.c
rtmutex.c
hrtimer: more hrtimer_init_sleeper() fallout.
2008-02-13 15:45:36 +01:00
rtmutex.h
rtmutex_common.h
Don't operate with pid_t in rtmutex tester
2008-02-08 09:22:41 -08:00
rwsem.c
sched.c
sched: rt-group: refure unrunnable tasks
2008-02-13 15:45:40 +01:00
sched_debug.c
sched: keep total / count stats in addition to the max for
2008-01-25 21:08:35 +01:00
sched_fair.c
sched: let +nice tasks have smaller impact
2008-01-31 22:45:22 +01:00
sched_idletask.c
sched: high-res preemption tick
2008-01-25 21:08:29 +01:00
sched_rt.c
sched: rt-group: make rt groups scheduling configurable
2008-02-13 15:45:40 +01:00
sched_stats.h
seccomp.c
signal.c
remove final fastcall users
2008-02-13 16:21:18 -08:00
softirq.c
kernel: remove fastcall in kernel/*
2008-02-08 09:22:31 -08:00
softlockup.c
debug: softlockup looping fix
2008-02-02 14:27:45 +11:00
spinlock.c
spinlock: lockbreak cleanup
2008-01-30 13:31:20 +01:00
srcu.c
make srcu_readers_active() static
2008-02-06 10:41:02 -08:00
stacktrace.c
stop_machine.c
stopmachine: semaphore to mutex
2008-02-06 10:41:08 -08:00
sys.c
Pidns: make full use of xxx_vnr() calls
2008-02-08 09:22:29 -08:00
sys_ni.c
timerfd: new timerfd API
2008-02-05 09:44:07 -08:00
sysctl.c
hugetlb: fix overcommit locking
2008-02-13 16:21:18 -08:00
sysctl_check.c
constify tables in kernel/sysctl_check.c
2008-02-08 09:22:31 -08:00
taskstats.c
test_kprobes.c
kprobes: kretprobe user entry-handler
2008-02-06 10:41:11 -08:00
time.c
avoid overflows in kernel/time.c
2008-02-08 09:22:39 -08:00
timeconst.pl
timeconst.pl: correct reversal of USEC_TO_HZ and HZ_TO_USEC
2008-02-12 14:29:26 -08:00
timer.c
kernel: remove fastcall in kernel/*
2008-02-08 09:22:31 -08:00
tsacct.c
uid16.c
user.c
sched: rt-group: make rt groups scheduling configurable
2008-02-13 15:45:40 +01:00
user_namespace.c
namespaces: cleanup the code managed with the USER_NS option
2008-02-08 09:22:23 -08:00
utsname.c
utsname_sysctl.c
wait.c
kernel: remove fastcall in kernel/*
2008-02-08 09:22:31 -08:00
workqueue.c
workqueue: make delayed_work_timer_fn() static
2008-02-08 09:22:37 -08:00