Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753033Ab0DLRK0 (ORCPT ); Mon, 12 Apr 2010 13:10:26 -0400 Received: from mx1.redhat.com ([209.132.183.28]:2939 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752335Ab0DLRKY (ORCPT ); Mon, 12 Apr 2010 13:10:24 -0400 From: Masami Hiramatsu Subject: [PATCH -tip v3 00/10] perf-probe updates - data-structure support improvements, etc. To: Ingo Molnar , Arnaldo Carvalho de Melo , lkml Cc: Paul Mackerras , Peter Zijlstra , Mike Galbraith , Frederic Weisbecker , systemtap , DLE Date: Mon, 12 Apr 2010 13:16:46 -0400 Message-ID: <20100412171646.3790.64715.stgit@localhost6.localdomain6> User-Agent: StGIT/0.14.3 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2922 Lines: 71 Hi Ingo and Arnaldo, Here are several updates of perf-probe. This series improves data structure accessing. In this version, I added 'removing x*()' patches. - Set the name of argument which traces a data structure member as the last member of the data structure reference (e.g. f_mode of file->f_mode). This allows us to use perf-trace for tracin data-structure members. - Add the basic type support. This allows us to fetch the memory with specified bitwidth. Usually, data-structure members are packed on the memory, this means if we want to read a member from memory, we have to access it with type casting. kprobe-tracer now support tracing argument with basic types (u8,u16,u32,u64,s8,s16,s32,s64), and perf-probe decodes the type information of the members. - Support canonical frame address, which is used for refering frame-base on the kernel built without CONFIG_FRAME_POINTER. - Remove almost all die()s and xzalloc/xstr*dup from util code, according to acme's advice. Thanks! TODOs (possible features): - Support string/dynamic arrays (*var, var[N..M]) - Support tracing static variables (non global) - Support array element (var[N]) - Support dynamic array-indexing (var[var2]) - Support force type-casting ((type)var) - Show what deta-structure member is assigned to each argument. - Better support for probes on modules - More debugger like enhancements(%next, --disasm, etc.) Thank you, --- Masami Hiramatsu (10): perf probe: Remove xstrdup()/xstrndup() from util/probe-{event,finder}.c perf probe: Remove xzalloc() from util/probe-{event,finder}.c perf probe: Remove die() from probe-event code perf probe: Remove die() from probe-finder code perf probe: Support DW_OP_call_frame_cfa in debuginfo perf probe: Support basic type casting perf probe: Query basic types from debuginfo tracing/kprobes: Support basic types on dynamic events perf probe: Use the last field name as the argument name perf probe: Support argument name Documentation/trace/kprobetrace.txt | 4 kernel/trace/trace.h | 16 - kernel/trace/trace_kprobe.c | 535 ++++++++++++------- tools/perf/Documentation/perf-probe.txt | 11 tools/perf/builtin-probe.c | 74 ++- tools/perf/util/probe-event.c | 855 ++++++++++++++++++++++--------- tools/perf/util/probe-event.h | 27 + tools/perf/util/probe-finder.c | 647 ++++++++++++++++------- tools/perf/util/probe-finder.h | 1 9 files changed, 1469 insertions(+), 701 deletions(-) -- Masami Hiramatsu e-mail: mhiramat@redhat.com -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/