From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753230AbdJLPii (ORCPT ); Thu, 12 Oct 2017 11:38:38 -0400 Received: from szxga04-in.huawei.com ([45.249.212.190]:7991 "EHLO szxga04-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752623AbdJLPig (ORCPT ); Thu, 12 Oct 2017 11:38:36 -0400 Subject: Re: [PATCH 2/2] perf, tools: Don't force MetricExprs to lower case To: Jiri Olsa , Arnaldo Carvalho de Melo References: <20170912195643.2611-1-andi@firstfloor.org> <20170912195643.2611-2-andi@firstfloor.org> <20171003160605.GC25388@kernel.org> <20171004103052.GC23759@krava> <20171004162711.GF2482@two.firstfloor.org> <20171009134151.GA15127@krava> <20171009140728.GG2482@two.firstfloor.org> <20171009141258.GE28623@kernel.org> <20171009143953.GA1561@krava> CC: Andi Kleen , Jiri Olsa , , Andi Kleen , He Kuang , Alexei Starovoitov From: "Wangnan (F)" Message-ID: <5d8fc047-1535-5308-91b5-577d8ead1d28@huawei.com> Date: Thu, 12 Oct 2017 23:31:51 +0800 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.5.1 MIME-Version: 1.0 In-Reply-To: <20171009143953.GA1561@krava> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [10.111.194.139] X-CFilter-Loop: Reflected X-Mirapoint-Virus-RAPID-Raw: score=unknown(0), refid=str=0001.0A020202.59DF8C55.0065,ss=1,re=0.000,recu=0.000,reip=0.000,cl=1,cld=1,fgs=0, ip=0.0.0.0, so=2014-11-16 11:51:01, dmn=2013-03-21 17:37:32 X-Mirapoint-Loop-Id: 7f1eae2db3b6bad1ef920fc91e240e50 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2017/10/9 22:39, Jiri Olsa wrote: > On Mon, Oct 09, 2017 at 11:12:58AM -0300, Arnaldo Carvalho de Melo wrote: >> Em Mon, Oct 09, 2017 at 07:07:29AM -0700, Andi Kleen escreveu: >>> On Mon, Oct 09, 2017 at 03:41:51PM +0200, Jiri Olsa wrote: >>>> On Wed, Oct 04, 2017 at 09:27:11AM -0700, Andi Kleen wrote: >>>>> On Wed, Oct 04, 2017 at 12:30:52PM +0200, Jiri Olsa wrote: >>>>>> On Tue, Oct 03, 2017 at 01:06:05PM -0300, Arnaldo Carvalho de Melo wrote: >>>>>>> Em Tue, Sep 12, 2017 at 12:56:43PM -0700, Andi Kleen escreveu: >>>>>>>> From: Andi Kleen >>>>>>>> >>>>>>>> There are still problems with BPF misinterpreting some events >>>>>>>> that include .c. An earlier fix made it work for stand alone >>>>>>>> aliases, but it still fails for more complex constructs. >>>>>>> Hi Wang, Jiri, >>>>>>> >>>>>>> Can you please take a look at this and see if there is something >>>>>>> we can do to help Andi? >>>>>>> >>>>>>> - Arnaldo >>>>>>> >>>>>>>> REJECT keeps trying and trying a shorter string until >>>>>>>> .c is matched and it appears like a valid BPF path. >>>>>>>> >>>>>>>> % perf stat -e cpu/uops_executed.core,cmask=1/ true >>>>>>>> bpf: builtin compilation failed: -95, try external compiler >>>>>>>> ERROR: problems with path cpu/uops_executed.c: No such file or directory >>>>>>>> event syntax error: 'cpu/uops_executed.core,cmask=1/' >>>>>>>> \___ Failed to load cpu/uops_executed.c from source: Error when compiling BPF scriptlet >>>>>>>> >>>>>>>> I tried to fix it, but it exceeds my flex knowledge, because >>>>>>>> REJECT does not interact well with BEGIN states. >>>>>>>> >>>>>>>> The BPF syntax in its current form really causes an ambigious >>>>>>>> grammar. >>>>>> right, it looks like we allow whole path (including / char) >>>>>> for BPF file, which messes up with out pmu/.../ syntax >>>>>> >>>>>> do we need that? (Cc-ed some bpf folks) >>>>>> >>>>>> if not attached patch seems to fix things.. otherwise >>>>>> we need to come up with another fix >>>>> I tried similar patches, but I always ran into more complex >>>>> situations where it still matched incorrectly. >>>>> >>>>> e.g. try it with cpu/uops_executed.core,... vs uops_executed.core >>>> hm, both works for me with the change: >>>> >>>> perf stat -e cpu/uops_executed.core/ ls >>>> perf stat -e uops_executed.core ls >>> Ok. If it works it's fine for me. > well it works, but it means that bpf file cannot contains any directory > part.. which im not sure is ok with bpf folks ;-) anyone? Sorry I didn't see this thread these days. Do you think adding a special escape character to suppress BPF name parsing in a event is a good idea? for example: % perf stat -e cpu/uops_executed.core,cmask=1/ true bpf: builtin compilation failed: -95, try external compiler ERROR: problems with path cpu/uops_executed.c: No such file or directory event syntax error: 'cpu/uops_executed.core,cmask=1/' \___ Failed to load cpu/uops_executed.c from source: Error when compiling BPF scriptlet. Add a leading '@' to avoid BPF syntax % perf stat -e @cpu/uops_executed.core,cmask=1/ true ...