]> sourceware.org Git - systemtap.git/commit - tapsets.cxx
PR10655 part 1: uprobes: track sdt semaphores properly
authorFrank Ch. Eigler <fche@elastic.org>
Sat, 19 Sep 2009 01:31:06 +0000 (21:31 -0400)
committerFrank Ch. Eigler <fche@elastic.org>
Sat, 19 Sep 2009 01:40:30 +0000 (21:40 -0400)
commit8faa1fc5f98ccb87beb2e71c0ce087278a950dde
tree5510a35d85c996aa3d01594970af07536252175a
parentba01c24c38c098ae93cf62b239f03e824b5f5600
PR10655 part 1: uprobes: track sdt semaphores properly

commit 6846cfc8 introduced an unintended side-effect where semaphore tracking
was identified with stap_uprobe_specs[] elements, which are normally static/const.
This kernel patch <http://article.gmane.org/gmane.linux.kernel/854187> catches
and panics on this.  The cure is to move the variable over to the stap_uprobes[]
array.

* tapsets.cxx (uprobe emit_module_decls): Add sdt_sem_address to stap_uprobe{} struct,
  to contain per-process relocated semaphore address.
  (emit_module_decls,_init): Remove tsk field, restore constness of appropriate
  locals.  Activate uprobe semaphore right around uprobe activation time.  Remove
  semaphore clearing upon process exit, since by then it's gone.
  (emit_module_exit): Use remembered relocated semaphore address to clean up.
  Fix "-uprobe" DEBUG_UPROBES message.
* runtime.h: #include <linux/sched.h>.
* dtrace.in (*_semaphore): Make it an unsigned short - intended 16 bits on all
  common architectures/multilibs.
dtrace.in
runtime/runtime.h
tapsets.cxx
This page took 0.025295 seconds and 5 git commands to generate.