From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755827AbcJNMcZ (ORCPT ); Fri, 14 Oct 2016 08:32:25 -0400 Received: from mx1.redhat.com ([209.132.183.28]:38758 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932286AbcJNMcD (ORCPT ); Fri, 14 Oct 2016 08:32:03 -0400 Date: Fri, 14 Oct 2016 14:31:59 +0200 From: Jiri Olsa To: Andi Kleen Cc: acme@kernel.org, jolsa@kernel.org, sukadev@linux.vnet.ibm.com, eranian@google.com, linux-kernel@vger.kernel.org, Andi Kleen Subject: Re: [PATCH 04/10] perf, tools: Support per pmu json aliases Message-ID: <20161014123159.GA2834@krava> References: <1476393332-20732-1-git-send-email-andi@firstfloor.org> <1476393332-20732-5-git-send-email-andi@firstfloor.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1476393332-20732-5-git-send-email-andi@firstfloor.org> User-Agent: Mutt/1.7.0 (2016-08-17) X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.27]); Fri, 14 Oct 2016 12:32:03 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Oct 13, 2016 at 02:15:26PM -0700, Andi Kleen wrote: > From: Andi Kleen > > Add support for registering json aliases per PMU. Any alias > with an unit matching the prefix is registered to the PMU. > Uncore has multiple instances of most units, so all > these aliases get registered for each individual PMU > (this is important later to run the event on every instance > of the PMU). > > To avoid printing the events multiple times in perf list > filter out duplicated events during printing. > > Signed-off-by: Andi Kleen > --- > tools/perf/util/pmu.c | 17 +++++++++++------ > 1 file changed, 11 insertions(+), 6 deletions(-) > > diff --git a/tools/perf/util/pmu.c b/tools/perf/util/pmu.c > index 363cb7b0ccc7..f8a052a793b1 100644 > --- a/tools/perf/util/pmu.c > +++ b/tools/perf/util/pmu.c > @@ -509,7 +509,7 @@ char * __weak get_cpuid_str(void) > * to the current running CPU. Then, add all PMU events from that table > * as aliases. > */ > -static void pmu_add_cpu_aliases(struct list_head *head) > +static void pmu_add_cpu_aliases(struct list_head *head, const char *name) > { > int i; > struct pmu_events_map *map; > @@ -575,6 +575,7 @@ static struct perf_pmu *pmu_lookup(const char *name) > LIST_HEAD(format); > LIST_HEAD(aliases); > __u32 type; > + int noff = 0; > > /* > * The pmu data we store & need consists of the pmu > @@ -584,15 +585,16 @@ static struct perf_pmu *pmu_lookup(const char *name) > if (pmu_format(name, &format)) > return NULL; > > - if (pmu_aliases(name, &aliases)) > + if (pmu_type(name, &type)) > return NULL; > > - if (!strcmp(name, "cpu")) > - pmu_add_cpu_aliases(&aliases); > - > - if (pmu_type(name, &type)) > + if (pmu_aliases(name, &aliases)) > return NULL; > > + if (!strncmp(name, "uncore_", 7)) > + noff = 7; please do this (best in a function) within pmu_add_cpu_aliases in the check itself: if (pe->pmu && strncmp(pe->pmu, name, strlen(pe->pmu))) continue; Also any chance the json Unit field could have a uncore prefix already? would be nice to see more info about those fields in changelog thanks, jirka