Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754237AbdLHQML (ORCPT ); Fri, 8 Dec 2017 11:12:11 -0500 Received: from mail.kernel.org ([198.145.29.99]:43608 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753791AbdLHQMJ (ORCPT ); Fri, 8 Dec 2017 11:12:09 -0500 DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 70DF72199C Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=mhiramat@kernel.org Date: Sat, 9 Dec 2017 01:12:06 +0900 From: Masami Hiramatsu To: Paul Clarke Cc: Arnaldo Carvalho de Melo , bhargavb , linux-kernel@vger.kernel.org, Ravi Bangoria , linux-rt-users@vger.kernel.org, linux-perf-users@vger.kernel.org Subject: Re: [PATCH v2 2/5] perf-probe: Cut off the version suffix from event name Message-Id: <20171209011206.fa1597845cbd4a495e74cb52@kernel.org> In-Reply-To: <3cfc7d95-0956-3e7b-9d36-db5bda9dc753@us.ibm.com> References: <151263115609.13843.6362262297053841418.stgit@devbox> <151263122864.13843.10998234736675352577.stgit@devbox> <20171208120148.63dcf5fb271cb8654e70b5cf@kernel.org> <3cfc7d95-0956-3e7b-9d36-db5bda9dc753@us.ibm.com> X-Mailer: Sylpheed 3.5.1 (GTK+ 2.24.31; x86_64-redhat-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3397 Lines: 84 On Fri, 8 Dec 2017 08:49:46 -0600 Paul Clarke wrote: > > > On 12/07/2017 09:01 PM, Masami Hiramatsu wrote: > > On Thu, 7 Dec 2017 10:34:51 -0600 > > Paul Clarke wrote: > >> On 12/07/2017 01:20 AM, Masami Hiramatsu wrote: > >>> Cut off the version suffix (e.g. @GLIBC_2.2.5 etc.) from > >>> automatic generated event name. This fixes wildcard event > >>> adding like below case; > >>> > >>> ===== > >>> # perf probe -x /lib64/libc-2.25.so malloc* > >>> Internal error: "malloc_get_state@GLIBC_2" is wrong event name. > >>> Error: Failed to add events. > >>> ===== > >>> > >>> This failure was caused by a versioned suffix symbol. > >>> With this fix, perf probe automatically cuts the > >>> suffix after @ as below. > >>> > >>> ===== > >>> # ./perf probe -x /lib64/libc-2.25.so malloc* > >>> Added new events: > >>> probe_libc:malloc_printerr (on malloc* in /usr/lib64/libc-2.25.so) > >>> probe_libc:malloc_consolidate (on malloc* in /usr/lib64/libc-2.25.so) > >>> probe_libc:malloc_check (on malloc* in /usr/lib64/libc-2.25.so) > >>> probe_libc:malloc_hook_ini (on malloc* in /usr/lib64/libc-2.25.so) > >>> probe_libc:malloc (on malloc* in /usr/lib64/libc-2.25.so) > >>> probe_libc:malloc_trim (on malloc* in /usr/lib64/libc-2.25.so) > >>> probe_libc:malloc_usable_size (on malloc* in /usr/lib64/libc-2.25.so) > >>> probe_libc:malloc_stats (on malloc* in /usr/lib64/libc-2.25.so) > >>> probe_libc:malloc_info (on malloc* in /usr/lib64/libc-2.25.so) > >>> probe_libc:mallochook (on malloc* in /usr/lib64/libc-2.25.so) > >>> probe_libc:malloc_get_state (on malloc* in /usr/lib64/libc-2.25.so) > >>> probe_libc:malloc_set_state (on malloc* in /usr/lib64/libc-2.25.so) > >>> > >>> You can now use it in all perf tools, such as: > >>> > >>> perf record -e probe_libc:malloc_set_state -aR sleep 1 > >>> > >>> ===== > >> > >> I think this will still fall over for a case where there are multiple versions of the same base symbol, like: > >> > >> $ nm /lib64/libc.so.6 | egrep ' sched_getaffinity' > >> 0000000000134430 T sched_getaffinity@GLIBC_2.3.3 > >> 00000000000dcf00 T sched_getaffinity@@GLIBC_2.3.4 > > > > No, in that case perf probe adds number suffix (_1, _2...) for new events :) > > > > This feature (number suffix) is anyway required for the case that inlined > > function is spreaded in multiple places. I think this is natural for perf probe. > > I can live with that. > > Is the versioning tag retained for display with "perf probe -l" display, so the probe points can be distinguished? > > In other words, will one see: > # perf probe -l > probe_libc:sched_getaffinity (on sched_getaffinity@GLIBC_2.3.3 in /usr/lib64/libc-2.17.so) > probe_libc:sched_getaffinity_1 (on sched_getaffinity@@GLIBC_2.3.4 in /usr/lib64/libc-2.17.so) Yes, this style, since the symbols are recorded with version suffixes. Thank you, > or > # perf probe -l > probe_libc:sched_getaffinity (on sched_getaffinity in /usr/lib64/libc-2.17.so) > probe_libc:sched_getaffinity_1 (on sched_getaffinity in /usr/lib64/libc-2.17.so) > > PC > > -- > To unsubscribe from this list: send the line "unsubscribe linux-perf-users" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html -- Masami Hiramatsu