summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrank Ch. Eigler <fche@elastic.org>2008-11-25 16:20:32 -0500
committerFrank Ch. Eigler <fche@elastic.org>2008-11-25 16:20:32 -0500
commiteca9d638143b8e7e3a7ab877ea2d9b47736e5879 (patch)
tree6e6ff3f9e7a6760a9b69a9182f1dcb506d9142d7
parentd41d451cd932cdcc36cf02af5b30daf149f786d5 (diff)
downloadsystemtap-steved-eca9d638143b8e7e3a7ab877ea2d9b47736e5879.tar.gz
systemtap-steved-eca9d638143b8e7e3a7ab877ea2d9b47736e5879.tar.xz
systemtap-steved-eca9d638143b8e7e3a7ab877ea2d9b47736e5879.zip
PR7046: performance: eliminate duplicate uprobes for multithreaded programs' shlibs
-rw-r--r--runtime/ChangeLog6
-rw-r--r--runtime/task_finder.c5
2 files changed, 10 insertions, 1 deletions
diff --git a/runtime/ChangeLog b/runtime/ChangeLog
index 6fa86a9a..91a932c4 100644
--- a/runtime/ChangeLog
+++ b/runtime/ChangeLog
@@ -1,3 +1,9 @@
+2008-11-25 Frank Ch. Eigler <fche@elastic.org>
+
+ PR 7046.
+ * task_finder.c (__stp_utrace_task_finder_target_quiesce): Only
+ issue vm_callbacks for process main threads.
+
2008-11-24 Wenji Huang <wenji.huang@oracle.com>
From Srikar Dronamraju:
diff --git a/runtime/task_finder.c b/runtime/task_finder.c
index db7a8f38..25fad1a4 100644
--- a/runtime/task_finder.c
+++ b/runtime/task_finder.c
@@ -825,7 +825,10 @@ __stp_utrace_task_finder_target_quiesce(enum utrace_resume_action action,
}
}
- if (tgt->vm_callback != NULL) {
+ /* If this is just a thread other than the thread group leader,
+ don't bother inform vm_callback clients about its memory map,
+ since they will simply duplicate each other. */
+ if (tgt->vm_callback != NULL && (tsk->tgid == tsk->pid)) {
struct mm_struct *mm;
char *mmpath_buf;
char *mmpath;