diff options
author | David Smith <dsmith@redhat.com> | 2009-07-20 15:25:01 -0500 |
---|---|---|
committer | David Smith <dsmith@redhat.com> | 2009-07-20 15:25:01 -0500 |
commit | c8a44dea9630e500f1eb44cb7934217fb2212f4e (patch) | |
tree | dfd55664328796a060bee36b79c127fb00c69eb0 | |
parent | c3d506aed4f651a98d1afde2fe700822edf9e78e (diff) | |
download | systemtap-steved-c8a44dea9630e500f1eb44cb7934217fb2212f4e.tar.gz systemtap-steved-c8a44dea9630e500f1eb44cb7934217fb2212f4e.tar.xz systemtap-steved-c8a44dea9630e500f1eb44cb7934217fb2212f4e.zip |
Fixed PR 10386 by removing the need to convert a pid to a task.
* runtime/itrace.c (usr_itrace_init): Changed prototype to take a
task_struct instead of a pid.
* tapset-itrace.cxx (emit_module_decls): Updated usr_itrace_init() call.
* runtime/autoconf-find-task-pid.c: Removed, since only user_itrace_init()
was using it.
* buildrun.cxx (compile_pass): Removed autoconf-find-task-pid.c test.
-rw-r--r-- | buildrun.cxx | 1 | ||||
-rw-r--r-- | runtime/autoconf-find-task-pid.c | 6 | ||||
-rw-r--r-- | runtime/itrace.c | 15 | ||||
-rw-r--r-- | tapset-itrace.cxx | 2 |
4 files changed, 6 insertions, 18 deletions
diff --git a/buildrun.cxx b/buildrun.cxx index 7bcdcf8d..5967066e 100644 --- a/buildrun.cxx +++ b/buildrun.cxx @@ -158,7 +158,6 @@ compile_pass (systemtap_session& s) output_autoconf(s, o, "autoconf-vm-area.c", "STAPCONF_VM_AREA", NULL); output_autoconf(s, o, "autoconf-procfs-owner.c", "STAPCONF_PROCFS_OWNER", NULL); output_autoconf(s, o, "autoconf-alloc-percpu-align.c", "STAPCONF_ALLOC_PERCPU_ALIGN", NULL); - output_autoconf(s, o, "autoconf-find-task-pid.c", "STAPCONF_FIND_TASK_PID", NULL); output_autoconf(s, o, "autoconf-x86-gs.c", "STAPCONF_X86_GS", NULL); #if 0 diff --git a/runtime/autoconf-find-task-pid.c b/runtime/autoconf-find-task-pid.c deleted file mode 100644 index 549d5ac3..00000000 --- a/runtime/autoconf-find-task-pid.c +++ /dev/null @@ -1,6 +0,0 @@ -#include <linux/sched.h> - -void foo (pid_t k) { - struct task_struct *tsk = find_task_by_pid (k); - (void) tsk; -} diff --git a/runtime/itrace.c b/runtime/itrace.c index 3014f9e5..6fe39db4 100644 --- a/runtime/itrace.c +++ b/runtime/itrace.c @@ -324,20 +324,14 @@ done: } -static int usr_itrace_init(int single_step, pid_t tid, struct stap_itrace_probe *p) +static int usr_itrace_init(int single_step, struct task_struct *tsk, struct stap_itrace_probe *p) { struct itrace_info *ui; - struct task_struct *tsk; spin_lock_init(&itrace_lock); rcu_read_lock(); -#ifdef STAPCONF_FIND_TASK_PID - tsk = find_task_by_pid(tid); -#else - tsk = find_task_by_vpid(tid); -#endif - if (!tsk) { - printk(KERN_ERR "usr_itrace_init: Cannot find process %d\n", tid); + if (tsk == NULL) { + printk(KERN_ERR "usr_itrace_init: Invalid task\n"); rcu_read_unlock(); return 1; } @@ -353,7 +347,8 @@ static int usr_itrace_init(int single_step, pid_t tid, struct stap_itrace_probe rcu_read_unlock(); if (debug) - printk(KERN_INFO "usr_itrace_init: completed for tid = %d\n", tid); + printk(KERN_INFO "usr_itrace_init: completed for tid = %d\n", + tsk->pid); return 0; } diff --git a/tapset-itrace.cxx b/tapset-itrace.cxx index ebfa57ac..87845155 100644 --- a/tapset-itrace.cxx +++ b/tapset-itrace.cxx @@ -208,7 +208,7 @@ itrace_derived_probe_group::emit_module_decls (systemtap_session& s) s.op->newline() << "if (register_p) "; s.op->indent(1); - s.op->newline() << "rc = usr_itrace_init(p->single_step, tsk->pid, p);"; + s.op->newline() << "rc = usr_itrace_init(p->single_step, tsk, p);"; s.op->newline(-1) << "else"; s.op->newline(1) << "remove_usr_itrace_info(find_itrace_info(p->tgt.pid));"; s.op->newline(-1) << "return rc;"; |