Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp3163677ybz; Mon, 27 Apr 2020 11:06:09 -0700 (PDT) X-Google-Smtp-Source: APiQypIvLsNoa9LTkPQW2mUdR19rp9MXm37E6jZbj9Im393AQ6bpOlgCR6ua299EZf6Xfte6D6Lp X-Received: by 2002:a17:906:f90e:: with SMTP id lc14mr20207461ejb.156.1588010769115; Mon, 27 Apr 2020 11:06:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1588010769; cv=none; d=google.com; s=arc-20160816; b=jj4o5TAWvIi4IQwR7Ib8v5qNlI1Ssl8H42u2FAM8ghip99JmameQnsIewC5njracIu xkNEuB6en8l+1P4rUYJm32dTiUfupiD2qYsWAnMIWW6ZXFPPeVSrtlzFkg+0k86B4SQC 5WdZ0N2k2VgcMcyh2bLkGBtR5I73sf6XemJDP9dBnVIv7Re35rdSqYkcGX3NU/whLOs+ mkK8uhg9GBTqY4+aP7qvArSizRGghBlx8DiLj4iLgd209ZKIkHk1LgllCFME1Y9E8PEh 5tAcRmI04ohtjDOktqJG+xpdEUCE7TN6evtLCztKhsLiZRzh4/KvTKo5ArhduEev9VSL YH2g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=m7xjWm5IylgwfTRtFrUz8O1j0UbpEjTflZcxO3pCk9c=; b=ov7TXFaf1pNZEjDW0TDfTyvVpWZ10jXip1iSHA3YTRXRoccEpkzo1yUTKvnhrBJfOa D/ojRXHnFVnbrNwvxpcpyI6dFybZhn+h7K1TqrEhPQ3vypFrxafzSOe5ii3DZw/cKxmD SVo+C64/e1OU7CsiHpTFC4LHhRrgDx5wA89nznb5VBeNb9YtKDLogm5LNcvz2xBKjQS/ kh76cCoY+u3/ODTaeOBEiialDSOGuyhXLT33rn3NY1jCGjjSFUnHFJSprNfaefTW4Mrq ygwJyyHsWFYlC/Yz7k7StLc38x0giDor3kB0QaPzi9vr2+HMyQ8/aCCfxZ3nzsRLTPtv 5SHA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b="plaJ/5Ye"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id v21si190135eja.226.2020.04.27.11.05.43; Mon, 27 Apr 2020 11:06:09 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b="plaJ/5Ye"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726420AbgD0SD0 (ORCPT + 99 others); Mon, 27 Apr 2020 14:03:26 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39526 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1726208AbgD0SD0 (ORCPT ); Mon, 27 Apr 2020 14:03:26 -0400 Received: from mail-yb1-xb44.google.com (mail-yb1-xb44.google.com [IPv6:2607:f8b0:4864:20::b44]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 05E9EC0610D5 for ; Mon, 27 Apr 2020 11:03:26 -0700 (PDT) Received: by mail-yb1-xb44.google.com with SMTP id d197so5497967ybh.6 for ; Mon, 27 Apr 2020 11:03:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=m7xjWm5IylgwfTRtFrUz8O1j0UbpEjTflZcxO3pCk9c=; b=plaJ/5Yept6LFQ2ntG72eyFTl6gPmPN4bYfc2VGwwT4WGmYz980KE1LpA3FHqHbW9V Xr1ZYwDOequ/ZsrEB6bXHgPkFNqR31kvxrEE4BB1lNAjmewI8j/iYbuCxbzwH8GqdEaR 0DEuR1Mk4jHjIInVChBiQdZsWrtDhUaiO7eXYYz5LAcPsOAcJp5Pvzo2KImxk7VjxXCp JDJAxu058VxwYxo99jIaDdhpGnnJ2xAB2H95HztifLciNlqqNMZqCX30ENzHStMmEZhm /0AVPrkjXUOlTIg3WPcKh+Ig6EVdJ3HpHD9Ypr5wqdLyQyD/A/XNxCuIVLX1aDj3zUnV NkBQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=m7xjWm5IylgwfTRtFrUz8O1j0UbpEjTflZcxO3pCk9c=; b=HGmJkYo+MOObfATukzQOJZJrkoZLwFkhinh+3GaBuMJxSLzTo/3o6iE9/m9kmJOFdd h4x9b+7pxo4D/B/1sHJps2aYg4h/KkSh7NOn/6Bo6givmZyVLy3qqpdvQE6XAzUjJV4O gmxPPBNK1YYWX2Crhxr3H835onmelgkpCkO4isg6WOfwfcebdDfDNxd363lYlkFWDubT gs1IQkWPjsCREhf1er3khQhhngHdvc3XBV81SWgI/4LaXJpopavpzdIPj1K8hfgzhs/h 2j8kcj87oc8p/vukKHKuJFFUBaiT+Rq1mWYrvyDjyu9Aj4ozZltDn0860V+1LP/D0k5G nBVg== X-Gm-Message-State: AGi0PuYprcIc5Bc8wl5iTH4dAORK3tuSmTlRNlWOa5yyfQ5kKBppUjqq dQ/mk251z7gjLX9tv4XPci3KVt4Pn3HitjwyAminRw== X-Received: by 2002:a25:4443:: with SMTP id r64mr37030346yba.41.1588010604891; Mon, 27 Apr 2020 11:03:24 -0700 (PDT) MIME-Version: 1.0 References: <20200422220430.254014-1-irogers@google.com> <20200422220430.254014-7-irogers@google.com> <0cee674e-4084-07cb-1954-05dafc371648@linux.ibm.com> In-Reply-To: <0cee674e-4084-07cb-1954-05dafc371648@linux.ibm.com> From: Ian Rogers Date: Mon, 27 Apr 2020 11:03:13 -0700 Message-ID: Subject: Re: [PATCH v2 06/11] perf expr: parse numbers as doubles To: kajoljain Cc: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Mark Rutland , Alexander Shishkin , Jiri Olsa , Namhyung Kim , Kan Liang , Andi Kleen , Haiyan Song , Jin Yao , Song Liu , Ravi Bangoria , John Garry , Leo Yan , Adrian Hunter , Paul Clarke , LKML , linux-perf-users , Stephane Eranian Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Apr 27, 2020 at 4:12 AM kajoljain wrote: > > On 4/23/20 3:34 AM, Ian Rogers wrote: > > This is expected in expr.y and metrics use floating point values such as > > x86 broadwell IFetch_Line_Utilization. > > > > Fixes: 26226a97724d (perf expr: Move expr lexer to flex) > > Signed-off-by: Ian Rogers > > --- > > tools/perf/util/expr.l | 14 +++++++------- > > 1 file changed, 7 insertions(+), 7 deletions(-) > > > > diff --git a/tools/perf/util/expr.l b/tools/perf/util/expr.l > > index 95bcf3629edf..0efda2ce2766 100644 > > --- a/tools/perf/util/expr.l > > +++ b/tools/perf/util/expr.l > > @@ -10,12 +10,12 @@ > > char *expr_get_text(yyscan_t yyscanner); > > YYSTYPE *expr_get_lval(yyscan_t yyscanner); > > > > -static int __value(YYSTYPE *yylval, char *str, int base, int token) > > +static double __value(YYSTYPE *yylval, char *str, int token) > > { > > - u64 num; > > + double num; > > > > errno = 0; > > - num = strtoull(str, NULL, base); > > + num = strtod(str, NULL); > > if (errno) > > return EXPR_ERROR; > > > > @@ -23,12 +23,12 @@ static int __value(YYSTYPE *yylval, char *str, int base, int token) > > return token; > > } > > > > -static int value(yyscan_t scanner, int base) > > +static int value(yyscan_t scanner) > > { > > YYSTYPE *yylval = expr_get_lval(scanner); > > char *text = expr_get_text(scanner); > > > > - return __value(yylval, text, base, NUMBER); > > + return __value(yylval, text, NUMBER); > > } > > > > /* > > @@ -68,7 +68,7 @@ static int str(yyscan_t scanner, int token) > > } > > %} > > > > -number [0-9]+ > > +number [0-9]*\.?[0-9]+ > > > > Hi Ian, > In this patch I saw the parsing of expression with '+number [0-9]*\.?[0-9]+' > Could you please explain why '?' is introduced here, so that I can be sure that this is > not conflicting with my change to add '?' Hi Kajol, the '?' here is part of the regular expression. Basically it is saying that a number is a possible set of integers possibly followed by a '.' and then 1 or more integers. The expression comes from having seen Intel's metrics are of the form '.1234' in some of their topdown spreadsheets, so we need to be able to handle cases like '1.2', '123' and '.1234'. Having looked at your patch I don't believe it interferes. > In this patch : https://lkml.org/lkml/2020/4/1/1427 > I have used '?' symbol as part of metric expression in order to replace '?' with runtime > parameter. Interesting, I'll follow up with comments on that e-mail. Thanks! Ian > Thanks, > Kajol Jain > > > > sch [-,=] > > spec \\{sch} > > @@ -92,7 +92,7 @@ min { return MIN; } > > if { return IF; } > > else { return ELSE; } > > #smt_on { return SMT_ON; } > > -{number} { return value(yyscanner, 10); } > > +{number} { return value(yyscanner); } > > {symbol} { return str(yyscanner, ID); } > > "|" { return '|'; } > > "^" { return '^'; } > >