From: Jiri Olsa <olsajiri@gmail.com>
To: Ian Rogers <irogers@google.com>
Cc: Peter Zijlstra <peterz@infradead.org>,
Ingo Molnar <mingo@redhat.com>,
Arnaldo Carvalho de Melo <acme@kernel.org>,
Mark Rutland <mark.rutland@arm.com>,
Alexander Shishkin <alexander.shishkin@linux.intel.com>,
Namhyung Kim <namhyung@kernel.org>,
John Garry <john.garry@huawei.com>,
Kan Liang <kan.liang@linux.intel.com>,
Andi Kleen <ak@linux.intel.com>,
Zhengjun Xing <zhengjun.xing@linux.intel.com>,
Felix Fietkau <nbd@nbd.name>, Qi Liu <liuqi115@huawei.com>,
Like Xu <likexu@tencent.com>,
linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org,
Nick Forrington <nick.forrington@arm.com>,
Kajol Jain <kjain@linux.ibm.com>,
James Clark <james.clark@arm.com>,
Andrew Kilroy <andrew.kilroy@arm.com>,
"Paul A . Clarke" <pc@us.ibm.com>, Will Deacon <will@kernel.org>,
Mathieu Poirier <mathieu.poirier@linaro.org>,
ananth.narayan@amd.com, ravi.bangoria@amd.com,
santosh.shukla@amd.com, sandipan.das@amd.com,
Caleb Biggers <caleb.biggers@intel.com>,
Perry Taylor <perry.taylor@intel.com>,
Kshipra Bopardikar <kshipra.bopardikar@intel.com>,
Stephane Eranian <eranian@google.com>
Subject: Re: [PATCH v6 0/4] Rewrite jevents program in python
Date: Wed, 22 Jun 2022 09:12:36 +0200 [thread overview]
Message-ID: <YrLA5NMBv1uIx7UD@krava> (raw)
In-Reply-To: <20220618000907.433350-1-irogers@google.com>
On Fri, Jun 17, 2022 at 05:09:03PM -0700, Ian Rogers wrote:
> New architectures bring new complexity, such as Intel's hybrid
> models. jevents provides an alternative to specifying events in the
> kernel and exposing them through sysfs, however, it is difficult to
> work with. For example, an error in the json input would yield an
> error message but no json file or location. It is also a challenge to
> update jsmn.c given its forked nature.
>
> The changes here switch from jevents.c to a rewrite in python called
> jevents.py. This means there is a build time dependency on python, but
> such a dependency already exists for asciidoc (used to generate perf's
> man pages). If the build detects that python isn't present or is older
> than version 3.6 (released Dec. 2016) then an empty file is
> substituted for the generated one.
>
> A challenge with this code is in avoiding regressions. For this reason
> the jevents.py produces identical output to jevents.c, validated with a
> test script and build target.
>
> v6. Fixes an annotation and use of removesuffix that aren't present in
> Python 3.6. Linter issues are also fixed.The code was tested on
> Python 3.6 and 3.8 with docker.
hi,
I'm getting test failures with this:
10: PMU events :
10.1: PMU event table sanity : FAILED!
10.2: PMU event map aliases : FAILED!
10.3: Parsing of PMU event table metrics : Ok
10.4: Parsing of PMU event table metrics with fake PMUs : Ok
I can see that pass without the patchset, verbose run shows:
[jolsa@krava perf]$ sudo ./perf test -vv 'PMU event map aliases'
10: PMU events :
10.2: PMU event map aliases :
--- start ---
test child forked, pid 272763
Using CPUID GenuineIntel-6-8C-1
intel_pt default config: tsc,mtc,mtc_period=3,psb_period=3,pt,branch
could not find test events map
testing core PMU cpu aliases: failed
test child finished with -1
---- end ----
PMU events subtest 2: FAILED!
[jolsa@krava perf]$ sudo ./perf test -vv 'PMU event table sanity'
10: PMU events :
10.1: PMU event table sanity :
--- start ---
test child forked, pid 272771
could not find test events map
test child finished with -1
---- end ----
PMU events subtest 1: FAILED!
jirka
> v5. Adds a 2>/dev/null as suggested by David Laight
> <David.Laight@aculab.com>.
> v4. Fixes the build for systems with python2 installed by adding a
> patch that makes python3 the preferred python (Reported-by: John
> Garry <john.garry@huawei.com>). It also fixes a bash-ism in the
> jevents-test.sh and fixes the handling of an empty string for a
> metric BriefDescription as one was added for sapphirerapids in the
> metric Execute.
> v3. Updates the patches for merged changes (on
> acme/tmp.perf/core). Re-runs all comparisons to make sure the
> generated pmu-events.c isn't altered at all by this change. Adds
> the jevents.c ExtSel fix in:
> https://lore.kernel.org/lkml/20220525140410.1706851-1-zhengjun.xing@linux.intel.com/
> Bumps the python version from 3.5 to 3.6, as f-strings weren't
> introduced until 3.6.
>
> v2. Fixes the build for architectures that don't have pmu-events json
> (Suggested-by: John Garry <john.garry@huawei.com>) and fixes the
> build for python not being present or too old (Suggested-by: Peter
> Zijlstra <peterz@infradead.org>/John Garry <john.garry@huawei.com>).
>
> Ian Rogers (4):
> perf python: Prefer python3
> perf jevents: Add python converter script
> perf jevents: Switch build to use jevents.py
> perf jevents: Remove jevents.c
>
> tools/perf/Makefile.config | 27 +-
> tools/perf/Makefile.perf | 16 +-
> tools/perf/pmu-events/Build | 15 +-
> tools/perf/pmu-events/empty-pmu-events.c | 21 +
> tools/perf/pmu-events/jevents.c | 1342 ----------------------
> tools/perf/pmu-events/jevents.py | 409 +++++++
> tools/perf/pmu-events/jsmn.h | 68 --
> tools/perf/pmu-events/json.c | 162 ---
> tools/perf/pmu-events/json.h | 39 -
> 9 files changed, 465 insertions(+), 1634 deletions(-)
> create mode 100644 tools/perf/pmu-events/empty-pmu-events.c
> delete mode 100644 tools/perf/pmu-events/jevents.c
> create mode 100755 tools/perf/pmu-events/jevents.py
> delete mode 100644 tools/perf/pmu-events/jsmn.h
> delete mode 100644 tools/perf/pmu-events/json.c
> delete mode 100644 tools/perf/pmu-events/json.h
>
> --
> 2.36.1.476.g0c4daa206d-goog
>
next prev parent reply other threads:[~2022-06-22 7:12 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-18 0:09 [PATCH v6 0/4] Rewrite jevents program in python Ian Rogers
2022-06-18 0:09 ` [PATCH v6 1/4] perf python: Prefer python3 Ian Rogers
2022-06-18 0:09 ` [PATCH v6 2/4] perf jevents: Add python converter script Ian Rogers
2022-06-18 0:09 ` [PATCH v6 3/4] perf jevents: Switch build to use jevents.py Ian Rogers
2022-06-18 0:09 ` [PATCH v6 4/4] perf jevents: Remove jevents.c Ian Rogers
2022-06-22 7:23 ` Jiri Olsa
2022-06-18 0:23 ` [PATCH v6 0/4] Rewrite jevents program in python Xing Zhengjun
2022-06-18 1:41 ` Ian Rogers
2022-06-18 2:40 ` Xing Zhengjun
2022-06-22 7:12 ` Jiri Olsa [this message]
2022-06-22 7:36 ` Jiri Olsa
2022-06-23 11:57 ` Ian Rogers
-- strict thread matches above, loose matches on Subject: below --
2022-06-27 2:57 Ian Rogers
2022-06-27 17:27 ` John Garry
2022-06-29 16:47 ` Ian Rogers
2022-06-29 16:50 ` John Garry
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=YrLA5NMBv1uIx7UD@krava \
--to=olsajiri@gmail.com \
--cc=acme@kernel.org \
--cc=ak@linux.intel.com \
--cc=alexander.shishkin@linux.intel.com \
--cc=ananth.narayan@amd.com \
--cc=andrew.kilroy@arm.com \
--cc=caleb.biggers@intel.com \
--cc=eranian@google.com \
--cc=irogers@google.com \
--cc=james.clark@arm.com \
--cc=john.garry@huawei.com \
--cc=kan.liang@linux.intel.com \
--cc=kjain@linux.ibm.com \
--cc=kshipra.bopardikar@intel.com \
--cc=likexu@tencent.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=liuqi115@huawei.com \
--cc=mark.rutland@arm.com \
--cc=mathieu.poirier@linaro.org \
--cc=mingo@redhat.com \
--cc=namhyung@kernel.org \
--cc=nbd@nbd.name \
--cc=nick.forrington@arm.com \
--cc=pc@us.ibm.com \
--cc=perry.taylor@intel.com \
--cc=peterz@infradead.org \
--cc=ravi.bangoria@amd.com \
--cc=sandipan.das@amd.com \
--cc=santosh.shukla@amd.com \
--cc=will@kernel.org \
--cc=zhengjun.xing@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.