From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753969AbbGTFrw (ORCPT ); Mon, 20 Jul 2015 01:47:52 -0400 Received: from mail-ie0-f180.google.com ([209.85.223.180]:33454 "EHLO mail-ie0-f180.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752837AbbGTFrv (ORCPT ); Mon, 20 Jul 2015 01:47:51 -0400 MIME-Version: 1.0 In-Reply-To: <20150719042412.GB24219@danjae.kornet> References: <20150715091352.8915.87480.stgit@localhost.localdomain> <55A7215F.40803@linux.vnet.ibm.com> <55A874C6.5030202@hitachi.com> <20150719042412.GB24219@danjae.kornet> From: Brendan Gregg Date: Sun, 19 Jul 2015 22:47:31 -0700 Message-ID: Subject: Re: Re: [RFC PATCH perf/core v2 00/16] perf-probe --cache and SDT support To: Namhyung Kim Cc: Masami Hiramatsu , Hemant Kumar , Arnaldo Carvalho de Melo , Peter Zijlstra , LKML , Adrian Hunter , Ingo Molnar , Paul Mackerras , Jiri Olsa , Borislav Petkov Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org G'Day Masami-san, Namhyung, I'm really looking forward to this feature -- very useful, thanks!... On Sat, Jul 18, 2015 at 9:24 PM, Namhyung Kim wrote: > Hi Masami, > > On Fri, Jul 17, 2015 at 12:21:42PM +0900, Masami Hiramatsu wrote: >> Now I'm thinking that we should avoid using %event syntax for perf-list >> and perf-record to avoid confusion. For example, suppose that we have >> "libfoo:bar" SDT event, when we just scanned the libfoo binary and >> use it via perf-record, we'll run perf record -e "%libfoo:bar". >> However, after we set the probe via perf-probe, we have to run >> perf record -e "libfoo:bar". That difference looks no good. >> So, I think in both case it should accept -e "libfoo:bar" syntax. > > I don't remember how the SDT events should be shown to users. Sorry > if I'm missing something here. > > AFAIK an SDT event consists of a provider and an event name. So it > can be simply 'provider:event' like tracepoints or > 'binary:provider_event' like uprobes. > > I like the former because it's simpler but it needs to guarantee that > it doesn't clash with existing tracepoints/[ku]probes. So IIUC we > chose the '%' sign to distinguish them. But after setting a probe at > it, the group name should be the binary name. So the whole event name > might be changed, and this is not good. I don't think we should worry about the clash, as the provider name should differentiate. So I think "libfoo:bar" with perf record is better. After adding them to the cache (via % if needed), I'd think they would be best looking like tracepoints. Eg, listing them together they can be differentiated, something like: # perf list [...] block:block_rq_abort [Tracepoint event] block:block_rq_requeue [Tracepoint event] block:block_rq_complete [Tracepoint event] [...] libc:memory_heap_new [User tracepoint event] libc:memory_heap_free [User tracepoint event] libc:memory_heap_more [User tracepoint event] [...] Then used the same. Brendan