summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
| | * Document TRACEPOINTS in stapprobes(5)Josh Stone2009-03-061-0/+36
| | |
| | * Ensure tracepoints are synchronized after unregJosh Stone2009-03-061-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The tracepoint API provides tracepoint_synchronize_unregister() as a way to guarantee that all tracepoint handlers are inactive. This is necessary after unregistering to allow the module to safely unload. * tapsets.cxx (tracepoint_derived_probe_group::emit_module_init): Call synchronize after unregistering tracepoints. (tracepoint_derived_probe_group::emit_module_exit): Ditto.
| | * Support older tracepoints using DEFINE_TRACEJosh Stone2009-03-061-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | At one point, the tracepoints API didn't have DECLARE_TRACE, and the trace headers all used DEFINE_TRACE. This is what got pulled into RHEL, so we need to support this older usage. The rest of the API stays the same though. * buildrun.cxx (make_tracequery): Redefine DEFINE_TRACE as well.
| | * Enable tracepoint target variablesJosh Stone2009-03-061-3/+338
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This uses a similar mechanism as marker probes for storing target variables in locals of the probe body. * tapsets.cxx (tracepoint_arg): Add fields to help $target access. (tracepoint_var_expanding_visitor): Expand code to access target variables - a $target for each tracepoint parameter, as well as the special $$name and $$vars. (tracepoint_derived_probe::tracepoint_derived_probe): Expand targets (resolve_tracepoint_arg_type): Determine if a parameter is a type that we can dereference, and store the underlying type. (tracepoint_derived_probe::build_args): Resolve the types. (tracepoint_derived_probe::emit_probe_context_vars): Emit $target placeholders into the locals of the probe body. (tracepoint_derived_probe_group::emit_module_decls): Initialize $targets from the entry point parameters.
| | * Emit code to hook up tracepoint probesJosh Stone2009-03-061-4/+157
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * tapsets.cxx (tracepoint_arg): New (tracepoint_derived_probe): Add declaring header name and arg vector (dwarf_type_name): Build a type string for a given type DIE (tracepoint_derived_probe::build_args): Scan the function DIE for the name and type of formal parameters required by the tracepoint. (tracepoint_derived_probe::tracepoint_derived_probe): Call build_args and determine the relevant header to include. (tracepoint_derived_probe_group::emit_module_decls): For each tracepoint, include its header and declare a probe entry point with the right function signature. (tracepoint_derived_probe_group::emit_module_init): Call the registration for each tracepoint, and handle error unwinding. (tracepoint_derived_probe_group::emit_module_exit): Unregister each.
| | * Build skeleton tracepoint probesJosh Stone2009-03-061-4/+79
| | | | | | | | | | | | | | | | | | * tapsets.cxx (tracepoint_derived_probe): Create a skeleton probe (tracepoint_derived_probe_group): Create a skeleton group (tracepoint_query::handle_query_func): build a probe
| | * Scan tracequery.ko for tracepointsJosh Stone2009-03-061-1/+79
| | | | | | | | | | | | | | | | | | | | | * tapsets.cxx (tracepoint_query): Iterate over the modules, CUs, and functions in tracequery.ko looking for our hijacked tracepoint declarations. (tracepoint_builder::build): Run a tracepoint_query
| | * Build tracequery to scan for tracepointsJosh Stone2009-03-064-0/+155
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * session.h (systemtap_session): add tracepoint_derived_probes * buildrun.cxx (make_tracequery): New - builds a kernel module that hijacks the tracepoint declarations, so we can query debuginfo. * buildrun.h: declare above * tapsets.cxx (tracepoint_builder): New builder for tracepoint probes. For now it just handles the initialization to build the tracequery kernel module.
| | * Make iterate_over_functions work with base_querysJosh Stone2009-03-061-14/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * tapsets.cxx (dwflpp::iterate_over_functions): Change arg from void* to base_query*, and add explicit function-search parameters. (query_cu): update caller (query_dwarf_func): update callback signature (Note: instead of passing around callback functions, it might be nicer to use a virtual method in base_query...)
| | * Make session.module_cache init more consistentlyJosh Stone2009-03-041-7/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | We used to check & init module_cache in a few inconsistent places. Now it is always handled in dwflpp::setup_user/setup_kernel. * tapsets.cxx (dwflpp::setup_user): add module_cache check (dwarf_builder::build): remove module_cache check (dwarf_cast_expanding_visitor::visit_cast_op): ditto
| * | Update AUTHORSJosh Stone2009-03-061-0/+2
| | |
| * | STAP_PROBE takes no extra arguments.Mark Wielaard2009-03-061-2/+2
| | | | | | | | | | | | * includes/sys/sdt.h (STAP_PROBE): Don't add __VA_ARGS__.
| * | Create unique named labels.Stan Cox2009-03-061-65/+94
| | | | | | | | | | | | | | | * includes/sys/sdt.h (STAP_PROBEN_): New macros that take advantage of __COUNTER__
| * | PR9871: use @cast in tapsetWenji Huang2009-03-067-348/+269
| | | | | | | | | | | | | | | | | | | | | | | | Rewrite some functions using type casting to get rid of embedded C code in nfs, scsi, signal, socket, rpc, task and vfs tapset. Signed-off-by: Wenji Huang <wenji.huang@oracle.com>
| * | added more content for tapset devddomingo2009-03-061-2/+86
| | |
| * | added markers, for publicanization purposesddomingo2009-03-051-4/+5
| | |
| * | new intro, tapset dev guideddomingo2009-03-052-0/+92
| | |
| * | removes marked range of strings (intro) and replaces with Intro and Tapset ↵ddomingo2009-03-051-4/+21
| | | | | | | | | | | | Dev Guide
| * | added invisible marker for publicanddomingo2009-03-051-8/+10
| |/
| * change to fedora, add README for more infoddomingo2009-03-052-1/+36
| |
| * change to fedoraddomingo2009-03-051-4/+8
| |
| * add other required XMLsddomingo2009-03-054-0/+82
| |
| * add imagesddomingo2009-03-051-0/+3936
| |
| * add Makefileddomingo2009-03-051-0/+15
| |
| * function instead of (sfunction)ddomingo2009-03-051-1/+1
| |
| * added other required filesddomingo2009-03-051-0/+17
| |
| * Fix typo in kernel version check 2.6.21 -> 2.6.11 in inet_sock.Mark Wielaard2009-03-041-2/+2
| | | | | | | | | | * tapset/inet_sock.stp (inet_get_local_port): Fix kernel version check. (inet_get_ip_source): Likewise.
| * stap autoconf test for kernel stack trace supportTim Moore2009-03-045-6/+29
| | | | | | | | | | | | | | | | | | | | * buildrun.cxx (compile_pass): Add autoconf line for stack trace test, which defines STAPCONF_KERNEL_STACKTRACE. * runtime/autoconf-save-stack-trace.c: New file. * runtime/stack.c : Use STAPCONF_KERNEL_STACKTRACE instead of tests for kernel configuration and versions. * runtime/stack-i386.c : ditto * runtime/stack-x86_64.c : ditto
| * PR9919: Set last_stmt for array (scalar or statistical) assignments.Mark Wielaard2009-03-043-2/+56
| | | | | | | | * translate.cxx (visit_arrayindex): Update last_stmt.
| * change stap-report to a plain /bin/sh script; support dkpg in addition to rpmFrank Ch. Eigler2009-03-031-24/+19
| |
| * Search for a label instead of an address for .so static probes.Stan Cox2009-03-031-1/+4
| | | | | | | | * tapsets.cxx (dwflpp::build): Use .label for .so instead of .statement(N)
| * This patch updates the itrace code to support the new utrace interface.Maynard Johnson2009-03-032-29/+118
| | | | | | | | | | It also adds a private copy of access_process_vm to runtime/itrace.c since that function is not consistently exported by all distros.
| * PR9875: Remove sduprobesWenji Huang2009-03-034-166/+31
| | | | | | | | | | | | | | | | | | | | | | | | Impact: cleanup Since sdt.h is in git tree, sduprobes is no longer needed. * Makefile.am: Remove sduprobes. * Makefile.in: Regenerated. * doc/Makefile.in: Ditto. * runtime/sduprobes.c: Removed. Signed-off-by: Wenji Huang <wenji.huang@oracle.com>
| * Allow the same static user probe to be used multiple times per line.Stan Cox2009-03-022-15/+50
| | | | | | | | | | * dtrace (provider): Add STAP_PROBE10. * includes/sys/sdt.h: Likewise. Convert labels to __label__
| * added publicanizer for langrefddomingo2009-03-028-0/+4229
| |
| * minor revision, added tagddomingo2009-03-021-2/+2
| |
| * Merge branch 'master' of git+ssh://sources.redhat.com/git/systemtapEugeniy Meshcheryakov2009-02-285-46/+46
| |\
| | * Use @cast where possible for examining inet_sock.Mark Wielaard2009-02-271-25/+25
| | | | | | | | | | | | | | | | | | | | | * tapset/inet_sock.stp: Remove includes. (inet_get_local_port): No embedded C, use @cast. (inet_get_ip_source): Likewise. (daddr_to_string): New function, still some embedded C used.
| | * Remove unnecessary embedded C include.Mark Wielaard2009-02-271-4/+0
| | | | | | | | | | | | * tapset/networking.stp: Remove include.
| | * Guard _struct_sigaction32_u with ifdef CONFIG_COMPAT.Mark Wielaard2009-02-251-0/+2
| | | | | | | | | | | | | | | * tapset/aux_syscalls.stp (_struct_sigaction_u): Only needed and compiles when CONFIG_COMPAT defined.
| | * PR9896: Fix SystemTap build on Ubuntu Intrepid.Ananth N Mavinakayanahalli2009-02-251-2/+2
| | | | | | | | | | | | The gcc on Ubuntu doesn't like fprintf() without format arguments
| | * Skip generating empty struct globalWenji Huang2009-02-241-15/+17
| | | | | | | | | | | | | | | | | | | | | | | | Impact: trivial cleanup. Avoid emitting empty struct global code that is harmless. Signed-off-by: Wenji Huang <wenji.huang@oracle.com>
| * | Merge branch 'master' of git+ssh://sources.redhat.com/git/systemtapEugeniy Meshcheryakov2009-02-2412-636/+1231
| |\|
| * | Don't include unused libebl.hEugeniy Meshcheryakov2009-02-231-1/+0
| | |
* | | Updated buffer size.David Smith2009-03-121-1/+5
| | | | | | | | | | | | | | | | | | | | | 2009-03-12 David Smith <dsmith@redhat.com> * transport/ring_buffer.c (__stp_alloc_ring_buffer): Updated buffer size.
* | | Small update.David Smith2009-03-112-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | 2009-03-11 David Smith <dsmith@redhat.com> * print_new.c (stp_print_flush): Updated MAX_RESERVE_SIZE. * transport/ring_buffer.c (__stp_alloc_ring_buffer): Reserves more space.
* | | Make printf tests fail when stap fails.David Smith2009-03-1110-13/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2009-03-11 David Smith <dsmith@redhat.com> * systemtap.printf/end1.exp: The test fails when stap fails. * systemtap.printf/end1b.exp: Ditto. * systemtap.printf/mixed_out.exp: Ditto. * systemtap.printf/mixed_outb.exp: Ditto. * systemtap.printf/out1.exp: Ditto. * systemtap.printf/out1b.exp: Ditto. * systemtap.printf/out2.exp: Ditto. * systemtap.printf/out2b.exp: Ditto. * systemtap.printf/out3.exp: Ditto. * systemtap.printf/out3b.exp: Ditto.
* | | Handles polling and breaks down large buffers.David Smith2009-03-112-8/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2009-03-11 David Smith <dsmith@redhat.com> * print_new.c (stp_print_flush): Breaks up the buffer into smaller pieces (since the ring_buffer likes lots of small events, not one large one). * transport/ring_buffer.c (__stp_alloc_ring_buffer): Reserves space for struct _stp_entry. (_stp_data_poll_trace): New function. (_stp_data_write_commit): Wakes up any tasks waiting on data.
* | | Cleanup.David Smith2009-03-091-162/+15
| | |
* | | First working version that actually produces output.David Smith2009-03-094-72/+262
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2009-03-09 David Smith <dsmith@redhat.com> * print_new.c (stp_print_flush): Calls _stp_data_write_reserve() and _stp_data_write_commit(). * transport/ring_buffer.c (__stp_alloc_ring_buffer): Sets up a default buffer size of STP_BUFFER_SIZE; (trace_seq_reset): New function. (peek_next_entry): New function. (__find_next_entry): New function. (find_next_entry_inc): New function. (_stp_data_read_trace): Uses find_next_entry_inc() to get the next entry, then calls _stp_entry_to_user() to copy it to the user's buffer, then calls ring_buffer_consume() to consume it. (_stp_data_write_reserve): New function. (_stp_data_write_commit): New function. * transport/transport.c (_stp_transport_close): Calls functions that were ifdef'ed out. * transport/transport.h (struct _stp_entry): Added _stp_entry definition and _stp_data_write_reserve()/_stp_data_write_commit() prototypes.