linux-perf-users.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC 00/59] libperf: Move in event parse code
@ 2021-11-08 13:36 Jiri Olsa
  2021-11-08 13:36 ` [PATCH 01/59] libperf: Move pmu-events.h file to libperf Jiri Olsa
                   ` (58 more replies)
  0 siblings, 59 replies; 78+ messages in thread
From: Jiri Olsa @ 2021-11-08 13:36 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: John Garry, Jin Yao, Andi Kleen, Peter Zijlstra, Ingo Molnar,
	Mark Rutland, Alexander Shishkin, Michael Petlan,
	Stephane Eranian, Namhyung Kim, Ian Rogers, linux-perf-users

hi,
this *RFC* patchset moves event parser code to libperf.

It keeps the current perf functionality intact (hopefully)
and adds new libperf_parse_events API to libperf that
provides events parsing.

At the moment libperf_parse_events function supports only
breakpoint events, so it can be used to do things like:
(see the new libperf test)

  evlist = perf_evlist__new();
  err = libperf_parse_events(evlist, "mem:0:rw");


The other pmus parsing code directly depends on parsing
code, so now when the parser is in the libperf, it will
be easier to add the rest of pmus support.

I'm curious on any early feedback because it's big change.
My primary target is using this interface for bpftool prog
profile to allow using all the perf events there.

Also available in here:
  git://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git
  libperf/parse


I'm Cc-ing most of the folks just on the cover email,
because it's a lot of changes and most people won't be
interested ;-)

Please check the linux-perf-users mailing list or the git
branch above for all the changes.

thanks,
jirka


Cc: John Garry <john.garry@huawei.com>
Cc: Jin Yao <yao.jin@linux.intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Michael Petlan <mpetlan@redhat.com>
Cc: Stephane Eranian <eranian@google.com>
---
Jiri Olsa (59):
      libperf: Move pmu-events.h file to libperf
      libperf: Move pmu-events framework to libperf
      libperf: Move pmu-events build to libperf
      libperf: Move perf_pmu__format_parse to libperf
      tools api fs: Move in the fncache from perf
      libperf: Move in the pmu hybrid support
      libperf: Move name to perf_evsel
      libperf: Move auto_merge_stats to perf_evsel
      libperf: Move config_terms to perf_evsel
      libperf: Move metric_id to perf_evsel
      libperf: Move tool_event to perf_evsel
      libperf: Move unit to perf_evsel
      libperf: Move exclude_GH to perf_evsel
      libperf: Move sample_read to perf_evsel
      libperf: Move precise_max to perf_evsel
      libperf: Move weak_group to perf_evsel
      libperf: Move bpf_counter to perf_evsel
      libperf: Move group_name to perf_evsel
      perf tools: Fix parse_events_term__num call
      perf tools: Pass parse_state all the way down to __add_event
      perf tools: Pass parse_state all the way down to add_tracepoint
      perf tools: Add evsel__new callback to parse_state_ops
      perf tools: Add evsel__new_tp callback to parse_state_ops
      perf tools: Add loc_term and loc_val helpers to parse_events_term__str
      perf tools: Add loc_term and loc_val helpers to parse_events_term__num
      libperf: Move in the event_symbols_hw/event_symbols_sw
      libperf: Move in struct parse_events_term code
      perf tools: Add perf_evsel__add_event function
      perf tools: Change struct parse_events_state::evlist to perf_evlist
      libperf: Move in struct parse_events_state
      perf tools: Move event_attr_init in evsel__new_idx function
      libperf: Move in perf_pmu__warn_invalid_config function
      libperf: Move in perf_evsel__add_event function
      perf tools: Move parse_events_update_lists to parser unit
      libperf: Add perf_evsel__is_group_leader function
      perf tools: Make parse_events__modifier_event work over perf_evsel
      perf tool: Pass perf_guest in struct parse_events_state
      libperf: Move in parse_events__modifier_group/event functions
      libperf: Move in parse_events__handle_error function
      libperf: Move in parse_events_evlist_error function
      perf tools: Add perf_evsel__delete callback to struct parse_events_ops
      libperf: Move in parse_events_name function
      perf tools: Move out parse_events_add_pmu fallback from parser code
      perf tools: Add add_pmu callback to struct parse_events_ops
      perf tools: Add add_pmu_multi callback to struct parse_events_ops
      perf tools: Add add_numeric callback to struct parse_events_ops
      perf tools: Add add_cache callback to struct parse_events_ops
      perf tools: Add add_breakpoint callback to struct parse_events_ops
      perf tools: Add add_tracepoint callback to struct parse_events_ops
      perf tools: Add add_bpf callback to struct parse_events_ops
      perf tools: Add add_tool callback to struct parse_events_ops
      perf tools: Add set_leader callback to struct parse_events_ops
      perf tools: Add parse_check callback to struct parse_events_ops
      perf tools: Move PE_* enums in parse_events__scanner
      libperf: Move in parse-events flex/bison parser
      libperf: Move in parse_events_add_breakpoint function
      libperf: Move in some lib objects from perf
      libperf: Add libperf_parse_events function
      libperf: Add parse-events test

 tools/lib/api/fs/Build                             |   1 +
 tools/{perf/util => lib/api/fs}/fncache.c          |   4 +-
 tools/lib/api/fs/fs.h                              |   2 +
 tools/lib/perf/Build                               |  79 ++
 tools/lib/perf/Makefile                            |  40 +-
 tools/lib/perf/include/internal/evsel.h            |  30 +
 tools/lib/perf/include/internal/parse-events.h     | 203 +++++
 .../perf/include/internal}/pmu-hybrid.h            |   2 +-
 tools/lib/perf/include/internal/pmu.h              |  59 ++
 tools/lib/perf/include/perf/evlist.h               |   2 +
 .../perf/include/perf}/pmu-events.h                |   0
 tools/lib/perf/libperf.map                         |   1 +
 tools/lib/perf/parse-events.c                      | 875 +++++++++++++++++++
 tools/{perf/util => lib/perf}/parse-events.l       |  16 +-
 tools/{perf/util => lib/perf}/parse-events.y       | 197 +++--
 tools/{ => lib}/perf/pmu-events/Build              |   2 +-
 tools/{ => lib}/perf/pmu-events/README             |   0
 .../pmu-events/arch/arm64/ampere/emag/branch.json  |   0
 .../pmu-events/arch/arm64/ampere/emag/bus.json     |   0
 .../pmu-events/arch/arm64/ampere/emag/cache.json   |   0
 .../pmu-events/arch/arm64/ampere/emag/clock.json   |   0
 .../arch/arm64/ampere/emag/exception.json          |   0
 .../arch/arm64/ampere/emag/instruction.json        |   0
 .../arch/arm64/ampere/emag/intrinsic.json          |   0
 .../pmu-events/arch/arm64/ampere/emag/memory.json  |   0
 .../arch/arm64/ampere/emag/pipeline.json           |   0
 .../arch/arm64/arm/cortex-a53/branch.json          |   0
 .../pmu-events/arch/arm64/arm/cortex-a53/bus.json  |   0
 .../arch/arm64/arm/cortex-a53/cache.json           |   0
 .../arch/arm64/arm/cortex-a53/memory.json          |   0
 .../arch/arm64/arm/cortex-a53/other.json           |   0
 .../arch/arm64/arm/cortex-a53/pipeline.json        |   0
 .../arm64/arm/cortex-a57-a72/core-imp-def.json     |   0
 .../arch/arm64/arm/cortex-a76-n1/branch.json       |   0
 .../arch/arm64/arm/cortex-a76-n1/bus.json          |   0
 .../arch/arm64/arm/cortex-a76-n1/cache.json        |   0
 .../arch/arm64/arm/cortex-a76-n1/exception.json    |   0
 .../arch/arm64/arm/cortex-a76-n1/instruction.json  |   0
 .../arch/arm64/arm/cortex-a76-n1/memory.json       |   0
 .../arch/arm64/arm/cortex-a76-n1/other.json        |   0
 .../arch/arm64/arm/cortex-a76-n1/pipeline.json     |   0
 .../arch/arm64/arm/neoverse-v1/branch.json         |   0
 .../pmu-events/arch/arm64/arm/neoverse-v1/bus.json |   0
 .../arch/arm64/arm/neoverse-v1/cache.json          |   0
 .../arch/arm64/arm/neoverse-v1/exception.json      |   0
 .../arch/arm64/arm/neoverse-v1/instruction.json    |   0
 .../arch/arm64/arm/neoverse-v1/memory.json         |   0
 .../arch/arm64/arm/neoverse-v1/other.json          |   0
 .../arch/arm64/arm/neoverse-v1/pipeline.json       |   0
 .../arch/arm64/armv8-common-and-microarch.json     |   0
 .../pmu-events/arch/arm64/armv8-recommended.json   |   0
 .../arch/arm64/cavium/thunderx2/core-imp-def.json  |   0
 .../arch/arm64/freescale/imx8mm/sys/ddrc.json      |   0
 .../arch/arm64/freescale/imx8mm/sys/metrics.json   |   0
 .../arch/arm64/freescale/imx8mn/sys/ddrc.json      |   0
 .../arch/arm64/freescale/imx8mn/sys/metrics.json   |   0
 .../arch/arm64/freescale/imx8mp/sys/ddrc.json      |   0
 .../arch/arm64/freescale/imx8mp/sys/metrics.json   |   0
 .../arch/arm64/freescale/imx8mq/sys/ddrc.json      |   0
 .../arch/arm64/freescale/imx8mq/sys/metrics.json   |   0
 .../arch/arm64/fujitsu/a64fx/branch.json           |   0
 .../pmu-events/arch/arm64/fujitsu/a64fx/bus.json   |   0
 .../pmu-events/arch/arm64/fujitsu/a64fx/cache.json |   0
 .../pmu-events/arch/arm64/fujitsu/a64fx/cycle.json |   0
 .../arch/arm64/fujitsu/a64fx/exception.json        |   0
 .../arch/arm64/fujitsu/a64fx/instruction.json      |   0
 .../arch/arm64/fujitsu/a64fx/memory.json           |   0
 .../pmu-events/arch/arm64/fujitsu/a64fx/other.json |   0
 .../arch/arm64/fujitsu/a64fx/pipeline.json         |   0
 .../pmu-events/arch/arm64/fujitsu/a64fx/sve.json   |   0
 .../arch/arm64/hisilicon/hip08/core-imp-def.json   |   0
 .../arch/arm64/hisilicon/hip08/metrics.json        |   0
 .../arch/arm64/hisilicon/hip08/uncore-ddrc.json    |   0
 .../arch/arm64/hisilicon/hip08/uncore-hha.json     |   0
 .../arch/arm64/hisilicon/hip08/uncore-l3c.json     |   0
 .../perf/pmu-events/arch/arm64/mapfile.csv         |   0
 .../perf/pmu-events/arch/nds32/mapfile.csv         |   0
 .../perf/pmu-events/arch/nds32/n13/atcpmu.json     |   0
 .../perf/pmu-events/arch/powerpc/mapfile.csv       |   0
 .../pmu-events/arch/powerpc/power10/cache.json     |   0
 .../arch/powerpc/power10/floating_point.json       |   0
 .../pmu-events/arch/powerpc/power10/frontend.json  |   0
 .../pmu-events/arch/powerpc/power10/locks.json     |   0
 .../pmu-events/arch/powerpc/power10/marked.json    |   0
 .../pmu-events/arch/powerpc/power10/memory.json    |   0
 .../arch/powerpc/power10/nest_metrics.json         |   0
 .../pmu-events/arch/powerpc/power10/others.json    |   0
 .../pmu-events/arch/powerpc/power10/pipeline.json  |   0
 .../perf/pmu-events/arch/powerpc/power10/pmc.json  |   0
 .../arch/powerpc/power10/translation.json          |   0
 .../perf/pmu-events/arch/powerpc/power8/cache.json |   0
 .../arch/powerpc/power8/floating-point.json        |   0
 .../pmu-events/arch/powerpc/power8/frontend.json   |   0
 .../pmu-events/arch/powerpc/power8/marked.json     |   0
 .../pmu-events/arch/powerpc/power8/memory.json     |   0
 .../pmu-events/arch/powerpc/power8/metrics.json    |   0
 .../perf/pmu-events/arch/powerpc/power8/other.json |   0
 .../pmu-events/arch/powerpc/power8/pipeline.json   |   0
 .../perf/pmu-events/arch/powerpc/power8/pmc.json   |   0
 .../arch/powerpc/power8/translation.json           |   0
 .../perf/pmu-events/arch/powerpc/power9/cache.json |   0
 .../arch/powerpc/power9/floating-point.json        |   0
 .../pmu-events/arch/powerpc/power9/frontend.json   |   0
 .../pmu-events/arch/powerpc/power9/marked.json     |   0
 .../pmu-events/arch/powerpc/power9/memory.json     |   0
 .../pmu-events/arch/powerpc/power9/metrics.json    |   0
 .../arch/powerpc/power9/nest_metrics.json          |   0
 .../perf/pmu-events/arch/powerpc/power9/other.json |   0
 .../pmu-events/arch/powerpc/power9/pipeline.json   |   0
 .../perf/pmu-events/arch/powerpc/power9/pmc.json   |   0
 .../arch/powerpc/power9/translation.json           |   0
 .../perf/pmu-events/arch/s390/cf_z10/basic.json    |   0
 .../perf/pmu-events/arch/s390/cf_z10/crypto.json   |   0
 .../perf/pmu-events/arch/s390/cf_z10/extended.json |   0
 .../perf/pmu-events/arch/s390/cf_z13/basic.json    |   0
 .../perf/pmu-events/arch/s390/cf_z13/crypto.json   |   0
 .../perf/pmu-events/arch/s390/cf_z13/extended.json |   0
 .../pmu-events/arch/s390/cf_z13/transaction.json   |   0
 .../perf/pmu-events/arch/s390/cf_z14/basic.json    |   0
 .../perf/pmu-events/arch/s390/cf_z14/crypto.json   |   0
 .../perf/pmu-events/arch/s390/cf_z14/extended.json |   0
 .../pmu-events/arch/s390/cf_z14/transaction.json   |   0
 .../perf/pmu-events/arch/s390/cf_z15/basic.json    |   0
 .../perf/pmu-events/arch/s390/cf_z15/crypto.json   |   0
 .../perf/pmu-events/arch/s390/cf_z15/crypto6.json  |   0
 .../perf/pmu-events/arch/s390/cf_z15/extended.json |   0
 .../pmu-events/arch/s390/cf_z15/transaction.json   |   0
 .../perf/pmu-events/arch/s390/cf_z196/basic.json   |   0
 .../perf/pmu-events/arch/s390/cf_z196/crypto.json  |   0
 .../pmu-events/arch/s390/cf_z196/extended.json     |   0
 .../perf/pmu-events/arch/s390/cf_zec12/basic.json  |   0
 .../perf/pmu-events/arch/s390/cf_zec12/crypto.json |   0
 .../pmu-events/arch/s390/cf_zec12/extended.json    |   0
 .../pmu-events/arch/s390/cf_zec12/transaction.json |   0
 .../perf/pmu-events/arch/s390/mapfile.csv          |   0
 .../perf/pmu-events/arch/test/arch-std-events.json |   0
 .../pmu-events/arch/test/test_soc/cpu/branch.json  |   0
 .../pmu-events/arch/test/test_soc/cpu/cache.json   |   0
 .../pmu-events/arch/test/test_soc/cpu/other.json   |   0
 .../pmu-events/arch/test/test_soc/cpu/uncore.json  |   0
 .../pmu-events/arch/test/test_soc/sys/uncore.json  |   0
 .../perf/pmu-events/arch/x86/amdzen1/branch.json   |   0
 .../perf/pmu-events/arch/x86/amdzen1/cache.json    |   0
 .../perf/pmu-events/arch/x86/amdzen1/core.json     |   0
 .../pmu-events/arch/x86/amdzen1/data-fabric.json   |   0
 .../arch/x86/amdzen1/floating-point.json           |   0
 .../perf/pmu-events/arch/x86/amdzen1/memory.json   |   0
 .../perf/pmu-events/arch/x86/amdzen1/other.json    |   0
 .../pmu-events/arch/x86/amdzen1/recommended.json   |   0
 .../perf/pmu-events/arch/x86/amdzen2/branch.json   |   0
 .../perf/pmu-events/arch/x86/amdzen2/cache.json    |   0
 .../perf/pmu-events/arch/x86/amdzen2/core.json     |   0
 .../pmu-events/arch/x86/amdzen2/data-fabric.json   |   0
 .../arch/x86/amdzen2/floating-point.json           |   0
 .../perf/pmu-events/arch/x86/amdzen2/memory.json   |   0
 .../perf/pmu-events/arch/x86/amdzen2/other.json    |   0
 .../pmu-events/arch/x86/amdzen2/recommended.json   |   0
 .../perf/pmu-events/arch/x86/amdzen3/branch.json   |   0
 .../perf/pmu-events/arch/x86/amdzen3/cache.json    |   0
 .../perf/pmu-events/arch/x86/amdzen3/core.json     |   0
 .../pmu-events/arch/x86/amdzen3/data-fabric.json   |   0
 .../arch/x86/amdzen3/floating-point.json           |   0
 .../perf/pmu-events/arch/x86/amdzen3/memory.json   |   0
 .../perf/pmu-events/arch/x86/amdzen3/other.json    |   0
 .../pmu-events/arch/x86/amdzen3/recommended.json   |   0
 .../perf/pmu-events/arch/x86/bonnell/cache.json    |   0
 .../arch/x86/bonnell/floating-point.json           |   0
 .../perf/pmu-events/arch/x86/bonnell/frontend.json |   0
 .../perf/pmu-events/arch/x86/bonnell/memory.json   |   0
 .../perf/pmu-events/arch/x86/bonnell/other.json    |   0
 .../perf/pmu-events/arch/x86/bonnell/pipeline.json |   0
 .../arch/x86/bonnell/virtual-memory.json           |   0
 .../pmu-events/arch/x86/broadwell/bdw-metrics.json |   0
 .../perf/pmu-events/arch/x86/broadwell/cache.json  |   0
 .../arch/x86/broadwell/floating-point.json         |   0
 .../pmu-events/arch/x86/broadwell/frontend.json    |   0
 .../perf/pmu-events/arch/x86/broadwell/memory.json |   0
 .../perf/pmu-events/arch/x86/broadwell/other.json  |   0
 .../pmu-events/arch/x86/broadwell/pipeline.json    |   0
 .../perf/pmu-events/arch/x86/broadwell/uncore.json |   0
 .../arch/x86/broadwell/virtual-memory.json         |   0
 .../arch/x86/broadwellde/bdwde-metrics.json        |   0
 .../pmu-events/arch/x86/broadwellde/cache.json     |   0
 .../arch/x86/broadwellde/floating-point.json       |   0
 .../pmu-events/arch/x86/broadwellde/frontend.json  |   0
 .../pmu-events/arch/x86/broadwellde/memory.json    |   0
 .../pmu-events/arch/x86/broadwellde/other.json     |   0
 .../pmu-events/arch/x86/broadwellde/pipeline.json  |   0
 .../arch/x86/broadwellde/uncore-cache.json         |   0
 .../arch/x86/broadwellde/uncore-memory.json        |   0
 .../arch/x86/broadwellde/uncore-power.json         |   0
 .../arch/x86/broadwellde/virtual-memory.json       |   0
 .../arch/x86/broadwellx/bdx-metrics.json           |   0
 .../perf/pmu-events/arch/x86/broadwellx/cache.json |   0
 .../arch/x86/broadwellx/floating-point.json        |   0
 .../pmu-events/arch/x86/broadwellx/frontend.json   |   0
 .../pmu-events/arch/x86/broadwellx/memory.json     |   0
 .../perf/pmu-events/arch/x86/broadwellx/other.json |   0
 .../pmu-events/arch/x86/broadwellx/pipeline.json   |   0
 .../arch/x86/broadwellx/uncore-cache.json          |   0
 .../arch/x86/broadwellx/uncore-interconnect.json   |   0
 .../arch/x86/broadwellx/uncore-memory.json         |   0
 .../arch/x86/broadwellx/uncore-power.json          |   0
 .../arch/x86/broadwellx/virtual-memory.json        |   0
 .../pmu-events/arch/x86/cascadelakex/cache.json    |   0
 .../arch/x86/cascadelakex/clx-metrics.json         |   0
 .../arch/x86/cascadelakex/floating-point.json      |   0
 .../pmu-events/arch/x86/cascadelakex/frontend.json |   0
 .../pmu-events/arch/x86/cascadelakex/memory.json   |   0
 .../pmu-events/arch/x86/cascadelakex/other.json    |   0
 .../pmu-events/arch/x86/cascadelakex/pipeline.json |   0
 .../arch/x86/cascadelakex/uncore-memory.json       |   0
 .../arch/x86/cascadelakex/uncore-other.json        |   0
 .../arch/x86/cascadelakex/virtual-memory.json      |   0
 .../pmu-events/arch/x86/elkhartlake/cache.json     |   0
 .../arch/x86/elkhartlake/ehl-metrics.json          |   0
 .../arch/x86/elkhartlake/floating-point.json       |   0
 .../pmu-events/arch/x86/elkhartlake/frontend.json  |   0
 .../pmu-events/arch/x86/elkhartlake/memory.json    |   0
 .../pmu-events/arch/x86/elkhartlake/other.json     |   0
 .../pmu-events/arch/x86/elkhartlake/pipeline.json  |   0
 .../arch/x86/elkhartlake/virtual-memory.json       |   0
 .../perf/pmu-events/arch/x86/goldmont/cache.json   |   0
 .../pmu-events/arch/x86/goldmont/frontend.json     |   0
 .../perf/pmu-events/arch/x86/goldmont/memory.json  |   0
 .../perf/pmu-events/arch/x86/goldmont/other.json   |   0
 .../pmu-events/arch/x86/goldmont/pipeline.json     |   0
 .../arch/x86/goldmont/virtual-memory.json          |   0
 .../pmu-events/arch/x86/goldmontplus/cache.json    |   0
 .../pmu-events/arch/x86/goldmontplus/frontend.json |   0
 .../pmu-events/arch/x86/goldmontplus/memory.json   |   0
 .../pmu-events/arch/x86/goldmontplus/other.json    |   0
 .../pmu-events/arch/x86/goldmontplus/pipeline.json |   0
 .../arch/x86/goldmontplus/virtual-memory.json      |   0
 .../perf/pmu-events/arch/x86/haswell/cache.json    |   0
 .../arch/x86/haswell/floating-point.json           |   0
 .../perf/pmu-events/arch/x86/haswell/frontend.json |   0
 .../pmu-events/arch/x86/haswell/hsw-metrics.json   |   0
 .../perf/pmu-events/arch/x86/haswell/memory.json   |   0
 .../perf/pmu-events/arch/x86/haswell/other.json    |   0
 .../perf/pmu-events/arch/x86/haswell/pipeline.json |   0
 .../perf/pmu-events/arch/x86/haswell/uncore.json   |   0
 .../arch/x86/haswell/virtual-memory.json           |   0
 .../perf/pmu-events/arch/x86/haswellx/cache.json   |   0
 .../arch/x86/haswellx/floating-point.json          |   0
 .../pmu-events/arch/x86/haswellx/frontend.json     |   0
 .../pmu-events/arch/x86/haswellx/hsx-metrics.json  |   0
 .../perf/pmu-events/arch/x86/haswellx/memory.json  |   0
 .../perf/pmu-events/arch/x86/haswellx/other.json   |   0
 .../pmu-events/arch/x86/haswellx/pipeline.json     |   0
 .../pmu-events/arch/x86/haswellx/uncore-cache.json |   0
 .../arch/x86/haswellx/uncore-interconnect.json     |   0
 .../arch/x86/haswellx/uncore-memory.json           |   0
 .../pmu-events/arch/x86/haswellx/uncore-power.json |   0
 .../arch/x86/haswellx/virtual-memory.json          |   0
 .../perf/pmu-events/arch/x86/icelake/cache.json    |   0
 .../arch/x86/icelake/floating-point.json           |   0
 .../perf/pmu-events/arch/x86/icelake/frontend.json |   0
 .../pmu-events/arch/x86/icelake/icl-metrics.json   |   0
 .../perf/pmu-events/arch/x86/icelake/memory.json   |   0
 .../perf/pmu-events/arch/x86/icelake/other.json    |   0
 .../perf/pmu-events/arch/x86/icelake/pipeline.json |   0
 .../arch/x86/icelake/virtual-memory.json           |   0
 .../perf/pmu-events/arch/x86/icelakex/cache.json   |   0
 .../arch/x86/icelakex/floating-point.json          |   0
 .../pmu-events/arch/x86/icelakex/frontend.json     |   0
 .../pmu-events/arch/x86/icelakex/icx-metrics.json  |   0
 .../perf/pmu-events/arch/x86/icelakex/memory.json  |   0
 .../perf/pmu-events/arch/x86/icelakex/other.json   |   0
 .../pmu-events/arch/x86/icelakex/pipeline.json     |   0
 .../arch/x86/icelakex/uncore-memory.json           |   0
 .../pmu-events/arch/x86/icelakex/uncore-other.json |   0
 .../pmu-events/arch/x86/icelakex/uncore-power.json |   0
 .../arch/x86/icelakex/virtual-memory.json          |   0
 .../perf/pmu-events/arch/x86/ivybridge/cache.json  |   0
 .../arch/x86/ivybridge/floating-point.json         |   0
 .../pmu-events/arch/x86/ivybridge/frontend.json    |   0
 .../pmu-events/arch/x86/ivybridge/ivb-metrics.json |   0
 .../perf/pmu-events/arch/x86/ivybridge/memory.json |   0
 .../perf/pmu-events/arch/x86/ivybridge/other.json  |   0
 .../pmu-events/arch/x86/ivybridge/pipeline.json    |   0
 .../perf/pmu-events/arch/x86/ivybridge/uncore.json |   0
 .../arch/x86/ivybridge/virtual-memory.json         |   0
 .../perf/pmu-events/arch/x86/ivytown/cache.json    |   0
 .../arch/x86/ivytown/floating-point.json           |   0
 .../perf/pmu-events/arch/x86/ivytown/frontend.json |   0
 .../pmu-events/arch/x86/ivytown/ivt-metrics.json   |   0
 .../perf/pmu-events/arch/x86/ivytown/memory.json   |   0
 .../perf/pmu-events/arch/x86/ivytown/other.json    |   0
 .../perf/pmu-events/arch/x86/ivytown/pipeline.json |   0
 .../pmu-events/arch/x86/ivytown/uncore-cache.json  |   0
 .../arch/x86/ivytown/uncore-interconnect.json      |   0
 .../pmu-events/arch/x86/ivytown/uncore-memory.json |   0
 .../pmu-events/arch/x86/ivytown/uncore-power.json  |   0
 .../arch/x86/ivytown/virtual-memory.json           |   0
 .../perf/pmu-events/arch/x86/jaketown/cache.json   |   0
 .../arch/x86/jaketown/floating-point.json          |   0
 .../pmu-events/arch/x86/jaketown/frontend.json     |   0
 .../pmu-events/arch/x86/jaketown/jkt-metrics.json  |   0
 .../perf/pmu-events/arch/x86/jaketown/memory.json  |   0
 .../perf/pmu-events/arch/x86/jaketown/other.json   |   0
 .../pmu-events/arch/x86/jaketown/pipeline.json     |   0
 .../pmu-events/arch/x86/jaketown/uncore-cache.json |   0
 .../arch/x86/jaketown/uncore-interconnect.json     |   0
 .../arch/x86/jaketown/uncore-memory.json           |   0
 .../pmu-events/arch/x86/jaketown/uncore-power.json |   0
 .../arch/x86/jaketown/virtual-memory.json          |   0
 .../pmu-events/arch/x86/knightslanding/cache.json  |   0
 .../arch/x86/knightslanding/frontend.json          |   0
 .../pmu-events/arch/x86/knightslanding/memory.json |   0
 .../arch/x86/knightslanding/pipeline.json          |   0
 .../arch/x86/knightslanding/uncore-memory.json     |   0
 .../arch/x86/knightslanding/virtual-memory.json    |   0
 .../{ => lib}/perf/pmu-events/arch/x86/mapfile.csv |   0
 .../perf/pmu-events/arch/x86/nehalemep/cache.json  |   0
 .../arch/x86/nehalemep/floating-point.json         |   0
 .../pmu-events/arch/x86/nehalemep/frontend.json    |   0
 .../perf/pmu-events/arch/x86/nehalemep/memory.json |   0
 .../perf/pmu-events/arch/x86/nehalemep/other.json  |   0
 .../pmu-events/arch/x86/nehalemep/pipeline.json    |   0
 .../arch/x86/nehalemep/virtual-memory.json         |   0
 .../perf/pmu-events/arch/x86/nehalemex/cache.json  |   0
 .../arch/x86/nehalemex/floating-point.json         |   0
 .../pmu-events/arch/x86/nehalemex/frontend.json    |   0
 .../perf/pmu-events/arch/x86/nehalemex/memory.json |   0
 .../perf/pmu-events/arch/x86/nehalemex/other.json  |   0
 .../pmu-events/arch/x86/nehalemex/pipeline.json    |   0
 .../arch/x86/nehalemex/virtual-memory.json         |   0
 .../pmu-events/arch/x86/sandybridge/cache.json     |   0
 .../arch/x86/sandybridge/floating-point.json       |   0
 .../pmu-events/arch/x86/sandybridge/frontend.json  |   0
 .../pmu-events/arch/x86/sandybridge/memory.json    |   0
 .../pmu-events/arch/x86/sandybridge/other.json     |   0
 .../pmu-events/arch/x86/sandybridge/pipeline.json  |   0
 .../arch/x86/sandybridge/snb-metrics.json          |   0
 .../pmu-events/arch/x86/sandybridge/uncore.json    |   0
 .../arch/x86/sandybridge/virtual-memory.json       |   0
 .../perf/pmu-events/arch/x86/silvermont/cache.json |   0
 .../pmu-events/arch/x86/silvermont/frontend.json   |   0
 .../pmu-events/arch/x86/silvermont/memory.json     |   0
 .../perf/pmu-events/arch/x86/silvermont/other.json |   0
 .../pmu-events/arch/x86/silvermont/pipeline.json   |   0
 .../arch/x86/silvermont/virtual-memory.json        |   0
 .../perf/pmu-events/arch/x86/skylake/cache.json    |   0
 .../arch/x86/skylake/floating-point.json           |   0
 .../perf/pmu-events/arch/x86/skylake/frontend.json |   0
 .../perf/pmu-events/arch/x86/skylake/memory.json   |   0
 .../perf/pmu-events/arch/x86/skylake/other.json    |   0
 .../perf/pmu-events/arch/x86/skylake/pipeline.json |   0
 .../pmu-events/arch/x86/skylake/skl-metrics.json   |   0
 .../perf/pmu-events/arch/x86/skylake/uncore.json   |   0
 .../arch/x86/skylake/virtual-memory.json           |   0
 .../perf/pmu-events/arch/x86/skylakex/cache.json   |   0
 .../arch/x86/skylakex/floating-point.json          |   0
 .../pmu-events/arch/x86/skylakex/frontend.json     |   0
 .../perf/pmu-events/arch/x86/skylakex/memory.json  |   0
 .../perf/pmu-events/arch/x86/skylakex/other.json   |   0
 .../pmu-events/arch/x86/skylakex/pipeline.json     |   0
 .../pmu-events/arch/x86/skylakex/skx-metrics.json  |   0
 .../arch/x86/skylakex/uncore-memory.json           |   0
 .../pmu-events/arch/x86/skylakex/uncore-other.json |   0
 .../arch/x86/skylakex/virtual-memory.json          |   0
 .../perf/pmu-events/arch/x86/tigerlake/cache.json  |   0
 .../arch/x86/tigerlake/floating-point.json         |   0
 .../pmu-events/arch/x86/tigerlake/frontend.json    |   0
 .../perf/pmu-events/arch/x86/tigerlake/memory.json |   0
 .../perf/pmu-events/arch/x86/tigerlake/other.json  |   0
 .../pmu-events/arch/x86/tigerlake/pipeline.json    |   0
 .../pmu-events/arch/x86/tigerlake/tgl-metrics.json |   0
 .../arch/x86/tigerlake/virtual-memory.json         |   0
 .../perf/pmu-events/arch/x86/tremontx/cache.json   |   0
 .../pmu-events/arch/x86/tremontx/frontend.json     |   0
 .../perf/pmu-events/arch/x86/tremontx/memory.json  |   0
 .../perf/pmu-events/arch/x86/tremontx/other.json   |   0
 .../pmu-events/arch/x86/tremontx/pipeline.json     |   0
 .../arch/x86/tremontx/uncore-memory.json           |   0
 .../pmu-events/arch/x86/tremontx/uncore-other.json |   0
 .../pmu-events/arch/x86/tremontx/uncore-power.json |   0
 .../arch/x86/tremontx/virtual-memory.json          |   0
 .../pmu-events/arch/x86/westmereep-dp/cache.json   |   0
 .../arch/x86/westmereep-dp/floating-point.json     |   0
 .../arch/x86/westmereep-dp/frontend.json           |   0
 .../pmu-events/arch/x86/westmereep-dp/memory.json  |   0
 .../pmu-events/arch/x86/westmereep-dp/other.json   |   0
 .../arch/x86/westmereep-dp/pipeline.json           |   0
 .../arch/x86/westmereep-dp/virtual-memory.json     |   0
 .../pmu-events/arch/x86/westmereep-sp/cache.json   |   0
 .../arch/x86/westmereep-sp/floating-point.json     |   0
 .../arch/x86/westmereep-sp/frontend.json           |   0
 .../pmu-events/arch/x86/westmereep-sp/memory.json  |   0
 .../pmu-events/arch/x86/westmereep-sp/other.json   |   0
 .../arch/x86/westmereep-sp/pipeline.json           |   0
 .../arch/x86/westmereep-sp/virtual-memory.json     |   0
 .../perf/pmu-events/arch/x86/westmereex/cache.json |   0
 .../arch/x86/westmereex/floating-point.json        |   0
 .../pmu-events/arch/x86/westmereex/frontend.json   |   0
 .../pmu-events/arch/x86/westmereex/memory.json     |   0
 .../perf/pmu-events/arch/x86/westmereex/other.json |   0
 .../pmu-events/arch/x86/westmereex/pipeline.json   |   0
 .../arch/x86/westmereex/virtual-memory.json        |   0
 tools/{ => lib}/perf/pmu-events/jevents.c          |   6 +-
 tools/{ => lib}/perf/pmu-events/jsmn.c             |   0
 tools/{ => lib}/perf/pmu-events/jsmn.h             |   0
 tools/{ => lib}/perf/pmu-events/json.c             |   0
 tools/{ => lib}/perf/pmu-events/json.h             |   0
 tools/{perf/util => lib/perf}/pmu-hybrid.c         |   3 +-
 tools/lib/perf/pmu.c                               | 117 +++
 tools/{perf/util => lib/perf}/pmu.l                |   3 +-
 tools/{perf/util => lib/perf}/pmu.y                |   2 +-
 tools/lib/perf/tests/Build                         |   1 +
 tools/lib/perf/tests/main.c                        |   1 +
 tools/lib/perf/tests/test-evlist.c                 |   2 +
 tools/lib/perf/tests/test-parse-events.c           |  43 +
 tools/lib/perf/tests/tests.h                       |   1 +
 tools/perf/Makefile.perf                           |  22 +-
 tools/perf/arch/x86/util/kvm-stat.c                |   8 +-
 tools/perf/arch/x86/util/pmu.c                     |   1 -
 tools/perf/builtin-c2c.c                           |   2 +-
 tools/perf/builtin-kvm.c                           |   6 +-
 tools/perf/builtin-list.c                          |   2 +-
 tools/perf/builtin-mem.c                           |   2 +-
 tools/perf/builtin-record.c                        |  12 +-
 tools/perf/builtin-stat.c                          |  18 +-
 tools/perf/builtin-top.c                           |   2 +-
 tools/perf/builtin-trace.c                         |  12 +-
 tools/perf/tests/event_update.c                    |   2 +-
 tools/perf/tests/evsel-roundtrip-name.c            |   2 +-
 tools/perf/tests/evsel-tp-sched.c                  |   6 +-
 tools/perf/tests/expand-cgroup.c                   |   8 +-
 tools/perf/tests/parse-events.c                    |  87 +-
 tools/perf/tests/parse-metric.c                    |   6 +-
 tools/perf/tests/perf-time-to-tsc.c                |   2 +-
 tools/perf/tests/pmu-events.c                      |   2 +-
 tools/perf/util/Build                              |  55 --
 tools/perf/util/amd-sample-raw.c                   |   2 +-
 tools/perf/util/arm-spe.c                          |   6 +-
 tools/perf/util/auxtrace.c                         |   6 +-
 tools/perf/util/bpf_counter.c                      |   2 +-
 tools/perf/util/cputopo.c                          |   2 +-
 tools/perf/util/evlist-hybrid.c                    |   5 +-
 tools/perf/util/evlist.c                           |  18 +-
 tools/perf/util/evsel.c                            | 109 +--
 tools/perf/util/evsel.h                            |  23 +-
 tools/perf/util/evsel_fprintf.c                    |   2 +-
 tools/perf/util/fncache.h                          |   7 -
 tools/perf/util/header.c                           |  32 +-
 tools/perf/util/intel-pt.c                         |   6 +-
 tools/perf/util/mem-events.c                       |   2 +-
 tools/perf/util/metricgroup.c                      |  22 +-
 tools/perf/util/metricgroup.h                      |   2 +-
 tools/perf/util/parse-events-hybrid.c              |  26 +-
 tools/perf/util/parse-events-hybrid.h              |   6 +-
 tools/perf/util/parse-events.c                     | 971 +++++----------------
 tools/perf/util/parse-events.h                     | 167 +---
 tools/perf/util/pmu.c                              | 113 +--
 tools/perf/util/pmu.h                              |  44 +-
 tools/perf/util/python-ext-sources                 |   2 -
 tools/perf/util/record.c                           |   4 +-
 tools/perf/util/s390-sample-raw.c                  |   2 +-
 tools/perf/util/sideband_evlist.c                  |   2 +-
 tools/perf/util/sort.c                             |   6 +-
 tools/perf/util/srccode.c                          |  10 +-
 tools/perf/util/stat-display.c                     |  29 +-
 tools/perf/util/stat-shadow.c                      |  14 +-
 tools/perf/util/synthetic-events.c                 |  10 +-
 tools/perf/util/trace-event-info.c                 |   6 +-
 466 files changed, 2051 insertions(+), 1556 deletions(-)
 rename tools/{perf/util => lib/api/fs}/fncache.c (95%)
 create mode 100644 tools/lib/perf/include/internal/parse-events.h
 rename tools/{perf/util => lib/perf/include/internal}/pmu-hybrid.h (96%)
 create mode 100644 tools/lib/perf/include/internal/pmu.h
 rename tools/{perf/pmu-events => lib/perf/include/perf}/pmu-events.h (100%)
 create mode 100644 tools/lib/perf/parse-events.c
 rename tools/{perf/util => lib/perf}/parse-events.l (96%)
 rename tools/{perf/util => lib/perf}/parse-events.y (76%)
 rename tools/{ => lib}/perf/pmu-events/Build (87%)
 rename tools/{ => lib}/perf/pmu-events/README (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/arm64/ampere/emag/branch.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/arm64/ampere/emag/bus.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/arm64/ampere/emag/cache.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/arm64/ampere/emag/clock.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/arm64/ampere/emag/exception.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/arm64/ampere/emag/instruction.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/arm64/ampere/emag/intrinsic.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/arm64/ampere/emag/memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/arm64/ampere/emag/pipeline.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/arm64/arm/cortex-a53/branch.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/arm64/arm/cortex-a53/bus.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/arm64/arm/cortex-a53/cache.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/arm64/arm/cortex-a53/memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/arm64/arm/cortex-a53/other.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/arm64/arm/cortex-a53/pipeline.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/arm64/arm/cortex-a57-a72/core-imp-def.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/arm64/arm/cortex-a76-n1/branch.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/arm64/arm/cortex-a76-n1/bus.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/arm64/arm/cortex-a76-n1/cache.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/arm64/arm/cortex-a76-n1/exception.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/arm64/arm/cortex-a76-n1/instruction.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/arm64/arm/cortex-a76-n1/memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/arm64/arm/cortex-a76-n1/other.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/arm64/arm/cortex-a76-n1/pipeline.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/arm64/arm/neoverse-v1/branch.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/arm64/arm/neoverse-v1/bus.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/arm64/arm/neoverse-v1/cache.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/arm64/arm/neoverse-v1/exception.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/arm64/arm/neoverse-v1/instruction.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/arm64/arm/neoverse-v1/memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/arm64/arm/neoverse-v1/other.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/arm64/arm/neoverse-v1/pipeline.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/arm64/armv8-common-and-microarch.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/arm64/armv8-recommended.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/arm64/cavium/thunderx2/core-imp-def.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/arm64/freescale/imx8mm/sys/ddrc.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/arm64/freescale/imx8mm/sys/metrics.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/arm64/freescale/imx8mn/sys/ddrc.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/arm64/freescale/imx8mn/sys/metrics.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/arm64/freescale/imx8mp/sys/ddrc.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/arm64/freescale/imx8mp/sys/metrics.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/arm64/freescale/imx8mq/sys/ddrc.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/arm64/freescale/imx8mq/sys/metrics.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/arm64/fujitsu/a64fx/branch.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/arm64/fujitsu/a64fx/bus.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/arm64/fujitsu/a64fx/cache.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/arm64/fujitsu/a64fx/cycle.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/arm64/fujitsu/a64fx/exception.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/arm64/fujitsu/a64fx/instruction.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/arm64/fujitsu/a64fx/memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/arm64/fujitsu/a64fx/other.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/arm64/fujitsu/a64fx/pipeline.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/arm64/fujitsu/a64fx/sve.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/arm64/hisilicon/hip08/core-imp-def.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/arm64/hisilicon/hip08/metrics.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/arm64/hisilicon/hip08/uncore-ddrc.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/arm64/hisilicon/hip08/uncore-hha.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/arm64/hisilicon/hip08/uncore-l3c.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/arm64/mapfile.csv (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/nds32/mapfile.csv (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/nds32/n13/atcpmu.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/powerpc/mapfile.csv (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/powerpc/power10/cache.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/powerpc/power10/floating_point.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/powerpc/power10/frontend.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/powerpc/power10/locks.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/powerpc/power10/marked.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/powerpc/power10/memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/powerpc/power10/nest_metrics.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/powerpc/power10/others.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/powerpc/power10/pipeline.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/powerpc/power10/pmc.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/powerpc/power10/translation.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/powerpc/power8/cache.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/powerpc/power8/floating-point.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/powerpc/power8/frontend.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/powerpc/power8/marked.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/powerpc/power8/memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/powerpc/power8/metrics.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/powerpc/power8/other.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/powerpc/power8/pipeline.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/powerpc/power8/pmc.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/powerpc/power8/translation.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/powerpc/power9/cache.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/powerpc/power9/floating-point.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/powerpc/power9/frontend.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/powerpc/power9/marked.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/powerpc/power9/memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/powerpc/power9/metrics.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/powerpc/power9/nest_metrics.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/powerpc/power9/other.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/powerpc/power9/pipeline.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/powerpc/power9/pmc.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/powerpc/power9/translation.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/s390/cf_z10/basic.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/s390/cf_z10/crypto.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/s390/cf_z10/extended.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/s390/cf_z13/basic.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/s390/cf_z13/crypto.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/s390/cf_z13/extended.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/s390/cf_z13/transaction.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/s390/cf_z14/basic.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/s390/cf_z14/crypto.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/s390/cf_z14/extended.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/s390/cf_z14/transaction.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/s390/cf_z15/basic.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/s390/cf_z15/crypto.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/s390/cf_z15/crypto6.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/s390/cf_z15/extended.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/s390/cf_z15/transaction.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/s390/cf_z196/basic.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/s390/cf_z196/crypto.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/s390/cf_z196/extended.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/s390/cf_zec12/basic.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/s390/cf_zec12/crypto.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/s390/cf_zec12/extended.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/s390/cf_zec12/transaction.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/s390/mapfile.csv (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/test/arch-std-events.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/test/test_soc/cpu/branch.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/test/test_soc/cpu/cache.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/test/test_soc/cpu/other.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/test/test_soc/cpu/uncore.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/test/test_soc/sys/uncore.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/amdzen1/branch.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/amdzen1/cache.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/amdzen1/core.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/amdzen1/data-fabric.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/amdzen1/floating-point.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/amdzen1/memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/amdzen1/other.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/amdzen1/recommended.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/amdzen2/branch.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/amdzen2/cache.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/amdzen2/core.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/amdzen2/data-fabric.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/amdzen2/floating-point.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/amdzen2/memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/amdzen2/other.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/amdzen2/recommended.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/amdzen3/branch.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/amdzen3/cache.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/amdzen3/core.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/amdzen3/data-fabric.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/amdzen3/floating-point.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/amdzen3/memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/amdzen3/other.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/amdzen3/recommended.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/bonnell/cache.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/bonnell/floating-point.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/bonnell/frontend.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/bonnell/memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/bonnell/other.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/bonnell/pipeline.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/bonnell/virtual-memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/broadwell/bdw-metrics.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/broadwell/cache.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/broadwell/floating-point.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/broadwell/frontend.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/broadwell/memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/broadwell/other.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/broadwell/pipeline.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/broadwell/uncore.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/broadwell/virtual-memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/broadwellde/bdwde-metrics.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/broadwellde/cache.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/broadwellde/floating-point.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/broadwellde/frontend.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/broadwellde/memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/broadwellde/other.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/broadwellde/pipeline.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/broadwellde/uncore-cache.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/broadwellde/uncore-memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/broadwellde/uncore-power.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/broadwellde/virtual-memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/broadwellx/bdx-metrics.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/broadwellx/cache.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/broadwellx/floating-point.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/broadwellx/frontend.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/broadwellx/memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/broadwellx/other.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/broadwellx/pipeline.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/broadwellx/uncore-cache.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/broadwellx/uncore-interconnect.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/broadwellx/uncore-memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/broadwellx/uncore-power.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/broadwellx/virtual-memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/cascadelakex/cache.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/cascadelakex/clx-metrics.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/cascadelakex/floating-point.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/cascadelakex/frontend.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/cascadelakex/memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/cascadelakex/other.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/cascadelakex/pipeline.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/cascadelakex/uncore-memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/cascadelakex/uncore-other.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/cascadelakex/virtual-memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/elkhartlake/cache.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/elkhartlake/ehl-metrics.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/elkhartlake/floating-point.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/elkhartlake/frontend.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/elkhartlake/memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/elkhartlake/other.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/elkhartlake/pipeline.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/elkhartlake/virtual-memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/goldmont/cache.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/goldmont/frontend.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/goldmont/memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/goldmont/other.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/goldmont/pipeline.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/goldmont/virtual-memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/goldmontplus/cache.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/goldmontplus/frontend.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/goldmontplus/memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/goldmontplus/other.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/goldmontplus/pipeline.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/goldmontplus/virtual-memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/haswell/cache.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/haswell/floating-point.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/haswell/frontend.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/haswell/hsw-metrics.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/haswell/memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/haswell/other.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/haswell/pipeline.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/haswell/uncore.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/haswell/virtual-memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/haswellx/cache.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/haswellx/floating-point.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/haswellx/frontend.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/haswellx/hsx-metrics.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/haswellx/memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/haswellx/other.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/haswellx/pipeline.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/haswellx/uncore-cache.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/haswellx/uncore-interconnect.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/haswellx/uncore-memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/haswellx/uncore-power.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/haswellx/virtual-memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/icelake/cache.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/icelake/floating-point.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/icelake/frontend.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/icelake/icl-metrics.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/icelake/memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/icelake/other.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/icelake/pipeline.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/icelake/virtual-memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/icelakex/cache.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/icelakex/floating-point.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/icelakex/frontend.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/icelakex/icx-metrics.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/icelakex/memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/icelakex/other.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/icelakex/pipeline.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/icelakex/uncore-memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/icelakex/uncore-other.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/icelakex/uncore-power.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/icelakex/virtual-memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/ivybridge/cache.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/ivybridge/floating-point.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/ivybridge/frontend.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/ivybridge/ivb-metrics.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/ivybridge/memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/ivybridge/other.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/ivybridge/pipeline.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/ivybridge/uncore.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/ivybridge/virtual-memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/ivytown/cache.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/ivytown/floating-point.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/ivytown/frontend.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/ivytown/ivt-metrics.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/ivytown/memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/ivytown/other.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/ivytown/pipeline.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/ivytown/uncore-cache.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/ivytown/uncore-interconnect.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/ivytown/uncore-memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/ivytown/uncore-power.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/ivytown/virtual-memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/jaketown/cache.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/jaketown/floating-point.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/jaketown/frontend.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/jaketown/jkt-metrics.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/jaketown/memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/jaketown/other.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/jaketown/pipeline.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/jaketown/uncore-cache.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/jaketown/uncore-interconnect.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/jaketown/uncore-memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/jaketown/uncore-power.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/jaketown/virtual-memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/knightslanding/cache.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/knightslanding/frontend.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/knightslanding/memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/knightslanding/pipeline.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/knightslanding/uncore-memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/knightslanding/virtual-memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/mapfile.csv (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/nehalemep/cache.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/nehalemep/floating-point.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/nehalemep/frontend.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/nehalemep/memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/nehalemep/other.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/nehalemep/pipeline.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/nehalemep/virtual-memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/nehalemex/cache.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/nehalemex/floating-point.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/nehalemex/frontend.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/nehalemex/memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/nehalemex/other.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/nehalemex/pipeline.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/nehalemex/virtual-memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/sandybridge/cache.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/sandybridge/floating-point.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/sandybridge/frontend.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/sandybridge/memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/sandybridge/other.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/sandybridge/pipeline.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/sandybridge/snb-metrics.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/sandybridge/uncore.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/sandybridge/virtual-memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/silvermont/cache.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/silvermont/frontend.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/silvermont/memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/silvermont/other.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/silvermont/pipeline.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/silvermont/virtual-memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/skylake/cache.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/skylake/floating-point.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/skylake/frontend.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/skylake/memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/skylake/other.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/skylake/pipeline.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/skylake/skl-metrics.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/skylake/uncore.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/skylake/virtual-memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/skylakex/cache.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/skylakex/floating-point.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/skylakex/frontend.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/skylakex/memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/skylakex/other.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/skylakex/pipeline.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/skylakex/skx-metrics.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/skylakex/uncore-memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/skylakex/uncore-other.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/skylakex/virtual-memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/tigerlake/cache.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/tigerlake/floating-point.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/tigerlake/frontend.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/tigerlake/memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/tigerlake/other.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/tigerlake/pipeline.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/tigerlake/tgl-metrics.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/tigerlake/virtual-memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/tremontx/cache.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/tremontx/frontend.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/tremontx/memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/tremontx/other.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/tremontx/pipeline.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/tremontx/uncore-memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/tremontx/uncore-other.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/tremontx/uncore-power.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/tremontx/virtual-memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/westmereep-dp/cache.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/westmereep-dp/floating-point.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/westmereep-dp/frontend.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/westmereep-dp/memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/westmereep-dp/other.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/westmereep-dp/pipeline.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/westmereep-dp/virtual-memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/westmereep-sp/cache.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/westmereep-sp/floating-point.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/westmereep-sp/frontend.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/westmereep-sp/memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/westmereep-sp/other.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/westmereep-sp/pipeline.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/westmereep-sp/virtual-memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/westmereex/cache.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/westmereex/floating-point.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/westmereex/frontend.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/westmereex/memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/westmereex/other.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/westmereex/pipeline.json (100%)
 rename tools/{ => lib}/perf/pmu-events/arch/x86/westmereex/virtual-memory.json (100%)
 rename tools/{ => lib}/perf/pmu-events/jevents.c (99%)
 rename tools/{ => lib}/perf/pmu-events/jsmn.c (100%)
 rename tools/{ => lib}/perf/pmu-events/jsmn.h (100%)
 rename tools/{ => lib}/perf/pmu-events/json.c (100%)
 rename tools/{ => lib}/perf/pmu-events/json.h (100%)
 rename tools/{perf/util => lib/perf}/pmu-hybrid.c (97%)
 create mode 100644 tools/lib/perf/pmu.c
 rename tools/{perf/util => lib/perf}/pmu.l (91%)
 rename tools/{perf/util => lib/perf}/pmu.y (98%)
 create mode 100644 tools/lib/perf/tests/test-parse-events.c
 delete mode 100644 tools/perf/util/fncache.h


^ permalink raw reply	[flat|nested] 78+ messages in thread

end of thread, other threads:[~2021-11-08 21:50 UTC | newest]

Thread overview: 78+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-11-08 13:36 [RFC 00/59] libperf: Move in event parse code Jiri Olsa
2021-11-08 13:36 ` [PATCH 01/59] libperf: Move pmu-events.h file to libperf Jiri Olsa
2021-11-08 13:36 ` [PATCH 03/59] libperf: Move pmu-events build " Jiri Olsa
2021-11-08 13:36 ` [PATCH 04/59] libperf: Move perf_pmu__format_parse " Jiri Olsa
2021-11-08 13:36 ` [PATCH 05/59] tools api fs: Move in the fncache from perf Jiri Olsa
2021-11-08 17:46   ` Ian Rogers
2021-11-08 21:15     ` Jiri Olsa
2021-11-08 13:36 ` [PATCH 06/59] libperf: Move in the pmu hybrid support Jiri Olsa
2021-11-08 13:36 ` [PATCH 07/59] libperf: Move name to perf_evsel Jiri Olsa
2021-11-08 13:36 ` [PATCH 08/59] libperf: Move auto_merge_stats " Jiri Olsa
2021-11-08 13:36 ` [PATCH 09/59] libperf: Move config_terms " Jiri Olsa
2021-11-08 13:36 ` [PATCH 10/59] libperf: Move metric_id " Jiri Olsa
2021-11-08 13:36 ` [PATCH 11/59] libperf: Move tool_event " Jiri Olsa
2021-11-08 13:36 ` [PATCH 12/59] libperf: Move unit " Jiri Olsa
2021-11-08 13:36 ` [PATCH 13/59] libperf: Move exclude_GH " Jiri Olsa
2021-11-08 17:53   ` Ian Rogers
2021-11-08 21:16     ` Jiri Olsa
2021-11-08 13:36 ` [PATCH 14/59] libperf: Move sample_read " Jiri Olsa
2021-11-08 13:36 ` [PATCH 15/59] libperf: Move precise_max " Jiri Olsa
2021-11-08 13:36 ` [PATCH 16/59] libperf: Move weak_group " Jiri Olsa
2021-11-08 13:36 ` [PATCH 17/59] libperf: Move bpf_counter " Jiri Olsa
2021-11-08 13:36 ` [PATCH 18/59] libperf: Move group_name " Jiri Olsa
2021-11-08 17:58   ` Ian Rogers
2021-11-08 18:07     ` Arnaldo Carvalho de Melo
2021-11-08 21:19       ` Jiri Olsa
2021-11-08 13:36 ` [PATCH 19/59] perf tools: Fix parse_events_term__num call Jiri Olsa
2021-11-08 18:15   ` Ian Rogers
2021-11-08 21:21     ` Jiri Olsa
2021-11-08 13:36 ` [PATCH 20/59] perf tools: Pass parse_state all the way down to __add_event Jiri Olsa
2021-11-08 13:36 ` [PATCH 21/59] perf tools: Pass parse_state all the way down to add_tracepoint Jiri Olsa
2021-11-08 13:36 ` [PATCH 22/59] perf tools: Add evsel__new callback to parse_state_ops Jiri Olsa
2021-11-08 13:36 ` [PATCH 23/59] perf tools: Add evsel__new_tp " Jiri Olsa
2021-11-08 13:36 ` [PATCH 24/59] perf tools: Add loc_term and loc_val helpers to parse_events_term__str Jiri Olsa
2021-11-08 13:36 ` [PATCH 25/59] perf tools: Add loc_term and loc_val helpers to parse_events_term__num Jiri Olsa
2021-11-08 13:36 ` [PATCH 26/59] libperf: Move in the event_symbols_hw/event_symbols_sw Jiri Olsa
2021-11-08 13:36 ` [PATCH 27/59] libperf: Move in struct parse_events_term code Jiri Olsa
2021-11-08 13:36 ` [PATCH 28/59] perf tools: Add perf_evsel__add_event function Jiri Olsa
2021-11-08 13:36 ` [PATCH 29/59] perf tools: Change struct parse_events_state::evlist to perf_evlist Jiri Olsa
2021-11-08 13:36 ` [PATCH 30/59] libperf: Move in struct parse_events_state Jiri Olsa
2021-11-08 18:21   ` Ian Rogers
2021-11-08 21:24     ` Jiri Olsa
2021-11-08 13:36 ` [PATCH 31/59] perf tools: Move event_attr_init in evsel__new_idx function Jiri Olsa
2021-11-08 13:36 ` [PATCH 32/59] libperf: Move in perf_pmu__warn_invalid_config function Jiri Olsa
2021-11-08 13:36 ` [PATCH 33/59] libperf: Move in perf_evsel__add_event function Jiri Olsa
2021-11-08 13:36 ` [PATCH 34/59] perf tools: Move parse_events_update_lists to parser unit Jiri Olsa
2021-11-08 13:36 ` [PATCH 35/59] libperf: Add perf_evsel__is_group_leader function Jiri Olsa
2021-11-08 13:36 ` [PATCH 36/59] perf tools: Make parse_events__modifier_event work over perf_evsel Jiri Olsa
2021-11-08 13:36 ` [PATCH 37/59] perf tool: Pass perf_guest in struct parse_events_state Jiri Olsa
2021-11-08 13:36 ` [PATCH 38/59] libperf: Move in parse_events__modifier_group/event functions Jiri Olsa
2021-11-08 13:36 ` [PATCH 39/59] libperf: Move in parse_events__handle_error function Jiri Olsa
2021-11-08 13:36 ` [PATCH 40/59] libperf: Move in parse_events_evlist_error function Jiri Olsa
2021-11-08 13:36 ` [PATCH 41/59] perf tools: Add perf_evsel__delete callback to struct parse_events_ops Jiri Olsa
2021-11-08 13:36 ` [PATCH 42/59] libperf: Move in parse_events_name function Jiri Olsa
2021-11-08 18:23   ` Ian Rogers
2021-11-08 21:24     ` Jiri Olsa
2021-11-08 13:36 ` [PATCH 43/59] perf tools: Move out parse_events_add_pmu fallback from parser code Jiri Olsa
2021-11-08 13:36 ` [PATCH 44/59] perf tools: Add add_pmu callback to struct parse_events_ops Jiri Olsa
2021-11-08 13:36 ` [PATCH 45/59] perf tools: Add add_pmu_multi " Jiri Olsa
2021-11-08 13:36 ` [PATCH 46/59] perf tools: Add add_numeric " Jiri Olsa
2021-11-08 18:27   ` Ian Rogers
2021-11-08 21:34     ` Jiri Olsa
2021-11-08 13:36 ` [PATCH 47/59] perf tools: Add add_cache " Jiri Olsa
2021-11-08 13:36 ` [PATCH 48/59] perf tools: Add add_breakpoint " Jiri Olsa
2021-11-08 13:37 ` [PATCH 49/59] perf tools: Add add_tracepoint " Jiri Olsa
2021-11-08 13:37 ` [PATCH 50/59] perf tools: Add add_bpf " Jiri Olsa
2021-11-08 13:37 ` [PATCH 51/59] perf tools: Add add_tool " Jiri Olsa
2021-11-08 13:37 ` [PATCH 52/59] perf tools: Add set_leader " Jiri Olsa
2021-11-08 13:37 ` [PATCH 53/59] perf tools: Add parse_check " Jiri Olsa
2021-11-08 13:37 ` [PATCH 54/59] perf tools: Move PE_* enums in parse_events__scanner Jiri Olsa
2021-11-08 13:37 ` [PATCH 55/59] libperf: Move in parse-events flex/bison parser Jiri Olsa
2021-11-08 13:37 ` [PATCH 56/59] libperf: Move in parse_events_add_breakpoint function Jiri Olsa
2021-11-08 13:37 ` [PATCH 57/59] libperf: Move in some lib objects from perf Jiri Olsa
2021-11-08 13:37 ` [PATCH 58/59] libperf: Add libperf_parse_events function Jiri Olsa
2021-11-08 13:37 ` [PATCH 59/59] libperf: Add parse-events test Jiri Olsa
2021-11-08 18:32   ` Ian Rogers
2021-11-08 21:37     ` Jiri Olsa
2021-11-08 18:50 ` [RFC 00/59] libperf: Move in event parse code Ian Rogers
2021-11-08 21:50   ` Jiri Olsa

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).