Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp901484ybz; Fri, 1 May 2020 10:35:57 -0700 (PDT) X-Google-Smtp-Source: APiQypL4OShahfnrk2y083LAN+UxOYmELNOy/IgLsiddr/URTyZhfG8T/iD7RUIlF+bm4JwnbAw3 X-Received: by 2002:aa7:d689:: with SMTP id d9mr4569580edr.22.1588354556901; Fri, 01 May 2020 10:35:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1588354556; cv=none; d=google.com; s=arc-20160816; b=KlqW6DOXEnCO06Q1ydWxlCtLdUNcCABeXItkaa3AfgiaSJcebc8UVqauwtX5TVPQBS Gp10CWXWh2hDLSZQ3slI5HVvztf4qfWoSxLx9M+fd5l0shml7uwZvwtPuyQSTZnhzghi T+vw3Fm+mif5rYgPusIutLVfa52aar3pQ41R+5200HCIANv6pZcRI1iqZf58XjAHBdZz UnyFbOWeRYMa1riVe3c/KJI7vd9lImxhsCW656oi072743MDGwnCcXwz+A0eVaLzExvT QtsuSE4bxmfP2pavEp8YZo0ymq+HgOOqCA2oKrCS5JmxTHEs0a/Ff7e0/kOxe9wx3wRR KcvA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:from:subject:mime-version :message-id:date:dkim-signature; bh=OGOp2WSR2ye+L4wVhXBoOe2en7Nt7zt/W0fkN6xJwSQ=; b=skgNRZR8rjzh3PzZwLIO0/rsLwKITZ7A0S5uBLxmJbysBj0DKwP7wk0qdzunmKyvUN Ndvxg9iNwJ/EoxGGDSf5KeB9ooiz19gqn4AGSgntmp7WEfye6iCgwvm9pcREodOylZRE s0GPoTmv32UyIacN4VxRMYgTNLphXtJ6wF8TJCc5XMpOuMFJGcrcy2FhU6F4J1kY64Oy ULJO09EPCsb7YNtvebL9BQb12Y8n22SBJeX1oOGpzhqY3RG6duD8ucwif/8xzhgrAkwp ff57MnN42mbaG+WvLE2s1+Gs7bzQk+EAlx0U3DiCpJgdyrJ4ZqanzicO2ZTf62XOGmWV C0Tg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=A9ZKtEP+; 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 ce9si1910671ejc.139.2020.05.01.10.35.33; Fri, 01 May 2020 10:35:56 -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=A9ZKtEP+; 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 S1729659AbgEARdj (ORCPT + 99 others); Fri, 1 May 2020 13:33:39 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60806 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1728495AbgEARdi (ORCPT ); Fri, 1 May 2020 13:33:38 -0400 Received: from mail-yb1-xb49.google.com (mail-yb1-xb49.google.com [IPv6:2607:f8b0:4864:20::b49]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5C02FC061A0C for ; Fri, 1 May 2020 10:33:37 -0700 (PDT) Received: by mail-yb1-xb49.google.com with SMTP id h185so12978228ybg.6 for ; Fri, 01 May 2020 10:33:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:message-id:mime-version:subject:from:to:cc; bh=OGOp2WSR2ye+L4wVhXBoOe2en7Nt7zt/W0fkN6xJwSQ=; b=A9ZKtEP+4qGq17E3oDaKewIGhJnpruqOJve9IAukmtnyXd0m3IcW4VL7PMRxBOcV2V Nhe/MOLgWvcbvxotaAV3v2IfwZqLJNsb4oLOsFStPtZ+SaDBxcUzls3taIUmN+j1LyeY Dj4mMTXeYUg+RZ9wkMZJ4AjDccC+3iuFTQG8ZKBy/egS9QMSG9xImglmRqJYeXvri5ME IT3gLRjnqIpNXVpUI89FKqB2NJvMfH7IdQ/69eK6MGLzUkMrkOzlwM82eJvdB27sn+wy f4kcWOs9SxZm0Sz3aGDyfjSw+Al2Q3z6hls+3T14FvCqZxgf08Cti8iOnnRQZdfa9xZj DRVQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:message-id:mime-version:subject:from:to:cc; bh=OGOp2WSR2ye+L4wVhXBoOe2en7Nt7zt/W0fkN6xJwSQ=; b=PjmBxZvbPC9oxF5jGUucoyN9kSmWzC3sh/vMWUqEGwTYzFyxtOuwDjU7vCQTTLLcX9 Gm8Dxj5G9W+TcbtEEAHsEcmGlySF+W2tirF6SP8bCuqDdEuIXX1xNqpuElKSpMtgRrdT DaDhIey1BvQj7/oqhhqcZJUAzWIQavYZSRuXXMwd8B5wiVp43WeCRMlF7LxBw+LOOBZN Ef6zJMevgfi/cCJTF6s67mU31XHjZCQmJTVtI0MjA+2ubPAukflRiNYmjx38z1nnVc7v crBeuA2RHTvAzsL/TreTj/T1mgnr/xDb/9aDrMndH/sHhswyHT3Yvs9Wu0suVjq3X71f Jl2g== X-Gm-Message-State: AGi0PuaMAsEsoes0bgX3UnjPo1rc2jZvY9N2+Hi/rS+D2jRYQJfm1Dni RGq1/yCIcTVtUmauLaQHhBSrevAfb7IJ X-Received: by 2002:a25:f413:: with SMTP id q19mr8330362ybd.178.1588354416467; Fri, 01 May 2020 10:33:36 -0700 (PDT) Date: Fri, 1 May 2020 10:33:21 -0700 Message-Id: <20200501173333.227162-1-irogers@google.com> Mime-Version: 1.0 X-Mailer: git-send-email 2.26.2.526.g744177e7f7-goog Subject: [PATCH v4 00/12] perf metric fixes and test From: Ian Rogers To: 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 , linux-kernel@vger.kernel.org, kajoljain , linux-perf-users@vger.kernel.org Cc: Stephane Eranian , Ian Rogers 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 Add a test that all perf metrics (for your architecture) are parsable with the simple expression parser. Attempt to parse all events in metrics but only fail if the metric is for the current CPU. Fix bugs in the expr parser, x86 and powerpc metrics. Improve debug messages around add PMU config term failures. v4 rebases after Kajol Jain's patches and fixes an asprintf warning. v3 adds parse event testing of ids and improves debug messages for add PMU. These messages are paticular visible with 'perf test 10 -vvv'. It moves the testing logic from tests/expr.c to tests/pmu-events.c as suggested by John Garry . v2 adds Fixes tags to commit messages for when broken metrics were first added. Adds a debug warning for division by zero in expr, and adds a workaround for id values in the expr test necessary for powerpc. It also fixes broken power8 and power9 metrics. Ian Rogers (12): perf expr: unlimited escaped characters in a symbol perf metrics: fix parse errors in cascade lake metrics perf metrics: fix parse errors in skylake metrics perf expr: allow ',' to be an other token perf expr: increase max other perf expr: parse numbers as doubles perf expr: debug lex if debugging yacc perf metrics: fix parse errors in power8 metrics perf metrics: fix parse errors in power9 metrics perf expr: print a debug message for division by zero perf parse-events: expand add PMU error/verbose messages perf test: improve pmu event metric testing tools/perf/arch/x86/util/intel-pt.c | 32 ++-- .../arch/powerpc/power8/metrics.json | 2 +- .../arch/powerpc/power9/metrics.json | 2 +- .../arch/x86/cascadelakex/clx-metrics.json | 10 +- .../arch/x86/skylakex/skx-metrics.json | 4 +- tools/perf/tests/builtin-test.c | 5 + tools/perf/tests/expr.c | 1 + tools/perf/tests/pmu-events.c | 156 +++++++++++++++++- tools/perf/tests/pmu.c | 4 +- tools/perf/tests/tests.h | 2 + tools/perf/util/expr.c | 1 + tools/perf/util/expr.h | 2 +- tools/perf/util/expr.l | 16 +- tools/perf/util/expr.y | 16 +- tools/perf/util/parse-events.c | 29 +++- tools/perf/util/pmu.c | 33 ++-- tools/perf/util/pmu.h | 2 +- 17 files changed, 262 insertions(+), 55 deletions(-) -- 2.26.2.526.g744177e7f7-goog