From patchwork Mon Dec 22 14:37:10 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiri Olsa X-Patchwork-Id: 423412 Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id AD77F1400E7 for ; Tue, 23 Dec 2014 01:38:21 +1100 (AEDT) Received: from ozlabs.org (ozlabs.org [103.22.144.67]) by lists.ozlabs.org (Postfix) with ESMTP id 9AA481A0E93 for ; Tue, 23 Dec 2014 01:38:21 +1100 (AEDT) X-Original-To: linuxppc-dev@lists.ozlabs.org Delivered-To: linuxppc-dev@lists.ozlabs.org Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id F16EC1A0D60 for ; Tue, 23 Dec 2014 01:37:48 +1100 (AEDT) Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id sBMEbEn0017689 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Mon, 22 Dec 2014 09:37:14 -0500 Received: from krava.brq.redhat.com (dhcp-1-124.brq.redhat.com [10.34.1.124]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with SMTP id sBMEbBSE022210; Mon, 22 Dec 2014 09:37:12 -0500 Date: Mon, 22 Dec 2014 15:37:10 +0100 From: Jiri Olsa To: Sukadev Bhattiprolu Subject: Re: [PATCH v6 1/4] tools/perf: support parsing parameterized events Message-ID: <20141222143710.GA29096@krava.brq.redhat.com> References: <1419234567-22784-1-git-send-email-sukadev@linux.vnet.ibm.com> <1419234567-22784-2-git-send-email-sukadev@linux.vnet.ibm.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <1419234567-22784-2-git-send-email-sukadev@linux.vnet.ibm.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-Scanned-By: MIMEDefang 2.68 on 10.5.11.22 Cc: peterz@infradead.org, linux-kernel@vger.kernel.org, Arnaldo Carvalho de Melo , dev@codyps.com, Paul Mackerras , linuxppc-dev@lists.ozlabs.org X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org Sender: "Linuxppc-dev" On Sun, Dec 21, 2014 at 11:49:24PM -0800, Sukadev Bhattiprolu wrote: SNIP > + } > > switch (format->value) { > case PERF_PMU_FORMAT_VALUE_CONFIG: > @@ -592,11 +629,16 @@ static int pmu_config_term(struct list_head *formats, > } > > /* > - * XXX If we ever decide to go with string values for > - * non-hardcoded terms, here's the place to translate > - * them into value. > + * Either directly use a numeric term, or try to translate string terms > + * using event parameters. > */ > - pmu_format_value(format->bits, term->val.num, vp, zero); > + if (term->type_val == PARSE_EVENTS__TERM_TYPE_NUM) > + val = term->val.num; > + else > + if (pmu_resolve_param_term(term, head_terms, &val)) > + return -EINVAL; > + I'm ok with the change logic, but I'm missing here check for the 'term' string value to be '?', so we force subst terms to have '?' as value.. I believe thats what we decided in the previous set discussion, right? I guess the it'd be nice to parse it directly in the bison code like below (could be done later), but I'd be ok with simple check on this place for now. thanks, jirka diff --git a/tools/perf/util/parse-events.y b/tools/perf/util/parse-events.y index 93c4c9fbc922..7e021c64d5cc 100644 --- a/tools/perf/util/parse-events.y +++ b/tools/perf/util/parse-events.y @@ -484,6 +484,14 @@ PE_TERM '=' PE_VALUE $$ = term; } | +PE_TERM '=' PE_SUBST +{ + struct parse_events_term *term; + + ABORT_ON(parse_events_term__subst(&term, (int)$1, NULL, NULL)); + $$ = term; +} +| PE_TERM { struct parse_events_term *term;