[lttng-dev] Using lttng-ust's libringbuffer outside lttng-ust
David Smith
dsmith at redhat.com
Tue Feb 12 14:56:10 EST 2013
Over in systemtap land, we're working on implementing a pure userspace
backend, using a project called dyninst (<http://www.dyninst.org/>). As
part of this work, we need to implement a data channel between
systemtap and the target executable(s). Most of the data (print
statement output) flows from probes run in the target back to systemtap.
There is also a need for a control channel the flows from systemtap to
the systemtap runtime present in the target.
I'm looking into the possibility of using libringbuffer from lttng-ust,
which seems like it might fit our needs. Based on my description above
(feel free to ask for more detail), does using libringbuffer make sense?
Assuming it does make sense, I could use some help. Is there any
documentation that I've missed somewhere that describes libringbuffer in
any detail? I've also looked through the test programs in
'lttng-ust/tests' hoping to find a test for just basic libringbuffer
functionality (a standalone producer/consumer), without much luck. (The
code in 'ust-basic-tracing' and 'ust-multi-test' probably comes the
closest.) I started trying to write such a test, but then realized it
made better sense to ask here first.
The next question would be what is the best way of using libringbuffer
outside lttng-ust. One (not great) possibility would be to just copy the
code into systemtap. Of course the problem there is keeping the code up
to date with changes in lttng-ust. The next possibility would be to make
it a separate project (more like userspace-rcu). A bit of work would be
needed here, since while libringbuffer is mostly self-contained, there
is some use of code from 'lttng-ust/lttng-ust-comm' and
'lttng-ust/snprintf' from 'lttng-ust/libringbuffer'.
Thanks for the help.
--
David Smith
dsmith at redhat.com
Red Hat
http://www.redhat.com
256.217.0141 (direct)
256.837.0057 (fax)
More information about the lttng-dev
mailing list