This is the mail archive of the systemtap@sourceware.org mailing list for the systemtap project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Missing tracepoints in systemtap? stap -L 'kernel.trace("*")' vs cat /sys/kernel/debug/tracing/available_events


On 02/02/2010 07:50 AM, William Cohen wrote:
> There are a couple events that show up for systemtap but not for 
> /sys/kernel/debug/tracing/available_events:
> 
> -kvm_mmio

This one is because we discover the tracepoints offline, and kvm is
often built as a module.  Debugfs only reports online events, so it
won't list the kvm tracepoint if the module isn't loaded.

> -napi_poll

This one is defined using DECLARE_TRACE, which doesn't bring it into the
ftrace/perf infrastructure (as with the TRACE_EVENT family).

> Most of the missing events are sys_*

We do support the raw tracepoints for sys_enter and sys_exit.  The rest
are not really tracepoints, but rather have a special implementation in
ftrace -- grep CONFIG_FTRACE_SYSCALLS.

> and there are some i915_* events only in  the available_events.

The i915 tracepoints are defined in drivers/gpu/drm/i915/i915_trace.h,
which isn't part of our normal search path.  We can't directly use any
tracepoints like this from a module, as we won't have the proper
callback signature.  See also:

http://sourceware.org/bugzilla/show_bug.cgi?id=10745

> However, I am surprised that the hrtimer_*, itimer_*, and timer_
> events from the kernel's include/trace/events didn't show up for
> systemtap.

This is because the timer.h header fails on the unknown cputime_t type.
 I don't see anything obvious of why this would have changed -- perhaps
some chained header stopped including that definition.  In any case, we
could hack around it like so:

diff --git a/tapsets.cxx b/tapsets.cxx
index dafec5f..32016a2 100644
--- a/tapsets.cxx
+++ b/tapsets.cxx
@@ -6107,6 +6107,7 @@ static vector<string> tracepoint_extra_headers ()
   // PR 9993
   // XXX: may need this to be configurable
   they_live.push_back ("linux/skbuff.h");
+  they_live.push_back ("asm/cputime.h");
   return they_live;
 }

Or consider sending a patch to the kernel adding that #include directly.


Josh


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]