Received: by 10.192.165.148 with SMTP id m20csp3187516imm; Mon, 7 May 2018 08:05:17 -0700 (PDT) X-Google-Smtp-Source: AB8JxZp0agFSa+6I7zRV4gFoG7aSqLL46weRWezAN3qzXNWXkuuBXOU4VEJ17p/0qTV4E22Tp9qr X-Received: by 2002:a9d:2c91:: with SMTP id p17-v6mr28473928otb.160.1525705517508; Mon, 07 May 2018 08:05:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1525705517; cv=none; d=google.com; s=arc-20160816; b=W6v4q0UrGZy07uRpOMF/vefrVwNFHlGcUyXZPrc7s+fj5lrTJZDdxrmEE3K61E01bq XDkAu4e5Ohj8iti41nAAH6uvHbKmM2MFLy12pth8n8brjpdatPPftENIUdlBxSlIfXFX CZc3vBhKqU0+iRjUwvjiOQ+2b1uV90/UgGMT+V9tymP7W0yT6S3jNhG+hh1VvpdG04gJ IafVK2VuodMIe6bZ6LVzYK1AF/7WZmVMejDCIsmQyd+a0tg9jMvRHyjsY1pXHsVQQcTH mC0gqjatELt2Obpg7TFWA2sOSbUhvcDHzVJWw741EVsOPMN30EEMp9PELhXkJB5KmfSk HA8w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature:arc-authentication-results; bh=xt0XIUCkmhj1E08iQbkfswm2kl38sMyf0kmjijOmbSo=; b=fLrl8AO88cT1nM5mEVgpIh43YMKwPgpkqAdlcyw8+NnXJ47DxxPraUN5kDZUirn1XZ 3zLsqOe/0s+XPkcGWS0VY0QZVeY+4G+KMFjgrAbz8Ohtq/jtXy0qQ+d9wh6LS2ObsT8z ULvc4R7rzDcIdhTrrO+lqMheM8bhQ40qhTJTfQdxJH6VnE+GyREofCIvhqU7RB9qMVvK DLvdDBXGg9td+/U2jV7W+RbcIRzEalQYF1Nh1ozjok+RsvsfemG2J3XCgzI5TexciTZM u5MRM5AvxjKj1TaUBFd4+3Z/28S6BQjVMSleXNkz0mZbL3KCuxnn+5z+A6IG9ddz4kAo huWw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=txeUxDLS; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id p26-v6si8502942otb.142.2018.05.07.08.05.01; Mon, 07 May 2018 08:05:17 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=txeUxDLS; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752195AbeEGPE3 (ORCPT + 99 others); Mon, 7 May 2018 11:04:29 -0400 Received: from mail.kernel.org ([198.145.29.99]:47728 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751912AbeEGPE1 (ORCPT ); Mon, 7 May 2018 11:04:27 -0400 Received: from jouet.infradead.org (unknown [190.15.121.82]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 3175820779; Mon, 7 May 2018 15:04:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1525705466; bh=RYsXhfrcudc1yeNECcZFQxMLrLkQF+6HWXtX1HCqMz4=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=txeUxDLSj0EQYZaw1jDsxKX0RTz6u5izYiO1T0EJuvTI1DQRUGPw750dQNrAkB/0k I7TXs0KjbsYtKxDMKTt0DSScZ7nVfbgVWlAqKFT8oiCpQXtEkJz9mLBVVW0wBaFtOd E148mWEpSCGqwX7a7Eqswar2xA1t9gJtYR/23N8Y= Received: by jouet.infradead.org (Postfix, from userid 1000) id 458D8146731; Mon, 7 May 2018 12:04:24 -0300 (-03) Date: Mon, 7 May 2018 12:04:24 -0300 From: Arnaldo Carvalho de Melo To: Jiri Olsa Cc: Adrian Hunter , Andi Kleen , Ingo Molnar , Clark Williams , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Jiri Olsa , Alexander Shishkin , David Ahern , Namhyung Kim , Peter Zijlstra , Arnaldo Carvalho de Melo , kan.liang@linux.intel.com Subject: Re: [PATCH] perf tools: Fix parser for empty pmu terms case Message-ID: <20180507150424.GA3259@kernel.org> References: <20180425160008.3407-1-acme@kernel.org> <20180425160008.3407-6-acme@kernel.org> <448c4e21-8232-3d04-cac4-49b95c8bca3a@intel.com> <20180503103717.GA14776@krava> <0c33d3f9-4b76-c94c-7306-e93e8cd8d4aa@intel.com> <20180504160228.GA25229@krava> <87a7tdphyo.fsf@linux.intel.com> <20180506142830.GA18865@krava> <97dc8045-0136-0c9b-8413-1957ceeae5d3@intel.com> <20180507081203.GA26443@krava> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20180507081203.GA26443@krava> X-Url: http://acmel.wordpress.com User-Agent: Mutt/1.9.2 (2017-12-15) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Em Mon, May 07, 2018 at 10:12:03AM +0200, Jiri Olsa escreveu: > On Mon, May 07, 2018 at 10:21:42AM +0300, Adrian Hunter wrote: > > On 06/05/18 17:28, Jiri Olsa wrote: > > > On Sat, May 05, 2018 at 08:43:11PM -0700, Andi Kleen wrote: > > >> Jiri Olsa writes: > > >> > > >> Please fix this quickly, PT is currently totally non functional in Linus > > >> mainline. > > > > > > attached.. Kan, could you please test it wrt your latest changes? > > > > > > thanks, > > > jirka > > > > > > > > > --- > > > Adrian reported broken event parsing for Intel PT: > > > > > > $ perf record -e intel_pt//u uname > > > event syntax error: 'intel_pt//u' > > > \___ parser error > > > Run 'perf list' for a list of valid events > > > > > > It's caused by recent change in parsing grammar > > > (see Fixes: for commit). > > > > > > Adding special rule with empty terms config to handle > > > the reported case and moving the common rule code into > > > new parse_events_pmu function. > > > > Hi > > > > Can you explain why that is needed instead of just changing the grammar e.g. > > well, for one, mine is working ;-) > > [jolsa@krava perf]$ sudo ./perf record -e intel_pt//u uname > event syntax error: 'intel_pt//u' > \___ parser error > Run 'perf list' for a list of valid events > > Usage: perf record [] [] > or: perf record [] -- [] > > -e, --event event selector. use 'perf list' to list available events > > > but yep, it's better solution.. with extra changes like below So, can I get a final patch, with an Ack from Adrian, please? - Arnaldo > jirka > > > --- > diff --git a/tools/perf/util/parse-events.y b/tools/perf/util/parse-events.y > index 47f6399a309a..155d2570274f 100644 > --- a/tools/perf/util/parse-events.y > +++ b/tools/perf/util/parse-events.y > @@ -73,6 +73,7 @@ static void inc_group_count(struct list_head *list, > %type value_sym > %type event_config > %type opt_event_config > +%type opt_pmu_config > %type event_term > %type event_pmu > %type event_legacy_symbol > @@ -224,15 +225,15 @@ event_def: event_pmu | > event_bpf_file > > event_pmu: > -PE_NAME '/' event_config '/' > +PE_NAME opt_pmu_config > { > struct list_head *list, *orig_terms, *terms; > > - if (parse_events_copy_term_list($3, &orig_terms)) > + if (parse_events_copy_term_list($2, &orig_terms)) > YYABORT; > > ALLOC_LIST(list); > - if (parse_events_add_pmu(_parse_state, list, $1, $3, false, false)) { > + if (parse_events_add_pmu(_parse_state, list, $1, $2, false, false)) { > struct perf_pmu *pmu = NULL; > int ok = 0; > char *pattern; > @@ -262,7 +263,7 @@ PE_NAME '/' event_config '/' > if (!ok) > YYABORT; > } > - parse_events_terms__delete($3); > + parse_events_terms__delete($2); > parse_events_terms__delete(orig_terms); > $$ = list; > } > @@ -496,6 +497,17 @@ opt_event_config: > $$ = NULL; > } > > +opt_pmu_config: > +'/' event_config '/' > +{ > + $$ = $2; > +} > +| > +'/' '/' > +{ > + $$ = NULL; > +} > + > start_terms: event_config > { > struct parse_events_state *parse_state = _parse_state;