[lttng-dev] How to user perf probes and module tracepoints in lttng

avkumar anilzoom at gmail.com
Thu Oct 12 13:50:18 UTC 2017


Francis,
The suggestion you gave works, but the issue I was trying to solve was to
be able to peer into the structures passed to the function and get some
information from that. That is the reason I pulled out the variables in
perf probe. When I use the way you have suggested I am not able to figure
out how to get it to print the skb length and skb address. Is there a way
to do it( skb is passed into those functions?)

Reg the trace point compile error:
I figured that one out.  I had to have the source files for the kernel to
get that to work. I could not do with only header file for the kernel.
Once I had the source files and  set the KERNELDIR to the root of the
source files ( compiled) it worked.

Thanks



On Wed, Oct 11, 2017 at 4:49 PM, Francis Deslauriers <
francis.deslauriers at efficios.com> wrote:

> Hi,
> 2017-10-11 17:10 GMT-04:00 avkumar <anilzoom at gmail.com>:
> >
> > Perf probes:
> > How can we add the dynamic trace points created by perf probe into
> lttng? When I add the perf probe as kprobe type I get missing tracepoint
> error, If I add the perf probe as tracepoint , Lttng does not complain but
> it does not collect any data when the tracepoint is hit.
> >
> > perf probe -l
> >   probe:tcp_gro        (on tcp_gro_receive at net/ipv4/tcp_offload.c with
> addr len)
> >
> > lttng enable-event -k --probe=tcp_gro
>
> First, you have to give your probe event a name.
> Second, tcp_gro has to be a kernel symbol. According to the Perf
> output above, the symbol name is `tcp_gro_receive` so the command you
> want to run is:
> lttng enable-event -k --probe=tcp_gro_receive EVENT_NAME
>
> > Error: Missing event name(s).
> >
> > When I add it as a trace point
> >
> > lttng enable-event -k probe:tcp_gro
> > Kernel event probe:tcp_gro created in channel channel0]
> >
> > it does not give any error but no data is collected
>
> It's expected if you don't have a kernel tracepoint named
> "probe:tcp_gro"(you probably don't) currently loaded in your kernel.
> There is no error because there is no way for the kernel tracer if the
> tracepoint is part of an not-yet-loaded kernel module or not.
> "probe:tcp_gro" is a Perf specific description of the kprobe you
> enabled. You can not directly reuse this description in the
> lttng-enable-event command. To use the `lttng enable-event -k
> TRACEPOINT`, try the `lttng list -k` command (with a lttng-sessiond
> running as root) to list the currently available tracepoints.
>
> >
> >
> >
> > Module tracepoints:
> > I created module tracepoints in the kernel and compiled the trace
> points. The header file is in the driver module directory. When I write the
> adaptation layer for lttng, it does not compile as it is not able to fien
> the header file. I have given fill path name to the header file and still
> it does not work.
>
> Can you give us a bit more details. Could you send us a pastebin of
> the error you get?
>
> Thank you,
> Francis
>
> >
> >
> > Thanks
> >
> >
> >
> >
> >
> > _______________________________________________
> > lttng-dev mailing list
> > lttng-dev at lists.lttng.org
> > https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev
> >
>
>
>
> --
> Francis Deslauriers
> Software developer
> EfficiOS inc.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.lttng.org/pipermail/lttng-dev/attachments/20171012/6ea7a24a/attachment.html>


More information about the lttng-dev mailing list