Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751551AbbHOLrl (ORCPT ); Sat, 15 Aug 2015 07:47:41 -0400 Received: from mail4.hitachi.co.jp ([133.145.228.5]:57567 "EHLO mail4.hitachi.co.jp" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750932AbbHOLrj (ORCPT ); Sat, 15 Aug 2015 07:47:39 -0400 X-AuditID: 85900ec0-9b9c6b9000001a57-28-55cf26856f15 Subject: [RFC PATCH perf/core v3 00/17] perf-probe --cache and SDT support From: Masami Hiramatsu To: Arnaldo Carvalho de Melo Cc: Peter Zijlstra , linux-kernel@vger.kernel.org, Adrian Hunter , Ingo Molnar , Paul Mackerras , Jiri Olsa , Namhyung Kim , Borislav Petkov , Hemant Kumar Date: Sat, 15 Aug 2015 20:42:53 +0900 Message-ID: <20150815114252.13642.62690.stgit@localhost.localdomain> User-Agent: StGit/0.17.1-dirty MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-Brightmail-Tracker: AAAAAA== Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 5271 Lines: 122 Hi, Here is the 3rd version of the patchset for probe-cache and initial SDT support which are going to be perf-cache finally. The previous version is here; https://lkml.org/lkml/2015/7/15/221 This version improves SDT support for perf-list and perf-record. It is still just a basic support (no wildcard support, nor @FILE/@BUILDID support). So this is an ongoing work report :) As we discussed on the previous series, now all SDT events have "sdt_" prefix on the provider name. We also should support "@FILE" or "@BUILDID" suffixes for same-name SDTs. perf-list shows only SDTs on existing binaries (no old/deleted files) and if the same-name events are shown, it adds "@FILE@BUILDID" suffixes after the events to clarify on which binary the SDT exists. ---- # perf buildid-cache -a /usr/bin/gcc # perf list sdt List of pre-defined events (to be used in -e): sdt_libgcc:unwind [SDT event] sdt_libstdcxx:catch [SDT event] sdt_libstdcxx:rethrow [SDT event] sdt_libstdcxx:throw [SDT event] # perf buildid-cache -a /usr/lib/libstdc++.so.6 # perf list sdt List of pre-defined events (to be used in -e): sdt_libgcc:unwind [SDT event] sdt_libstdcxx:catch@/usr/bin/gcc@0x05d261236bbb [SDT event] sdt_libstdcxx:catch@/usr/lib/libstdc++.so.6.0.19@0xcd6ac0e6236c [SDT event] sdt_libstdcxx:rethrow@/usr/bin/gcc@0x05d261236bbb [SDT event] sdt_libstdcxx:rethrow@/usr/lib/libstdc++.so.6.0.19@0xcd6ac0e6236c [SDT event] sdt_libstdcxx:throw@/usr/bin/gcc@0x05d261236bbb [SDT event] sdt_libstdcxx:throw@/usr/lib/libstdc++.so.6.0.19@0xcd6ac0e6236c [SDT event] ---- In this version, I used "@" separater for both FILE and BUILDID, but I think it is also possible to use "%" for BUILDID. (BTW, I've cut down the BUILDID to the first 12 chars, and added "0x") TODOs: - (perf record) Allow glob matching for SDT event to specify events. - (perf record) Support @FILE/@BUILDID suffix to record specific SDTs. - (perf record) Try to unregister SDT events after record. - (perf probe) Allow glob matching for pre-cached events. - (perf probe) Support @FILE/@BUILDID suffix for pre-cached events. (also removes -x option when using pre-cached events) - (ftrace) Support multiple SDTs on single event. Since multiple same SDTs are defined in a single binary (e.g. libc:setjump has 3 different entries on libc-2.17.so), we need the last feature on ftrace, so that a single uprobe event can occur several different probe points. Thank you, --- Hemant Kumar (1): perf/sdt: ELF support for SDT Masami Hiramatsu (16): perf probe: Use strbuf for making strings in probe-event.c perf-buildid-cache: Use path/to/bin/buildid/elf instead of path/to/bin/buildid perf buildid: Introduce sysfs/filename__sprintf_build_id perf: Add lsdir to read a directory perf-buildid-cache: Use lsdir for looking up buildid caches perf probe: Add --cache option to cache the probe definitions perf probe: Use cache entry if possible perf probe: Show all cached probes perf probe: Remove caches when --cache is given perf probe: Add group name support perf-probe: Set default kprobe group name if it is not given perf buildid-cache: Scan and import user SDT events to probe cache perf probe: Accept %sdt and %cached event name perf-list: Show SDT events perf-list: Skip SDTs placed in invalid binaries perf record: Support recording SDT events tools/perf/Documentation/perf-probe.txt | 14 + tools/perf/builtin-buildid-cache.c | 14 - tools/perf/builtin-buildid-list.c | 24 + tools/perf/builtin-list.c | 3 tools/perf/builtin-probe.c | 6 tools/perf/util/build-id.c | 255 +++++++++++--- tools/perf/util/build-id.h | 8 tools/perf/util/dso.h | 5 tools/perf/util/parse-events.c | 142 ++++++++ tools/perf/util/parse-events.h | 2 tools/perf/util/probe-event.c | 574 ++++++++++++++++++++----------- tools/perf/util/probe-event.h | 10 - tools/perf/util/probe-file.c | 467 +++++++++++++++++++++++++ tools/perf/util/probe-file.h | 28 ++ tools/perf/util/probe-finder.c | 14 - tools/perf/util/symbol-elf.c | 252 ++++++++++++++ tools/perf/util/symbol.c | 2 tools/perf/util/symbol.h | 22 + tools/perf/util/util.c | 34 ++ tools/perf/util/util.h | 4 20 files changed, 1580 insertions(+), 300 deletions(-) -- Masami HIRAMATSU Linux Technology Research Center, System Productivity Research Dept. Center for Technology Innovation - Systems Engineering Hitachi, Ltd., Research & Development Group E-mail: masami.hiramatsu.pt@hitachi.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/