diff options
author | Frank Ch. Eigler <fche@elastic.org> | 2008-07-09 22:44:13 -0400 |
---|---|---|
committer | Frank Ch. Eigler <fche@elastic.org> | 2008-07-09 22:44:13 -0400 |
commit | a00cc8c70d20f2f3429590b629d272c8db65b40f (patch) | |
tree | 6a90966d1a715c48db4ac35b891c46ef654f272f /runtime | |
parent | df00639dbe262b8919bdf625f30d80e5b9b96346 (diff) | |
parent | 51a3785482396c9f653e3e7647945bfc24f7b160 (diff) | |
download | systemtap-steved-a00cc8c70d20f2f3429590b629d272c8db65b40f.tar.gz systemtap-steved-a00cc8c70d20f2f3429590b629d272c8db65b40f.tar.xz systemtap-steved-a00cc8c70d20f2f3429590b629d272c8db65b40f.zip |
Merge commit 'origin/master' into pr6429-comp-unwindsyms
* commit 'origin/master':
fix shutdown race condition for scripts that might exit during begin probes
Fix PR 6732: Add runtime/autoconf-real-parent.c check for task_struct field.
clarify dejagnu test case name for empty-struct changes
add changelog entries for last two changes
Add test suite for declaration resolution
Fix semantic error: empty struct
Add hack to support git 1.6 in git_version.sh
Sync latest fix for git_version.sh from RadeonHD's tree
Slightly cleanup code of translate.cxx
PR2111: add general blurbage to stapprobes.5 on syscalls tapset
Use `uname -rvm` for checking system compatibility. Generate
Add section to stapex manual page on how installed examples are documented.
Install examples, demos and samples.
Install tutorial and langref manuals.
Diffstat (limited to 'runtime')
-rw-r--r-- | runtime/ChangeLog | 8 | ||||
-rw-r--r-- | runtime/autoconf-real-parent.c | 15 | ||||
-rw-r--r-- | runtime/task_finder.c | 3 | ||||
-rw-r--r-- | runtime/transport/ChangeLog | 4 | ||||
-rw-r--r-- | runtime/transport/transport.c | 4 |
5 files changed, 31 insertions, 3 deletions
diff --git a/runtime/ChangeLog b/runtime/ChangeLog index f7f1a5a8..25faffe2 100644 --- a/runtime/ChangeLog +++ b/runtime/ChangeLog @@ -1,3 +1,11 @@ +2008-07-09 Mark Wielaard <mwielaard@redhat.com> + + PR 6732 + * autoconf-real-parent.c: New file. + * task_finder.c (__stp_utrace_task_finder_report_exec): Define + real_parent using STAPCONF_REAL_PARENT. Undefine when no longer + needed. + 2008-07-01 David Smith <dsmith@redhat.com> * task_finder.c (__stp_get_mm_path): Corrected error return code. diff --git a/runtime/autoconf-real-parent.c b/runtime/autoconf-real-parent.c new file mode 100644 index 00000000..010792cb --- /dev/null +++ b/runtime/autoconf-real-parent.c @@ -0,0 +1,15 @@ +/* PR6732 - In RHEL5 and F[678] kernels, the utrace patch removed the + * ptrace-related parent field and renamed real_parent to parent. In + * future Fedora kernels, there may or may not be a ptrace-related + * parent field, but the real useful field will go back to being called + * real_parent. + */ +#include <linux/sched.h> + +struct task_struct t; + +void foo (void) +{ + struct task_struct *p; + p = t.real_parent; +} diff --git a/runtime/task_finder.c b/runtime/task_finder.c index 316a9bc0..fc573eb6 100644 --- a/runtime/task_finder.c +++ b/runtime/task_finder.c @@ -485,7 +485,7 @@ __stp_utrace_task_finder_report_exec(struct utrace_attached_engine *engine, // '/bin/bash' clones and then execs '/bin/ls'. If the user // was probing '/bin/bash', the cloned thread is still // '/bin/bash' up until the exec. -#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,25) +#if ! defined(STAPCONF_REAL_PARENT) #define real_parent parent #endif if (tsk != NULL && tsk->real_parent != NULL @@ -494,6 +494,7 @@ __stp_utrace_task_finder_report_exec(struct utrace_attached_engine *engine, // *could* call exec (although they aren't supposed to). __stp_utrace_attach_match_tsk(tsk->real_parent, tsk, 0, 1); } +#undef real_parent // We assume that all exec's are exec'ing a new process. Note // that we don't use bprm->filename, since that path can be diff --git a/runtime/transport/ChangeLog b/runtime/transport/ChangeLog index 98548afa..4bb0868b 100644 --- a/runtime/transport/ChangeLog +++ b/runtime/transport/ChangeLog @@ -1,4 +1,8 @@ +2008-07-09 Frank Ch. Eigler <fche@elastic.org> + PR5963 + * transport.c (_stp_work_queue): Don't signal a premature exit + if a begin probe happened to exit(). 2008-06-23 Wenji Huang <wenji.huang@oracle.com> PR 6646 diff --git a/runtime/transport/transport.c b/runtime/transport/transport.c index 01a24033..ed9718ae 100644 --- a/runtime/transport/transport.c +++ b/runtime/transport/transport.c @@ -159,9 +159,9 @@ static void _stp_work_queue(void *data) wake_up_interruptible(&_stp_ctl_wq); /* if exit flag is set AND we have finished with probe_start() */ - if (unlikely(_stp_exit_flag)) + if (unlikely(_stp_exit_flag && _stp_probes_started)) _stp_cleanup_and_exit(1); - else if (likely(_stp_attached)) + if (likely(_stp_attached)) queue_delayed_work(_stp_wq, &_stp_work, STP_WORK_TIMER); } |