From: Jason Baron <jbaron@redhat.com> Date: Thu, 26 Mar 2009 22:09:53 -0400 Subject: [trace] remove kernel-trace.c Message-id: 200903270209.n2R29rPs029022@ns3.rdu.redhat.com O-Subject: [RHEL 5.4 PATCH 02/10] -remove kernel-trace.c. Bugzilla: 465543 Since Systemtap now supports tracepoints directly, we no longer need the marker translation layer. Remove it. diff --git a/init/Kconfig b/init/Kconfig index cac65e2..ee0f018 100644 --- a/init/Kconfig +++ b/init/Kconfig @@ -426,14 +426,6 @@ config MARKERS Place an empty function call at each marker site. Can be dynamically changed for a probe function. -config TRACEPROBES - tristate "Compile generic tracing probes" - depends on MARKERS && TRACEPOINTS - help - Compile generic tracing probes, which connect to the tracepoints when - loaded and format the information collected by the tracepoints with - the Markers. - endmenu # General setup config RT_MUTEXES diff --git a/kernel/Makefile b/kernel/Makefile index 14b5772..f1c92c2 100644 --- a/kernel/Makefile +++ b/kernel/Makefile @@ -54,7 +54,6 @@ obj-$(CONFIG_TRACEPOINTS) += tracepoint.o obj-$(CONFIG_UTRACE) += utrace.o obj-$(CONFIG_PTRACE) += ptrace.o obj-$(CONFIG_MARKERS) += marker.o -obj-$(CONFIG_TRACEPROBES) += kernel-trace.o ifneq ($(CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER),y) # According to Alan Modra <alan@linuxcare.com.au>, the -fno-omit-frame-pointer is diff --git a/kernel/kernel-trace.c b/kernel/kernel-trace.c deleted file mode 100644 index 9b211f8..0000000 --- a/kernel/kernel-trace.c +++ /dev/null @@ -1,202 +0,0 @@ -/* - * kernel/kernel-trace.c - * - * kernel tracepoint probes. - */ - -#include <linux/autoconf.h> -#include <linux/module.h> -#include <trace/sched.h> -#include <trace/irq.h> - -static void probe_irq_entry(unsigned int id, struct pt_regs *regs) -{ - trace_mark(kernel_irq_entry, "irq_id %u kernel_mode %u", id, - (regs)?(!user_mode(regs)):(1)); -} - -static void probe_irq_exit(unsigned int id, irqreturn_t retval) -{ - trace_mark(kernel_irq_exit, "irq_id %u retval %ld", id, (long)retval); -} - -static void probe_activate_task(struct task_struct *p, struct rq *rq) -{ - trace_mark(kernel_activate_task, "pid %d state %ld cpu_id %u", - p->pid, p->state, task_cpu(p)); -} - -static void probe_deactivate_task(struct task_struct *p, struct rq *rq) -{ - trace_mark(kernel_deactivate_task, "pid %d state %ld cpu_id %u", - p->pid, p->state, task_cpu(p)); -} - -static void probe_sched_wakeup(struct rq *rq, struct task_struct *p) -{ - trace_mark(kernel_sched_wakeup, "pid %d state %ld cpu_id %u", - p->pid, p->state, task_cpu(p)); -} - -static void probe_sched_wakeup_new(struct rq *rq, struct task_struct *p) -{ - trace_mark(kernel_sched_wakeup_new, "pid %d state %ld cpu_id %u", - p->pid, p->state, task_cpu(p)); -} - -static void probe_sched_switch(struct rq *rq, struct task_struct *prev, - struct task_struct *next) -{ - trace_mark(kernel_sched_switch, - "prev_pid %d next_pid %d prev_state %ld prev_prio %d " - "next_prio %d", - prev->pid, next->pid, prev->state, prev->prio, next->prio); -} - -static void probe_softirq_entry(struct softirq_action *h, - struct softirq_action *softirq_vec) -{ - trace_mark(kernel_softirq_entry, "softirq_id %lu func %p", - ((unsigned long)h - (unsigned long)softirq_vec) / sizeof(*h), - (void *)h->action); -} - -static void probe_softirq_exit(struct softirq_action *h, - struct softirq_action *softirq_vec) -{ - trace_mark(kernel_softirq_exit, "softirq_id %lu", - ((unsigned long)h - (unsigned long)softirq_vec) / sizeof(*h)); -} - -static void probe_tasklet_low_entry(struct tasklet_struct *t) -{ - trace_mark(kernel_tasklet_low_entry, "func %p data %lu", - t->func, t->data); -} - -static void probe_tasklet_low_exit(struct tasklet_struct *t) -{ - trace_mark(kernel_tasklet_low_exit, "func %p data %lu", - t->func, t->data); -} - -static void probe_tasklet_high_entry(struct tasklet_struct *t) -{ - trace_mark(kernel_tasklet_high_entry, "func %p data %lu", - t->func, t->data); -} - -static void probe_tasklet_high_exit(struct tasklet_struct *t) -{ - trace_mark(kernel_tasklet_high_exit, "func %p data %lu", - t->func, t->data); -} - -static void probe_process_free(struct task_struct *p) -{ - trace_mark(kernel_process_free, "pid %d", p->pid); -} - -static void probe_process_exit(struct task_struct *p) -{ - trace_mark(kernel_process_exit, "pid %d", p->pid); -} - -static void probe_process_wait(pid_t pid) -{ - trace_mark(kernel_process_wait, "pid %d", (int)pid); -} - -static void probe_process_fork(struct task_struct *parent, - struct task_struct *child) -{ - trace_mark(kernel_process_fork, - "parent_pid %d child_pid %d child_tgid %d", - parent->pid, child->pid, child->tgid); -} - -int __init kernel_trace_init(void) -{ - int ret; - - ret = register_trace_irq_entry(probe_irq_entry); - WARN_ON(ret); - ret = register_trace_irq_exit(probe_irq_exit); - WARN_ON(ret); - ret = register_trace_activate_task( - probe_activate_task); - WARN_ON(ret); - ret = register_trace_deactivate_task( - probe_deactivate_task); - WARN_ON(ret); - ret = register_trace_sched_wakeup( - probe_sched_wakeup); - WARN_ON(ret); - ret = register_trace_sched_wakeup_new( - probe_sched_wakeup_new); - WARN_ON(ret); - ret = register_trace_sched_switch( - probe_sched_switch); - WARN_ON(ret); - ret = register_trace_irq_softirq_entry(probe_softirq_entry); - WARN_ON(ret); - ret = register_trace_irq_softirq_exit(probe_softirq_exit); - WARN_ON(ret); - ret = register_trace_irq_tasklet_low_entry( - probe_tasklet_low_entry); - WARN_ON(ret); - ret = register_trace_irq_tasklet_low_exit( - probe_tasklet_low_exit); - WARN_ON(ret); - ret = register_trace_irq_tasklet_high_entry( - probe_tasklet_high_entry); - WARN_ON(ret); - ret = register_trace_irq_tasklet_high_exit( - probe_tasklet_high_exit); - WARN_ON(ret); - ret = register_trace_sched_process_free(probe_process_free); - WARN_ON(ret); - ret = register_trace_sched_process_exit(probe_process_exit); - WARN_ON(ret); - ret = register_trace_sched_process_wait(probe_process_wait); - WARN_ON(ret); - ret = register_trace_sched_process_fork(probe_process_fork); - WARN_ON(ret); - - return 0; -} - -module_init(kernel_trace_init); - -void __exit kernel_trace_exit(void) -{ - unregister_trace_sched_process_fork(probe_process_fork); - unregister_trace_sched_process_wait(probe_process_wait); - unregister_trace_sched_process_exit(probe_process_exit); - unregister_trace_sched_process_free(probe_process_free); - unregister_trace_irq_tasklet_high_exit( - probe_tasklet_high_exit); - unregister_trace_irq_tasklet_high_entry( - probe_tasklet_high_entry); - unregister_trace_irq_tasklet_low_exit( - probe_tasklet_low_exit); - unregister_trace_irq_tasklet_low_entry( - probe_tasklet_low_entry); - unregister_trace_irq_softirq_exit(probe_softirq_exit); - unregister_trace_irq_softirq_entry(probe_softirq_entry); - unregister_trace_sched_switch(probe_sched_switch); - unregister_trace_sched_wakeup_new( - probe_sched_wakeup_new); - unregister_trace_sched_wakeup( - probe_sched_wakeup); - unregister_trace_deactivate_task(probe_deactivate_task); - unregister_trace_activate_task(probe_activate_task); - unregister_trace_irq_exit(probe_irq_exit); - unregister_trace_irq_entry(probe_irq_entry); -} - -module_exit(kernel_trace_exit); - -MODULE_LICENSE("GPL"); -MODULE_AUTHOR("Mathieu Desnoyers"); -MODULE_DESCRIPTION("kernel Tracepoint Probes");