Received: by 10.192.165.148 with SMTP id m20csp2805915imm; Mon, 7 May 2018 01:13:48 -0700 (PDT) X-Google-Smtp-Source: AB8JxZredlfWvdAy8D1bFaY6dDZAU0cBRJNk9ZrXtHXCZp5fIMB0LATTOkdwUhGMB1Mypsdz9eWC X-Received: by 2002:a63:b642:: with SMTP id v2-v6mr29640482pgt.158.1525680828097; Mon, 07 May 2018 01:13:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1525680828; cv=none; d=google.com; s=arc-20160816; b=ZYse5jPlWg/7AkAPcEl34PQsc7DSqmhHjeJ4+1XTQn6ROiH3chMLKyW5weHwllmCgi nv9o4DeWGWGtwIQz14W2GatichLXYjpPRJ5c1qHRG6PyUvgJRfxJhHPVvoeOkgIvr4oB JfYDsU/pR8oNhtlArbh753EzqNDucLcX8GWiUJuDXUskybsxNWPhCWMxBqS9RumXk2md rF1hZRU3dc7Psqvei0jXNu03gW8+GjL1fPlPzDFYbUfC7xV5SCBAbulGcRqPsSa24yX/ clnBDaJvoPmiAPXCFVj9pjyAfvVB0D1a2KkmyAsq4atoEXLuUrT5pr/Zo+7pjw/CagL1 VbTg== 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:arc-authentication-results; bh=2Lwd978CaiK8pUmH24bTEihOwjW+7nk/2gEOzOsayC0=; b=RK7gLUu5PHYxwdoYTdHlNmToVs6dd/wERU0iVQ3WqHj+DR86j0T1M0OA+c9r+pDhUp NDIPVFMILy+3mOx6ThLU4RBJIK98oz0Pegf292pLOF+zFIUZyUXIg3GLQdGNgCX/cGFs zS+IEr20jmG3vTVp/av+DN0QBrl/6sDAPScvmgc+HGymNH6bY7jPVZLLiBgpg7/fO5ff QntR4k1FDZ2i7qsJLpfTfhW/gTudQRIblPUUjcD3H28fHINcT68icEBz1ZMxXgxsuZCv Xdr4qpA3OoG4oXBChi15oxy6yzWZo8NapTFCjRXaI/tStD7as2GGO286iKaYFW5UEuVz dPgQ== ARC-Authentication-Results: i=1; mx.google.com; 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=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id g8-v6si23274883pli.75.2018.05.07.01.13.33; Mon, 07 May 2018 01:13:48 -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; 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=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752054AbeEGIMO (ORCPT + 99 others); Mon, 7 May 2018 04:12:14 -0400 Received: from mx3-rdu2.redhat.com ([66.187.233.73]:56404 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751988AbeEGIMJ (ORCPT ); Mon, 7 May 2018 04:12:09 -0400 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id F26EDF8CE3; Mon, 7 May 2018 08:12:07 +0000 (UTC) Received: from krava (unknown [10.43.17.114]) by smtp.corp.redhat.com (Postfix) with SMTP id 1A880215CDA7; Mon, 7 May 2018 08:12:03 +0000 (UTC) Date: Mon, 7 May 2018 10:12:03 +0200 From: Jiri Olsa To: Adrian Hunter Cc: Andi Kleen , Arnaldo Carvalho de Melo , 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: <20180507081203.GA26443@krava> 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> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <97dc8045-0136-0c9b-8413-1957ceeae5d3@intel.com> User-Agent: Mutt/1.9.1 (2017-09-22) X-Scanned-By: MIMEDefang 2.78 on 10.11.54.6 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.1]); Mon, 07 May 2018 08:12:08 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.1]); Mon, 07 May 2018 08:12:08 +0000 (UTC) for IP:'10.11.54.6' DOMAIN:'int-mx06.intmail.prod.int.rdu2.redhat.com' HELO:'smtp.corp.redhat.com' FROM:'jolsa@redhat.com' RCPT:'' Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 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;