This is the mail archive of the systemtap@sourceware.org mailing list for the systemtap project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug tapsets/18143] target_set tapset does not track threads created with clone()


https://sourceware.org/bugzilla/show_bug.cgi?id=18143

--- Comment #4 from Max Timchenko <maxvt at bu dot edu> ---
Thanks everyone for responses, that was a lot to process. I'll address in
order. New theory as to the source of the problem below.

> ...changed target_set.stp to use process.begin...Does your version of stap 2.6 not have this patch?

David: it has the patch. Checked by looking at the tapset. The exact version is
(version 2.6/0.159, Debian version 2.6-0.2)

> It may be that Max's kernel doesn't have utrace nor satisfy the requirements for stp_utrace.

Josh: looks like uprobe support is there: I'm running 
"Linux jessie 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt7-1 (2015-03-01)", 
$ grep UPRO /boot/config-3.16.0-4-amd64 
CONFIG_ARCH_SUPPORTS_UPROBES=y
CONFIG_UPROBES=y
CONFIG_UPROBE_EVENT=y

New theory: the probe process.begin is silently skipped when running in target
thread mode (-x). This might be the reason the target_set tracking probe fails
to run even though the patch is present and uprobe support is there, since I
always point stap at a particular root process of interest.

Evidence:

testfile1.stp
---
probe process.begin {
    printf("Process begin, pid=%d\n", pid())
}

probe process.thread.begin {
    printf("Thread begin, pid=%d\n", pid())
}
---
$ stap testfile1.stp
Process begin, pid=1
Process begin, pid=560
Process begin, pid=573
...

$ stap -x 609 testfile1.stp
semantic error: while resolving probe point: identifier 'process' at
test.stp:1:7
        source: probe process.begin {
                      ^

semantic error: invalid pid

Pass 2: analysis failed.  [man error::pass2]
Number of similar error messages suppressed: 1.
Rerun with -v to see them.
Tip: /usr/share/doc/systemtap/README.Debian should help you get started.

testfile2.stp
---
probe process.begin! {
    printf("Process begin, pid=%d\n", pid())
}

probe process.thread.begin! {
    printf("Thread begin, pid=%d\n", pid())
}

probe syscall.open {
    printf("Let's add one working probe")
}
---
$ stap -x 609 testfile2.stp
Makefile:10: *** mixed implicit and normal rules: deprecated syntax
Let's add one working probe
Let's add one working probe
...

-- 
You are receiving this mail because:
You are the assignee for the bug.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]