2017-10-12 9:50 GMT-04:00 avkumar <[email protected]>: > 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?)
Hi, LTTng doesn't currently support saving variables and function parameters on --probe (kprobe) and --function (kretprobe) events. Thank you, Francis > 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 > <[email protected]> wrote: >> >> Hi, >> 2017-10-11 17:10 GMT-04:00 avkumar <[email protected]>: >> > >> > 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@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 >> > [email protected] >> > https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev >> > >> >> >> >> -- >> Francis Deslauriers >> Software developer >> EfficiOS inc. > > -- Francis Deslauriers Software developer EfficiOS inc. _______________________________________________ lttng-dev mailing list [email protected] https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev
