From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1240 invoked by alias); 30 Mar 2010 23:41:17 -0000 Received: (qmail 1213 invoked by uid 9586); 30 Mar 2010 23:41:16 -0000 Date: Tue, 30 Mar 2010 23:41:00 -0000 Message-ID: <20100330234116.1202.qmail@sourceware.org> From: jistone@sourceware.org To: systemtap-cvs@sourceware.org Subject: [SCM] systemtap: system-wide probe/trace tool branch, master, updated. release-1.2-23-g4df79aa X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: 1713a05f2afa6df663a7fd3552849759a7d3ff48 X-Git-Newrev: 4df79aaf86a9b6dfbccc3c51946024a30ba43726 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: 2010-q1/txt/msg00287.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 4df79aaf86a9b6dfbccc3c51946024a30ba43726 (commit) via 5898b6e1087175bc85e35ba147334fe87e3d7d06 (commit) from 1713a05f2afa6df663a7fd3552849759a7d3ff48 (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 4df79aaf86a9b6dfbccc3c51946024a30ba43726 Author: Josh Stone Date: Tue Mar 30 14:54:39 2010 -0700 Use a wider cache for simple function lookups When we have many individual function lookups, like the nearly 1000 with syscall.*, each one will iterate every CU in the module (M) and then do a cache lookup in N entries. That's a thousand MlogN lookups. We can instead keep the functions in a module-wide map, and then the complexity is just a thousand logMN lookups. Before: $ ./run-stap -l 'syscall.**' --vp 01 >/dev/null Pass 2: analyzed script: 793 probe(s), 11 function(s), 20 embed(s), 0 global(s) using 245872virt/147304res/78272shr kb, in 1390usr/60sys/1448real ms. After: $ ./run-stap -l 'syscall.**' --vp 01 >/dev/null Pass 2: analyzed script: 793 probe(s), 11 function(s), 20 embed(s), 0 global(s) using 246228virt/147616res/78276shr kb, in 720usr/60sys/782real ms. * dwflpp.cxx (dwflpp::iterate_single_function): Do a simple function lookup based on a module-wide cache. (dwflpp::mod_function_caching_callback): Helper for above. * tapsets.cxx (dwarf_query::query_module_functions): Query a single function from the module-wide cache. (dwarf_query::query_module_dwarf): Use above for simple cases. commit 5898b6e1087175bc85e35ba147334fe87e3d7d06 Author: Josh Stone Date: Mon Mar 29 18:24:04 2010 -0700 Remove unused code from iterate_over_functions * dwflpp.cxx (dwflpp::iterate_over_functions): No caller is using has_statement_num anymore (since 6b517475), so kill it. * tapsets.cxx (query_cu): Let the default call rule the day. ----------------------------------------------------------------------- Summary of changes: dwflpp.cxx | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++------- dwflpp.h | 14 ++++++++--- tapsets.cxx | 61 +++++++++++++++++++++++++++++++++++++++++++++++++-- 3 files changed, 128 insertions(+), 16 deletions(-) hooks/post-receive -- systemtap: system-wide probe/trace tool