This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
[Bug translator/6921] New: tracepoint support
- From: "fche at redhat dot com" <sourceware-bugzilla at sourceware dot org>
- To: systemtap at sources dot redhat dot com
- Date: 29 Sep 2008 20:11:34 -0000
- Subject: [Bug translator/6921] New: tracepoint support
- Reply-to: sourceware-bugzilla at sourceware dot org
2.6.26+ have something called tracepoints. See include/linux/tracepoint.h,
DEFINE_TRACE() macro. It's desirable to let systemtap hook up to these things
directly, without marker intermediaries. Thanks to a tip from roland, here's
how it might be done ...
so ... we have DEFINE_TRACE declaring the static inline fn that should have the
same prototype as the final tracepoint callback function
so we could do a dwarf search on the putative tracepoint name "foo" to find a
inline function "trace_foo"
and/or use the tracepoint string section table to validate the "foo" name
then look up its formal parameters in dwarf
then save any particular inlined instance pc for later $param resolution
then emit a tracepoint callback api thing with the same signature
$param resolution is tricky, since we wouldn't be using dwarf location list
data in a real tracepoint callback function. we'd emit the callback function.
So for mapping $expr->field1->field2, we may *validate* the expression using
dwarf type data (including "alternatives" listing), but we'd just emit C code
that transcribes $expr->field1->field2 to "expr->field1->field2". ... Except
for pointer value checking .. so we may need to expand it to kread() chains
as for dwarf/pt_regs based probes.
The end result would be a generic tracepoint attachment mechanism that gives
good performance and good access to parameters.
--
Summary: tracepoint support
Product: systemtap
Version: unspecified
Status: NEW
Severity: normal
Priority: P2
Component: translator
AssignedTo: systemtap at sources dot redhat dot com
ReportedBy: fche at redhat dot com
http://sourceware.org/bugzilla/show_bug.cgi?id=6921
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.