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]

Re: [PATCH 0/2] initscript: add support for uprobes scripts


On 08/07/2014 11:33 PM, Stefan Hajnoczi wrote:
> The initscript currently fails for user-space probing scripts on systems where
> uprobes.ko is built from source by stap(1).  This is because the initscript
> uses a two-phase "compile and then run" approach:
> 
> The uprobes.ko module is generated during the compile phase but not copied into
> the cache directory where modules are placed for the run phase.  The staprun(8)
> command fails because the script module cannot be loaded without uprobes.ko.

This confused me at first, because uprobes.ko *is* cached with a
kernel-hashed name -- see uprobes_pass() in buildrun.cxx.  But that's in
SYSTEMTAP_DIR (default ~/.systemtap), and the initscript is talking
about its own CACHE_PATH in /var/cache/systemtap.  So, ok.

I'm not terribly keen on using -k to find uprobes.  But at a minimum, if
we do this, that "Keeping temp..." string is translatable, so you need
to ensure stap runs in English.

It's already using -m, which triggers systemtap_session::save_module to
copy the script module to $PWD at the end of passes_0_4() -- maybe this
should also save uprobes.ko if needed?  Or we could add an explicit
option to request this behavior.  Then the initscript can simply look in
its own tmpdir to see if uprobes.ko was created.

> These patches address the issue by copying uprobes.ko into the cache directory.
> If a script specifies the -u option in its initscript configuration file,
> staprun(8) will receive the path to uprobes.ko.
> 
> There is no change in behavior on systems that do not build uprobes.ko.
> 
> Stefan Hajnoczi (2):
>   initscript: copy uprobes.ko to cache directory
>   initscript: allow scripts to load uprobes
> 
>  initscript/systemtap.in | 24 +++++++++++++++++++++---
>  1 file changed, 21 insertions(+), 3 deletions(-)
> 


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