This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
Re: Re: [PATCH v4 2/3] Support for perf to probe into SDT markers:
- From: Masami Hiramatsu <masami dot hiramatsu dot pt at hitachi dot com>
- To: Pekka Enberg <penberg at kernel dot org>
- Cc: Hemant Kumar <hkshaw at linux dot vnet dot ibm dot com>, LKML <linux-kernel at vger dot kernel dot org>, Srikar Dronamraju <srikar at linux dot vnet dot ibm dot com>, Peter Zijlstra <peterz at infradead dot org>, Oleg Nesterov <oleg at redhat dot com>, hegdevasant at linux dot vnet dot ibm dot com, Ingo Molnar <mingo at redhat dot com>, anton at redhat dot com, systemtap at sourceware dot org, Namhyung Kim <namhyung at kernel dot org>, aravinda at linux dot vnet dot ibm dot com
- Date: Mon, 28 Oct 2013 20:23:44 +0900
- Subject: Re: Re: [PATCH v4 2/3] Support for perf to probe into SDT markers:
- Authentication-results: sourceware.org; auth=none
- References: <20131023044511 dot 1886 dot 82571 dot stgit at hemant-fedora> <20131023050502 dot 1886 dot 15779 dot stgit at hemant-fedora> <CAOJsxLFKm3TxeTmGjbpr1r4sZ8fHcM481-5BM_Cq0J8hhtvBqQ at mail dot gmail dot com>
(2013/10/25 21:38), Pekka Enberg wrote:
> Hello Hemant,
>
> On Wed, Oct 23, 2013 at 7:05 AM, Hemant Kumar <hkshaw@linux.vnet.ibm.com> wrote:
>> This allows perf to probe into the sdt markers/notes present in
>> the libraries and executables. We try to find the associated location
>> and handle prelinking (since, stapsdt notes section is not allocated
>> during runtime). Prelinking is handled with the help of base
>> section which is allocated during runtime. This address can be compared
>> with the address retrieved from the notes' description. If its different,
>> we can take this difference and then add to the note's location.
>>
>> We can use existing '-a/--add' option to add events for sdt markers.
>> Also, we can add multiple events at once using the same '-a' option.
>>
>> Usage:
>> perf probe -x /lib64/libc.so.6 -a 'my_event=%libc:setjmp'
>>
>> Output:
>> Added new event:
>> libc:my_event (on 0x35981)
>>
>> You can now use it in all perf tools, such as:
>>
>> perf record -e libc:my_event -aR sleep 1
>
> Is there a technical reason why 'perf list' could not show all the
> available SDT markers on a system and that the 'market to event'
> mapping cannot happen automatically?
By the way, what happens if multiple binaries has same SDT marker?
Yeah, perf list shows just one and ignores others. However, if we
probe one, and run binary which use the other one, user will never
see the marker.
So, it still needs a concrete binary path to list or, we should
support a syntax which specify actual binary, as like as below.
perf probe 'my_event=%libc:setjmp@/lib64/libc.so.6'
And perf list may show the marker as in same syntax (for copy&paste).
# perf list --sdt
%libc:setjmp@/lib64/libc.so.6
...
Note that we need '%' to separate namespace :(, since user can define
any marker(provider) name in their binary...
Thank you,
--
Masami HIRAMATSU
IT Management Research Dept. Linux Technology Center
Hitachi, Ltd., Yokohama Research Laboratory
E-mail: masami.hiramatsu.pt@hitachi.com