From mboxrd@z Thu Jan 1 00:00:00 1970 From: francis.giraldeau@gmail.com (Francis Giraldeau) Date: Tue, 19 Jun 2012 11:28:01 +0200 Subject: [lttng-dev] Some questions about Lttng In-Reply-To: <6539770C71C3814BB0BFC2DBEBD105087948C2@CORPUSMX30B.corp.emc.com> References: <6539770C71C3814BB0BFC2DBEBD105087948C2@CORPUSMX30B.corp.emc.com> Message-ID: <4FE04621.3070806@gmail.com> Le 2012-06-19 05:50, Zheng.Chang at emc.com a ?crit : > > Hi folks, > > > > I'm studying how to use Lttng now. I built a kernel which version is > 2.6.38 and ran with lttng 2.0. > > I got some confused when I started to use it. Here are my questions: > > > > 1. I didn't see kernel patches for kernel 3.x. Does it mean kernel 3.x > support it already? > You don't need a kernel patch with lttng 2.0, only modules are required. It uses the tracepoints already present in the kernel, and trace system calls, and uses perf performance counters and kprobes. > 2. I tried to do something like, dump the arguments of system call, or > dump a backtrace in a specified function. But the output of lttng is > very limited. Is there a way to do that with lttng? > If system calls are enabled, arguments are supposed to be dumped (option --syscall to lttng enable-event). If it's not the case, then are you sure you are using lttng 2.0 and not 0.12? ;) Because the older version has a different behavior. One additional note: few system calls do not have all their arguments decoded in lttng 2, but there are only a few. > 3. I looked into some UST examples and found here are three header > files: tracepoint.h, tracepoint-event.h and ust-tracepoint-event.h. > They have some duplicated macro definitions like TRACEPOINT_EVENT. > The macros are quite complicated. Some includes files are included more than once to generate various portion of the tracepoint code. So, my advice here is to take a working example and adapt it to your needs. > And the examples includes all of these three header files despite no > conflict here. Could someone help to explain the intention? > > 4. Once I defined a tracepoint in my code, seems some initializations > would register default probe into the hook point. How to disable the > default probe and register my self-defined probes? > You mean, call a custom function when tracepoint is executed? Maybe somebody else has an answer, but AFAIK this is not possible. But you could make a wrapper to your tracepoint and then call your additional function there. > 5. Does lttng-ust support dynamic traceing like kprobe? > AFAIK, the kernel tracer supports kprobe, but not UST. Maybe somebody else can confirm/infirm the dynamic tracepoint feature in user-space? You can use a feature of GCC to regiter callback on function entry and exit, but since it executes for all functions, then the overhead is very high. You can have a look here: https://github.com/giraldeau/workload-kit/blob/master/ust/cyg.c Cheers, Francis -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 4476 bytes Desc: Signature cryptographique S/MIME URL: