From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 793 invoked by alias); 7 Mar 2009 03:52:04 -0000 Received: (qmail 759 invoked by uid 9586); 7 Mar 2009 03:52:03 -0000 Date: Sat, 07 Mar 2009 03:52:00 -0000 Message-ID: <20090307035203.748.qmail@sourceware.org> From: jistone@sourceware.org To: systemtap-cvs@sourceware.org Subject: [SCM] systemtap: system-wide probe/trace tool branch, master, updated. release-0.9-71-gcb481ce X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: 730aaa7ac9847816d4dbb3ebef039add3b5a82a7 X-Git-Newrev: cb481ce9062cf0175bf5a86ef91bf45e7885162e Mailing-List: contact systemtap-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: systemtap-cvs-owner@sourceware.org List-Archive: Reply-To: systemtap@sourceware.org X-SW-Source: 2009-q1/txt/msg00232.txt.bz2 This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "systemtap: system-wide probe/trace tool". The branch, master has been updated via cb481ce9062cf0175bf5a86ef91bf45e7885162e (commit) via bc724b8b2ee799f23a64aee42d5e439d1666ecaa (commit) via ddc5ee5a548c8c945b63d9e3076efb12272d2617 (commit) via d99d881952436f5b01364b8f31b1bc90c22a1444 (commit) via f8a968bccd1e71f2e8f486e60ff95a4d718a6332 (commit) via 6fb70fb7915c3f5f7352e5393efb859b70e6f3fc (commit) via 79189b84b112484901e5ee6b84a334da24791128 (commit) via 75ead1f7f65c280a7a068e562dbb7b751f1f0de4 (commit) via 0a6f5a3f0c2ecfb8b4a416dd07d5b976daf79551 (commit) via 2da9cedbf2a1916107fe829692af5113646a894d (commit) via dd22832afe6c337eb020001834266ad1e7678b2c (commit) from 730aaa7ac9847816d4dbb3ebef039add3b5a82a7 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit cb481ce9062cf0175bf5a86ef91bf45e7885162e Merge: 730aaa7ac9847816d4dbb3ebef039add3b5a82a7 bc724b8b2ee799f23a64aee42d5e439d1666ecaa Author: Josh Stone Date: Fri Mar 6 19:43:28 2009 -0800 Merge branch 'tracepoints' commit bc724b8b2ee799f23a64aee42d5e439d1666ecaa Author: Josh Stone Date: Fri Mar 6 19:36:05 2009 -0800 Document TRACEPOINTS in stapprobes(5) commit ddc5ee5a548c8c945b63d9e3076efb12272d2617 Author: Josh Stone Date: Fri Mar 6 19:30:39 2009 -0800 Ensure tracepoints are synchronized after unreg 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. commit d99d881952436f5b01364b8f31b1bc90c22a1444 Author: Josh Stone Date: Fri Mar 6 15:44:50 2009 -0800 Support older tracepoints using DEFINE_TRACE 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. commit f8a968bccd1e71f2e8f486e60ff95a4d718a6332 Author: Josh Stone Date: Wed Mar 4 21:07:54 2009 -0800 Enable tracepoint target variables 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. commit 6fb70fb7915c3f5f7352e5393efb859b70e6f3fc Author: Josh Stone Date: Wed Mar 4 20:32:22 2009 -0800 Emit code to hook up tracepoint probes * 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. commit 79189b84b112484901e5ee6b84a334da24791128 Author: Josh Stone Date: Wed Mar 4 20:17:38 2009 -0800 Build skeleton tracepoint probes * 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 commit 75ead1f7f65c280a7a068e562dbb7b751f1f0de4 Author: Josh Stone Date: Wed Mar 4 19:56:02 2009 -0800 Scan tracequery.ko for tracepoints * 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 commit 0a6f5a3f0c2ecfb8b4a416dd07d5b976daf79551 Author: Josh Stone Date: Wed Mar 4 19:32:25 2009 -0800 Build tracequery to scan for tracepoints * 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. commit 2da9cedbf2a1916107fe829692af5113646a894d Author: Josh Stone Date: Wed Mar 4 18:51:28 2009 -0800 Make iterate_over_functions work with base_querys * 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...) commit dd22832afe6c337eb020001834266ad1e7678b2c Author: Josh Stone Date: Wed Mar 4 18:32:54 2009 -0800 Make session.module_cache init more consistently 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 ----------------------------------------------------------------------- Summary of changes: buildrun.cxx | 75 ++++++ buildrun.h | 1 + session.h | 2 + stapprobes.5.in | 36 +++ tapsets.cxx | 768 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 5 files changed, 861 insertions(+), 21 deletions(-) hooks/post-receive -- systemtap: system-wide probe/trace tool