fche changed the topic of #systemtap to: http://sourceware.org/systemtap; email systemtap@sourceware.org if answers here not timely, conversations may be logged
<agentzh>
thanks
<agentzh>
shall we add a new stap opiton to disable the stmt/insn boundary checks for the non-absolute case?
<agentzh>
it can require -g to be safe.
<fche>
they are statement boundary checks
<fche>
stap doesn't know about instructions
<agentzh>
i just need a way to use relative addresses instead of using an absolute address which changes across reboot.
<agentzh>
and i don't want to depend on kernel debuginfo since it is absent in many cases.
<agentzh>
any suggestions on how to achieve these two goals at the same time?
<fche>
'linked addresses' identified from what source?
<agentzh>
like from vlinux
<agentzh>
*vmlinux or vmlinuz
<fche>
vmlinuz doesn't really contain symbols
<fche>
and vmlinux is the debuginfo
<agentzh>
oh
<fche>
and those are function addresses only, not interior addresses etc.
<fche>
if you just want function entry probes, sans debuginfo, ... try probe kprobe.function("name") {}
<agentzh>
how about System.map?
<agentzh>
it's shipped with kernel-core.
<agentzh>
ah, kprobe.function("name") sounds good
<agentzh>
but it still needs similar treatment to avoid depending on kernel debuginfo.
<fche>
maybe, maybe not, try it.
<agentzh>
i'll adjust my previous patch accordingly.
<agentzh>
thanks
<agentzh>
will try it out.
<agentzh>
a sec
pviktori has quit [Quit: No Ping reply in 180 seconds.]
pviktori has joined #systemtap
<agentzh>
i confirmed that kernel.funcion(NAME) also requires kernel debuginfo. now fixing...
<fche>
you mean kprobe.function?
khaled has quit [Quit: Konversation terminated!]
<agentzh>
ah, they are different...
<agentzh>
sorry
<fche>
whew
<agentzh>
great, it works.
kerneltoast has joined #systemtap
<agentzh>
seems like kprobes.function is not documented in man stapprobes?
<fche>
pity, that'd be good to add
<fche>
by the way
<fche>
remember when ... a mere seven years ago, you added @var("name", "module") as an extension?
<fche>
a few days ago, we found a key use for this
<agentzh>
ah, nice
<agentzh>
it was a long time ago.
<fche>
but we didn't realize it existed, partly because it wasn't mentioned in the docs either:-)
<agentzh>
ah, is it already added?
<agentzh>
should i add it to docs?
<agentzh>
yeah, people are lazy.
<agentzh>
just checking out docs.
<agentzh>
instead of code or tests.
<fche>
:)
<agentzh>
i just noted that 'man stapprobes' mentions the .maxactive(N) suffix. is it documented somehwere? sounds like a very useful feature to me :)
<fche>
yeah it'd be great to add both this too ... yeah stapprobes
<agentzh>
okay, will do.
<agentzh>
but i don't really understand what kprobes.function does as compared to kernel.function().
<fche>
ah sorry, just read the documentation :-) :-) :-)
<agentzh>
will you give some quick notes on the differences?
<fche>
wow it's not even in NEWS
<fche>
wow
<fche>
ok
<fche>
so kprobes.function("foo") probes map directly to the kernel kprobe facility, based on preserving the given symbol name for resolution by the kernel
<fche>
no debuginfo is relevant or used, and I'm not sure we do (can do?) any error checking on the strings either
<fche>
we just pass them through to the kernel
<agentzh>
okay, good enough for me. i'll find out the rest.
<agentzh>
thanks
<fche>
neat
<fche>
thanks dude
<agentzh>
sure
derek0883 has quit [Ping timeout: 272 seconds]
hpt has joined #systemtap
derek0883 has joined #systemtap
derek0883 has quit [Remote host closed the connection]
derek0883 has joined #systemtap
irker297 has quit [Quit: transmission timeout]
derek0883 has quit [Remote host closed the connection]
derek0883 has joined #systemtap
orivej has joined #systemtap
derek0883 has quit [Remote host closed the connection]
derek0883 has joined #systemtap
derek0883 has quit [Remote host closed the connection]
derek0883 has joined #systemtap
LW has joined #systemtap
derek0883 has quit [Remote host closed the connection]
derek0883 has joined #systemtap
derek0883 has quit [Remote host closed the connection]
amerey has quit [Ping timeout: 272 seconds]
derek0883 has joined #systemtap
derek0883 has quit [Remote host closed the connection]
amerey has joined #systemtap
tonyj has quit [Remote host closed the connection]
<agentzh>
fche: tested the offsets in System.map for probe kernel.statement(HEX) and it seems fine. i tested on fedora 28.
<agentzh>
the resulting kernel backtraces dumped in the probe handler look exactly the same as the kernel.statement.absolute + /proc/kallsyms addresses.
<agentzh>
for another thing: we saw on some kernels that kprobe.function() results in kprobe builder errors at translation time: https://gist.github.com/agentzh/d8364567f339f4a821c94b397d418179 what cause could it be. it works in many other kernels. the troublesome kernel version is 4.15.0 from ubuntu esm.
<fche>
agentzh, hm not sure why it'd fail
derek0883 has quit [Remote host closed the connection]
derek0883 has joined #systemtap
<kerneltoast>
fche, agentzh's failure only occurs when passing a kernel source tree to stap via -r
<kerneltoast>
using the same source tree without passing it via -r works fine
tromey has quit [Quit: ERC (IRC client for Emacs 28.0.50)]
<fche>
yeah sorry not sure why that should be
amerey has quit [Remote host closed the connection]
amerey has joined #systemtap
gromero has quit [Quit: Leaving]
gromero has joined #systemtap
amerey has quit [Remote host closed the connection]