From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11091 invoked by alias); 27 Aug 2014 20:20:06 -0000 Mailing-List: contact systemtap-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: systemtap-owner@sourceware.org Received: (qmail 10770 invoked by uid 89); 27 Aug 2014 20:20:03 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=AWL,BAYES_00,RP_MATCHES_RCVD autolearn=ham version=3.3.2 X-HELO: e28smtp06.in.ibm.com Received: from e28smtp06.in.ibm.com (HELO e28smtp06.in.ibm.com) (122.248.162.6) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-SHA encrypted) ESMTPS; Wed, 27 Aug 2014 20:20:01 +0000 Received: from /spool/local by e28smtp06.in.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Thu, 28 Aug 2014 01:49:56 +0530 Received: from d28dlp02.in.ibm.com (9.184.220.127) by e28smtp06.in.ibm.com (192.168.1.136) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; Thu, 28 Aug 2014 01:49:54 +0530 Received: from d28relay03.in.ibm.com (d28relay03.in.ibm.com [9.184.220.60]) by d28dlp02.in.ibm.com (Postfix) with ESMTP id 48AA43940057 for ; Thu, 28 Aug 2014 01:49:54 +0530 (IST) Received: from d28av02.in.ibm.com (d28av02.in.ibm.com [9.184.220.64]) by d28relay03.in.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id s7RKMH525767548 for ; Thu, 28 Aug 2014 01:52:17 +0530 Received: from d28av02.in.ibm.com (localhost [127.0.0.1]) by d28av02.in.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id s7RKJr62023654 for ; Thu, 28 Aug 2014 01:49:54 +0530 Received: from [192.168.122.23] ([9.77.124.2]) by d28av02.in.ibm.com (8.14.4/8.14.4/NCO v10.0 AVin) with ESMTP id s7RKJdZi023024; Thu, 28 Aug 2014 01:49:39 +0530 Subject: [PATCH v3 3/3] perf/sdt : Documentation support To: linux-kernel@vger.kernel.org From: Hemant Kumar Cc: srikar@linux.vnet.ibm.com, peterz@infradead.org, oleg@redhat.com, hegdevasant@linux.vnet.ibm.com, mingo@redhat.com, anton@redhat.com, systemtap@sourceware.org, namhyung@kernel.org, masami.hiramatsu.pt@hitachi.com, aravinda@linux.vnet.ibm.com, penberg@iki.fi Date: Wed, 27 Aug 2014 20:20:00 -0000 Message-ID: <20140827201910.11095.9414.stgit@hemant-fedora> In-Reply-To: <20140827200933.11095.96814.stgit@hemant-fedora> References: <20140827200933.11095.96814.stgit@hemant-fedora> User-Agent: StGit/0.16 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-TM-AS-MML: disable X-Content-Scanned: Fidelis XPS MAILER x-cbid: 14082720-9574-0000-0000-000000DADA1D X-SW-Source: 2014-q3/txt/msg00196.txt.bz2 Adds documentation for perf support to SDT events. Signed-off-by : Hemant Kumar --- tools/perf/Documentation/SDT-support.txt | 48 ++++++++++++++++++++++++++++++ tools/perf/Documentation/perf-list.txt | 4 ++- 2 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 tools/perf/Documentation/SDT-support.txt diff --git a/tools/perf/Documentation/SDT-support.txt b/tools/perf/Documentation/SDT-support.txt new file mode 100644 index 0000000..273912b --- /dev/null +++ b/tools/perf/Documentation/SDT-support.txt @@ -0,0 +1,48 @@ +Support to perf for listing the SDT markers : + +This helps in listing dtrace style markers(SDT) present in user space +applications through perf. SDT Notes/markers are placed at important places by the +developers. They have a negligible overhead when not enabled. +We can enable them and probe at these places and find some important information +like the arguments' values, etc. + +How to add SDT markers into user applications: +We need to have this header sys/sdt.h present. +sys/sdt.h used is version 3. +If not present, install systemtap-sdt-devel package (for fedora-18). + +A very simple example: + +$ cat user_app.c + +#include + +void main () { + /* ... */ + /* + * user_app is the provider name + * test_probe is the marker name + */ + STAP_PROBE(user_app, test_mark); + /* ... */ +} + +$ gcc user_app.c +$ perf list sdt ./a.out +./a.out: +%user_app:test_mark + +For more information on usage of SDT markers, visit the following link: +http://sourceware.org/systemtap/wiki/UserSpaceProbeImplementation + +This link shows an example of marker probing with Systemtap: +https://sourceware.org/systemtap/wiki/AddingUserSpaceProbingToApps + +- Markers in binaries : +These SDT markers are present in the ELF in the section named +".note.stapsdt". +This section contains the name of the marker, its provider, type, location, base +address, semaphore address. +We can retrieve these values using the members name_off and desc_off in +Nhdr structure. If these markers are not enabled, they are present in the ELF in +the form of a "nop" instruction. diff --git a/tools/perf/Documentation/perf-list.txt b/tools/perf/Documentation/perf-list.txt index 6fce6a6..5c72785 100644 --- a/tools/perf/Documentation/perf-list.txt +++ b/tools/perf/Documentation/perf-list.txt @@ -8,7 +8,7 @@ perf-list - List all symbolic event types SYNOPSIS -------- [verse] -'perf list' [hw|sw|cache|tracepoint|pmu|event_glob] +'perf list' [hw|sw|cache|tracepoint|pmu|sdt|event_glob] DESCRIPTION ----------- @@ -108,6 +108,8 @@ To limit the list use: . 'pmu' to print the kernel supplied PMU events. +. 'sdt' to print the SDT events present in a file. Takes a file_name as an argument. + . If none of the above is matched, it will apply the supplied glob to all events, printing the ones that match.