From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752851AbbFEVOw (ORCPT ); Fri, 5 Jun 2015 17:14:52 -0400 Received: from mga03.intel.com ([134.134.136.65]:37031 "EHLO mga03.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751688AbbFEVOr (ORCPT ); Fri, 5 Jun 2015 17:14:47 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.13,560,1427785200"; d="scan'208";a="721577626" From: Andi Kleen To: sukadev@linux.vnet.ibm.com Cc: jolsa@redhat.com, acme@kernel.org, linux-kernel@vger.kernel.org, Andi Kleen Subject: [PATCH 5/5] perf, tools: Expand PMU events by prefetch match Date: Fri, 5 Jun 2015 14:14:38 -0700 Message-Id: <1433538878-13321-6-git-send-email-andi@firstfloor.org> X-Mailer: git-send-email 2.4.2 In-Reply-To: <1433538878-13321-1-git-send-email-andi@firstfloor.org> References: <1433538878-13321-1-git-send-email-andi@firstfloor.org> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Andi Kleen When the user specifies a pmu directly, expand it automatically with a prefix match, similar as we do for the normal aliases now. This allows to specify attributes for duplicated boxes quickly. For example uncore_cbox_{0,8}/.../ can be now specified as cbox/.../ and it gets automatically expanded. Signed-off-by: Andi Kleen --- tools/perf/util/parse-events.y | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/tools/perf/util/parse-events.y b/tools/perf/util/parse-events.y index 2b90fb8..eb9aced 100644 --- a/tools/perf/util/parse-events.y +++ b/tools/perf/util/parse-events.y @@ -209,7 +209,23 @@ PE_NAME '/' event_config '/' struct list_head *list; ALLOC_LIST(list); - ABORT_ON(parse_events_add_pmu(data, list, $1, $3)); + if (parse_events_add_pmu(data, list, $1, $3)) { + struct perf_pmu *pmu = NULL; + int ok = 0; + + while ((pmu = perf_pmu__scan(pmu)) != NULL) { + char *name = pmu->name; + + if (!strncmp(name, "uncore_", 7)) + name += 7; + if (!strncmp($1, name, strlen($1))) { + if (!parse_events_add_pmu(data, list, pmu->name, $3)) + ok++; + } + } + if (!ok) + YYABORT; + } parse_events__free_terms($3); $$ = list; } -- 2.4.2