I believe this issue is not related to what Jon was looking for. It
seems to be a problem of proper inclusion of the tp header.
I followed the guide to build out-of-kernel LTTng modules recently and
was able to do it properly for a random test module I did recently
[1]. However it was done as a new addition to the current
lttng-modules, so I was in the lttng source tree. But I believe it
will clear up some doubts you have. I have not seen all macros
properly and I might be wrong but I think your problem might be
related to this [1] :
#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module
#include "../instrumentation/events/lttng-module/net_filt.h"
Also, I might be way off in solving your problem, but you can use the
patch as a reference while building your own module as well. If you
are just testing, you can also have a look at lttng addons [3]. Its
almost the same thing as a new module I think.
[1] https://gist.github.com/tuxology/4235d49b6a5fa87fa760
[2]
https://gist.github.com/tuxology/4235d49b6a5fa87fa760#file-filter-example-patch-L541
[3] https://github.com/giraldeau/lttng-modules/tree/addons
--
Suchakra
Quoting Alexandre Montplaisir <[email protected]>:
Hi,
I have never tried this myself, but a similar question was asked on
StackOverflow recently:
http://stackoverflow.com/questions/27950396/is-it-possible-to-build-lttng-probe-module-outside-of-lttng-modules-tree
and the author found a solution. Maybe this can help?
Cheers,
Alex
On 01/21/2015 03:55 PM, Jonathan Haws wrote:
I am developing an out-of-tree kernel module and would like to
instrument it for tracing. I understand I will need to create an LTTng
probe in the modules source tree, however when I try to build my module,
I get errors stating that a header file for the subsystem doesn't exist
in the source tree.
Here is my trace event file:
#undef TRACE_SYSTEM
#define TRACE_SYSTEM sigma
#if !defined(_TRACE_SIGMA_H) || defined(TRACE_HEADER_MULTI_READ)
#define _TRACE_SIGMA_H
#include <linux/tracepoint.h>
TRACE_EVENT(
sigma_exarioctl,
TP_PROTO(int cmd, int pin, int value),
TP_ARGS(cmd, pin, value),
/* LTTng doesn't need those */
TP_STRUCT__entry(),
TP_fast_assign(),
TP_printk("", 0)
);
#endif
/* this part must be outside protection */
#include <trace/define_trace.h>
When I include that in my module, I do this:
#define CREATE_TRACE_POINTS
#include "exartrace.h"
However, when I build, I get the error:
<KERNELDIR>/include/trace/define_trace.h:83:43: fatal error:
trace/events/sigma.h: No such file or directory
#include TRACE_INCLUDE(TRACE_INCLUDE_FILE)
Any thoughts on what I am doing wrong?
Thanks!
Jon
_______________________________________________
lttng-dev mailing list
[email protected]
http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev
_______________________________________________
lttng-dev mailing list
[email protected]
http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev
_______________________________________________
lttng-dev mailing list
[email protected]
http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev