fche changed the topic of #systemtap to: http://sourceware.org/systemtap; email systemtap@sourceware.org if answers here not timely, conversations may be logged
orivej has joined #systemtap
pwithnall has quit [Quit: pwithnall]
orivej has quit [Ping timeout: 245 seconds]
_whitelogger has joined #systemtap
pwithnall has joined #systemtap
pwithnall has quit [Ping timeout: 252 seconds]
orivej has joined #systemtap
_whitelogger has joined #systemtap
pwithnall has joined #systemtap
pwithnall has quit [Quit: pwithnall]
pwithnall has joined #systemtap
pwithnall has quit [Ping timeout: 252 seconds]
fche2 has joined #systemtap
<agentzh>
fche: okay. please let me know if there's anything i can do to move it forward. thanks!
<agentzh>
fche: for another thing, what do you think of allowing multiple -x PID options for stap to allow probing multiple specified user processes?
<agentzh>
in the multi-target case, the target() func is no longer sufficient. and i'm thinking about introducing a new is-target() func that directly returns true or false. what's your opinion?
<agentzh>
when tracing multi-process daemons like nginx and httpd, it is often desired to trace all their worker processes at once.
<agentzh>
i've been hard-coding pid values inside my stap scripts, which is not desired since the ko needs to be recompiled everytime the target pids change.
<agentzh>
sorry, i think is_target() insteasd of is-target() :)
<agentzh>
*i mean
<fche2>
we've dealt a little bit with process hierarchies at the tapset level
<agentzh>
will you be a bit more specific please?
<agentzh>
you mean fetching all direct child processes' pids given a parent ppid?
<agentzh>
if we want to trace all direct children, then this will do the trick, but still sometimes we just want to probe *some* of the processes. ideally, we could handle an aribitrary set of pids instead of assuming process hierarchies.
<agentzh>
i hope we can have a nice way for the most general cases.
<fche2>
yeah, I see your point with -x PID -x PID
<agentzh>
great
<fche2>
I was referring to target_set_pid()
<fche2>
that tracks child processes too, but does not directly influence whether uprobes are placed
<agentzh>
yeah, that's useful for certain use cases.
<fche2>
re. @vma(). is there some reason that needs to be a builtin operator, as opposed to a normal tapset function ?
<fche2>
agentzh, there are some nits but overall I still am ok with the @vma code. You can commit it. Please tighten up the NEWS to be shorter, and add @vma() to the man page, a useful example script would be great in systemtap.examples, if not too hard
<fche2>
typeresolution_info::visit_atvma_op probably doesn't need all that clog traffic, just the semantic-error
<fche2>
creating a test for it could use command line parameters ($1 et.) as @var() parameters, fed by some `nm ... | grep | awk ` pipeline to feed addresses
<fche2>
it'd be nice if that test-oriented $^foo template processor widget were not the only effective way to use this
<agentzh>
fche2: re builtin operator vs tapset func: because a good amount of work can be done at compile-time, especially for non-PIE cases.
<agentzh>
tapset is more runtime-oriented.
<fche2>
yeah finding the relocation basis
<agentzh>
re clog: yeah, i can remove them. it was just very useful for my debugging and development.
<agentzh>
so i thought i (or other developers) might want to enable them again.
<fche2>
ideally when we throw a semantic error, we should produce good enough diagnostics that this wouldn't be needed
<fche2>
but yeah ok, verbose > 2 is fine
<agentzh>
yeah, will do.
<agentzh>
re test cases using cmdline args, sure, i'll add one.
<agentzh>
i'll think about the example script, but probably in a seperate commit since it would take some more time.
<fche2>
I'd hope that the facility can demonstrate its usefulness with a sample, if we want to encourage people to use it.
<agentzh>
i also found some compatibility issues on ubuntu 16.04 in the tests, and i've already addressed them in my local copy.
<agentzh>
*local tree
<agentzh>
fche2: yeah, it makes sense. it is for dwarfless probing, so i need to think of a small and standalone example that may look useful immediately.
<agentzh>
fche2: how about just writing a blog post for this new feature? i can do that quickly. it's easier than writing a self-contained example :P
<agentzh>
and i can put some examples into the blog post.
<fche2>
ok
fche2 has quit [Quit: Leaving]
orivej has quit [Quit: orivej]
orivej has joined #systemtap
<agentzh>
seems like execname() might return a relative file paths (when the target process is invoked that way), is there a recommended way in stap to check an absolute exec file path?
<agentzh>
basically i'd like to filter out all processes from a particular executable file path in probes like timer.profile. the pids cannot be determined since those processes are short-lived.