Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S935059AbcJFUSy (ORCPT ); Thu, 6 Oct 2016 16:18:54 -0400 Received: from mail.kernel.org ([198.145.29.136]:57132 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933626AbcJFUSq (ORCPT ); Thu, 6 Oct 2016 16:18:46 -0400 Date: Thu, 6 Oct 2016 17:18:24 -0300 From: Arnaldo Carvalho de Melo To: Andi Kleen Cc: sukadev@linux.vnet.ibm.com, jolsa@redhat.com, linux-kernel@vger.kernel.org, Andi Kleen , wangnan0@huawei.com Subject: Re: [PATCH 1/3] perf, tools: Handle events including .c and .o Message-ID: <20161006201824.GG4809@kernel.org> References: <1475696832-9188-1-git-send-email-andi@firstfloor.org> <1475696832-9188-2-git-send-email-andi@firstfloor.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1475696832-9188-2-git-send-email-andi@firstfloor.org> X-Url: http://acmel.wordpress.com User-Agent: Mutt/1.7.0 (2016-08-17) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2718 Lines: 78 Em Wed, Oct 05, 2016 at 12:47:10PM -0700, Andi Kleen escreveu: > From: Andi Kleen > > This is a generic bug fix, but it helps with Sukadev's JSON event tree > where such events can happen. > > Any event inclduing a .c/.o/.bpf currently triggers BPF compilation or loading > and then an error. This can happen for some Intel JSON events, which cannot > be used. > > Fix the scanner to only match for .o or .c or .bpf at the end. > This will prevent loading multiple BPF scripts separated with comma, > but I assume this is acceptable. So, I tried it with the example provided in the thread for a previous version of this patch (IIRC) and it still fails: [acme@jouet linux]$ perf stat -e '{unc_p_clockticks,unc_p_power_state_occupancy.cores_c0}' -a -I 1000 ERROR: problems with path {unc_p_clockticks,unc_p_power_state_occupancy.c: No such file or directory event syntax error: '{unc_p_clockticks,unc_p_power_state_occupancy.cores_c0}' \___ Failed to load {unc_p_clockticks,unc_p_power_state_occupancy.c from source: Error when compiling BPF scriptlet (add -v to see detail) Run 'perf list' for a list of valid events Usage: perf stat [] [] -e, --event event selector. use 'perf list' to list available events [acme@jouet linux]$ And with another event that for sure is available on this machine: [acme@jouet linux]$ perf stat -e '{uops_executed.core_cycles_ge_2}' -I 1000 usleep 10 ERROR: problems with path {uops_executed.c: No such file or directory event syntax error: '{uops_executed.core_cycles_ge_2}' \___ Failed to load {uops_executed.c from source: Error when compiling BPF scriptlet (add -v to see detail) Run 'perf list' for a list of valid events Usage: perf stat [] [] -e, --event event selector. use 'perf list' to list available events [acme@jouet linux]$ I thought this was due to the Makefile not noticing the change in the .l files, but I made sure I deleted the build dir and rebuilt from scratch, same problem. - Arnaldo > Cc: wangnan0@huawei.com > Cc: sukadev@linux.vnet.ibm.com > Signed-off-by: Andi Kleen > --- > tools/perf/util/parse-events.l | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/tools/perf/util/parse-events.l b/tools/perf/util/parse-events.l > index 9f43fda2570f..377147088a46 100644 > --- a/tools/perf/util/parse-events.l > +++ b/tools/perf/util/parse-events.l > @@ -183,8 +183,8 @@ modifier_bp [rwx]{1,3} > } > > {event_pmu} | > -{bpf_object} | > -{bpf_source} | > +({bpf_object}$) | > +({bpf_source}$) | > {event} { > BEGIN(INITIAL); > REWIND(1); > -- > 2.5.5