[PATCH v1 15/15] perf vendor events intel: Add metricgroup descriptions for all models

Ian Rogers posted 15 patches 2 years, 8 months ago
There is a newer version of this series
[PATCH v1 15/15] perf vendor events intel: Add metricgroup descriptions for all models
Posted by Ian Rogers 2 years, 8 months ago
Add metric group descriptions created by:
https://github.com/intel/perfmon/blob/main/scripts/create_perf_json.py
The descriptions add some additional detail in perf list.

Signed-off-by: Ian Rogers <irogers@google.com>
---
 .../arch/x86/alderlake/metricgroups.json      | 122 ++++++++++++++++++
 .../arch/x86/alderlaken/metricgroups.json     |  26 ++++
 .../arch/x86/broadwell/metricgroups.json      | 107 +++++++++++++++
 .../arch/x86/broadwellde/metricgroups.json    | 107 +++++++++++++++
 .../arch/x86/broadwellx/metricgroups.json     | 107 +++++++++++++++
 .../arch/x86/cascadelakex/metricgroups.json   | 114 ++++++++++++++++
 .../arch/x86/haswell/metricgroups.json        | 107 +++++++++++++++
 .../arch/x86/haswellx/metricgroups.json       | 107 +++++++++++++++
 .../arch/x86/icelake/metricgroups.json        | 113 ++++++++++++++++
 .../arch/x86/icelakex/metricgroups.json       | 114 ++++++++++++++++
 .../arch/x86/ivybridge/metricgroups.json      | 107 +++++++++++++++
 .../arch/x86/ivytown/metricgroups.json        | 107 +++++++++++++++
 .../arch/x86/jaketown/metricgroups.json       | 100 ++++++++++++++
 .../arch/x86/sandybridge/metricgroups.json    | 100 ++++++++++++++
 .../arch/x86/sapphirerapids/metricgroups.json | 118 +++++++++++++++++
 .../arch/x86/skylake/metricgroups.json        | 113 ++++++++++++++++
 .../arch/x86/skylakex/metricgroups.json       | 114 ++++++++++++++++
 .../arch/x86/tigerlake/metricgroups.json      | 113 ++++++++++++++++
 18 files changed, 1896 insertions(+)
 create mode 100644 tools/perf/pmu-events/arch/x86/alderlake/metricgroups.json
 create mode 100644 tools/perf/pmu-events/arch/x86/alderlaken/metricgroups.json
 create mode 100644 tools/perf/pmu-events/arch/x86/broadwell/metricgroups.json
 create mode 100644 tools/perf/pmu-events/arch/x86/broadwellde/metricgroups.json
 create mode 100644 tools/perf/pmu-events/arch/x86/broadwellx/metricgroups.json
 create mode 100644 tools/perf/pmu-events/arch/x86/cascadelakex/metricgroups.json
 create mode 100644 tools/perf/pmu-events/arch/x86/haswell/metricgroups.json
 create mode 100644 tools/perf/pmu-events/arch/x86/haswellx/metricgroups.json
 create mode 100644 tools/perf/pmu-events/arch/x86/icelake/metricgroups.json
 create mode 100644 tools/perf/pmu-events/arch/x86/icelakex/metricgroups.json
 create mode 100644 tools/perf/pmu-events/arch/x86/ivybridge/metricgroups.json
 create mode 100644 tools/perf/pmu-events/arch/x86/ivytown/metricgroups.json
 create mode 100644 tools/perf/pmu-events/arch/x86/jaketown/metricgroups.json
 create mode 100644 tools/perf/pmu-events/arch/x86/sandybridge/metricgroups.json
 create mode 100644 tools/perf/pmu-events/arch/x86/sapphirerapids/metricgroups.json
 create mode 100644 tools/perf/pmu-events/arch/x86/skylake/metricgroups.json
 create mode 100644 tools/perf/pmu-events/arch/x86/skylakex/metricgroups.json
 create mode 100644 tools/perf/pmu-events/arch/x86/tigerlake/metricgroups.json

diff --git a/tools/perf/pmu-events/arch/x86/alderlake/metricgroups.json b/tools/perf/pmu-events/arch/x86/alderlake/metricgroups.json
new file mode 100644
index 000000000000..273ccfb0ed6f
--- /dev/null
+++ b/tools/perf/pmu-events/arch/x86/alderlake/metricgroups.json
@@ -0,0 +1,122 @@
+{
+    "Backend": "Grouping from metrics spreadsheet",
+    "Bad": "Grouping from metrics spreadsheet",
+    "BadSpec": "Grouping from metrics spreadsheet",
+    "BigFoot": "Grouping from metrics spreadsheet",
+    "BrMispredicts": "Grouping from metrics spreadsheet",
+    "Branches": "Grouping from metrics spreadsheet",
+    "CacheMisses": "Grouping from metrics spreadsheet",
+    "CodeGen": "Grouping from metrics spreadsheet",
+    "Compute": "Grouping from metrics spreadsheet",
+    "Cor": "Grouping from metrics spreadsheet",
+    "DSB": "Grouping from metrics spreadsheet",
+    "DSBmiss": "Grouping from metrics spreadsheet",
+    "DataSharing": "Grouping from metrics spreadsheet",
+    "Fed": "Grouping from metrics spreadsheet",
+    "FetchBW": "Grouping from metrics spreadsheet",
+    "FetchLat": "Grouping from metrics spreadsheet",
+    "Flops": "Grouping from metrics spreadsheet",
+    "FpScalar": "Grouping from metrics spreadsheet",
+    "FpVector": "Grouping from metrics spreadsheet",
+    "Frontend": "Grouping from metrics spreadsheet",
+    "HPC": "Grouping from metrics spreadsheet",
+    "IcMiss": "Grouping from metrics spreadsheet",
+    "InsType": "Grouping from metrics spreadsheet",
+    "IntVector": "Grouping from metrics spreadsheet",
+    "L2Evicts": "Grouping from metrics spreadsheet",
+    "LSD": "Grouping from metrics spreadsheet",
+    "MachineClears": "Grouping from metrics spreadsheet",
+    "Mem": "Grouping from metrics spreadsheet",
+    "MemoryBW": "Grouping from metrics spreadsheet",
+    "MemoryBound": "Grouping from metrics spreadsheet",
+    "MemoryLat": "Grouping from metrics spreadsheet",
+    "MemoryTLB": "Grouping from metrics spreadsheet",
+    "Memory_BW": "Grouping from metrics spreadsheet",
+    "Memory_Lat": "Grouping from metrics spreadsheet",
+    "MicroSeq": "Grouping from metrics spreadsheet",
+    "OS": "Grouping from metrics spreadsheet",
+    "Offcore": "Grouping from metrics spreadsheet",
+    "PGO": "Grouping from metrics spreadsheet",
+    "Pipeline": "Grouping from metrics spreadsheet",
+    "PortsUtil": "Grouping from metrics spreadsheet",
+    "Power": "Grouping from metrics spreadsheet",
+    "Prefetches": "Grouping from metrics spreadsheet",
+    "Ret": "Grouping from metrics spreadsheet",
+    "Retire": "Grouping from metrics spreadsheet",
+    "SMT": "Grouping from metrics spreadsheet",
+    "Server": "Grouping from metrics spreadsheet",
+    "Snoop": "Grouping from metrics spreadsheet",
+    "SoC": "Grouping from metrics spreadsheet",
+    "Summary": "Grouping from metrics spreadsheet",
+    "TmaL1": "Grouping from metrics spreadsheet",
+    "TmaL2": "Grouping from metrics spreadsheet",
+    "TmaL3mem": "Grouping from metrics spreadsheet",
+    "TopdownL1": "Metrics for top-down breakdown at level 1",
+    "TopdownL2": "Metrics for top-down breakdown at level 2",
+    "TopdownL3": "Metrics for top-down breakdown at level 3",
+    "TopdownL4": "Metrics for top-down breakdown at level 4",
+    "TopdownL5": "Metrics for top-down breakdown at level 5",
+    "TopdownL6": "Metrics for top-down breakdown at level 6",
+    "tma_L1_group": "Metrics for top-down breakdown at level 1",
+    "tma_L2_group": "Metrics for top-down breakdown at level 2",
+    "tma_L3_group": "Metrics for top-down breakdown at level 3",
+    "tma_L4_group": "Metrics for top-down breakdown at level 4",
+    "tma_L5_group": "Metrics for top-down breakdown at level 5",
+    "tma_L6_group": "Metrics for top-down breakdown at level 6",
+    "tma_alu_op_utilization_group": "Metrics contributing to tma_alu_op_utilization category",
+    "tma_assists_group": "Metrics contributing to tma_assists category",
+    "tma_backend_bound_aux_group": "Metrics contributing to tma_backend_bound_aux category",
+    "tma_backend_bound_group": "Metrics contributing to tma_backend_bound category",
+    "tma_bad_speculation_group": "Metrics contributing to tma_bad_speculation category",
+    "tma_base_group": "Metrics contributing to tma_base category",
+    "tma_branch_resteers_group": "Metrics contributing to tma_branch_resteers category",
+    "tma_core_bound_group": "Metrics contributing to tma_core_bound category",
+    "tma_dram_bound_group": "Metrics contributing to tma_dram_bound category",
+    "tma_dtlb_load_group": "Metrics contributing to tma_dtlb_load category",
+    "tma_dtlb_store_group": "Metrics contributing to tma_dtlb_store category",
+    "tma_fetch_bandwidth_group": "Metrics contributing to tma_fetch_bandwidth category",
+    "tma_fetch_latency_group": "Metrics contributing to tma_fetch_latency category",
+    "tma_fp_arith_group": "Metrics contributing to tma_fp_arith category",
+    "tma_fp_vector_group": "Metrics contributing to tma_fp_vector category",
+    "tma_frontend_bound_group": "Metrics contributing to tma_frontend_bound category",
+    "tma_heavy_operations_group": "Metrics contributing to tma_heavy_operations category",
+    "tma_int_operations_group": "Metrics contributing to tma_int_operations category",
+    "tma_issue2P": "Metrics related by the issue $issue2P",
+    "tma_issueBC": "Metrics related by the issue $issueBC",
+    "tma_issueBM": "Metrics related by the issue $issueBM",
+    "tma_issueBW": "Metrics related by the issue $issueBW",
+    "tma_issueD0": "Metrics related by the issue $issueD0",
+    "tma_issueFB": "Metrics related by the issue $issueFB",
+    "tma_issueFL": "Metrics related by the issue $issueFL",
+    "tma_issueL1": "Metrics related by the issue $issueL1",
+    "tma_issueLat": "Metrics related by the issue $issueLat",
+    "tma_issueMC": "Metrics related by the issue $issueMC",
+    "tma_issueMS": "Metrics related by the issue $issueMS",
+    "tma_issueMV": "Metrics related by the issue $issueMV",
+    "tma_issueRFO": "Metrics related by the issue $issueRFO",
+    "tma_issueSL": "Metrics related by the issue $issueSL",
+    "tma_issueSO": "Metrics related by the issue $issueSO",
+    "tma_issueSmSt": "Metrics related by the issue $issueSmSt",
+    "tma_issueSpSt": "Metrics related by the issue $issueSpSt",
+    "tma_issueSyncxn": "Metrics related by the issue $issueSyncxn",
+    "tma_issueTLB": "Metrics related by the issue $issueTLB",
+    "tma_l1_bound_group": "Metrics contributing to tma_l1_bound category",
+    "tma_l3_bound_group": "Metrics contributing to tma_l3_bound category",
+    "tma_light_operations_group": "Metrics contributing to tma_light_operations category",
+    "tma_load_op_utilization_group": "Metrics contributing to tma_load_op_utilization category",
+    "tma_machine_clears_group": "Metrics contributing to tma_machine_clears category",
+    "tma_mem_latency_group": "Metrics contributing to tma_mem_latency category",
+    "tma_mem_scheduler_group": "Metrics contributing to tma_mem_scheduler category",
+    "tma_memory_bound_group": "Metrics contributing to tma_memory_bound category",
+    "tma_microcode_sequencer_group": "Metrics contributing to tma_microcode_sequencer category",
+    "tma_mite_group": "Metrics contributing to tma_mite category",
+    "tma_nuke_group": "Metrics contributing to tma_nuke category",
+    "tma_ports_utilization_group": "Metrics contributing to tma_ports_utilization category",
+    "tma_ports_utilized_0_group": "Metrics contributing to tma_ports_utilized_0 category",
+    "tma_ports_utilized_3m_group": "Metrics contributing to tma_ports_utilized_3m category",
+    "tma_resource_bound_group": "Metrics contributing to tma_resource_bound category",
+    "tma_retiring_group": "Metrics contributing to tma_retiring category",
+    "tma_serializing_operation_group": "Metrics contributing to tma_serializing_operation category",
+    "tma_store_bound_group": "Metrics contributing to tma_store_bound category",
+    "tma_store_op_utilization_group": "Metrics contributing to tma_store_op_utilization category"
+}
diff --git a/tools/perf/pmu-events/arch/x86/alderlaken/metricgroups.json b/tools/perf/pmu-events/arch/x86/alderlaken/metricgroups.json
new file mode 100644
index 000000000000..ca46d4202c46
--- /dev/null
+++ b/tools/perf/pmu-events/arch/x86/alderlaken/metricgroups.json
@@ -0,0 +1,26 @@
+{
+    "Power": "Grouping from metrics spreadsheet",
+    "Summary": "Grouping from metrics spreadsheet",
+    "TopdownL1": "Metrics for top-down breakdown at level 1",
+    "TopdownL2": "Metrics for top-down breakdown at level 2",
+    "TopdownL3": "Metrics for top-down breakdown at level 3",
+    "TopdownL4": "Metrics for top-down breakdown at level 4",
+    "tma_L1_group": "Metrics for top-down breakdown at level 1",
+    "tma_L2_group": "Metrics for top-down breakdown at level 2",
+    "tma_L3_group": "Metrics for top-down breakdown at level 3",
+    "tma_L4_group": "Metrics for top-down breakdown at level 4",
+    "tma_backend_bound_aux_group": "Metrics contributing to tma_backend_bound_aux category",
+    "tma_backend_bound_group": "Metrics contributing to tma_backend_bound category",
+    "tma_bad_speculation_group": "Metrics contributing to tma_bad_speculation category",
+    "tma_base_group": "Metrics contributing to tma_base category",
+    "tma_fetch_bandwidth_group": "Metrics contributing to tma_fetch_bandwidth category",
+    "tma_fetch_latency_group": "Metrics contributing to tma_fetch_latency category",
+    "tma_frontend_bound_group": "Metrics contributing to tma_frontend_bound category",
+    "tma_l1_bound_group": "Metrics contributing to tma_l1_bound category",
+    "tma_machine_clears_group": "Metrics contributing to tma_machine_clears category",
+    "tma_mem_scheduler_group": "Metrics contributing to tma_mem_scheduler category",
+    "tma_memory_bound_group": "Metrics contributing to tma_memory_bound category",
+    "tma_nuke_group": "Metrics contributing to tma_nuke category",
+    "tma_resource_bound_group": "Metrics contributing to tma_resource_bound category",
+    "tma_retiring_group": "Metrics contributing to tma_retiring category"
+}
diff --git a/tools/perf/pmu-events/arch/x86/broadwell/metricgroups.json b/tools/perf/pmu-events/arch/x86/broadwell/metricgroups.json
new file mode 100644
index 000000000000..92b491d8f2f3
--- /dev/null
+++ b/tools/perf/pmu-events/arch/x86/broadwell/metricgroups.json
@@ -0,0 +1,107 @@
+{
+    "Backend": "Grouping from metrics spreadsheet",
+    "Bad": "Grouping from metrics spreadsheet",
+    "BadSpec": "Grouping from metrics spreadsheet",
+    "BigFoot": "Grouping from metrics spreadsheet",
+    "BrMispredicts": "Grouping from metrics spreadsheet",
+    "Branches": "Grouping from metrics spreadsheet",
+    "CacheMisses": "Grouping from metrics spreadsheet",
+    "Compute": "Grouping from metrics spreadsheet",
+    "Cor": "Grouping from metrics spreadsheet",
+    "DSB": "Grouping from metrics spreadsheet",
+    "DSBmiss": "Grouping from metrics spreadsheet",
+    "DataSharing": "Grouping from metrics spreadsheet",
+    "Fed": "Grouping from metrics spreadsheet",
+    "FetchBW": "Grouping from metrics spreadsheet",
+    "FetchLat": "Grouping from metrics spreadsheet",
+    "Flops": "Grouping from metrics spreadsheet",
+    "FpScalar": "Grouping from metrics spreadsheet",
+    "FpVector": "Grouping from metrics spreadsheet",
+    "Frontend": "Grouping from metrics spreadsheet",
+    "HPC": "Grouping from metrics spreadsheet",
+    "IcMiss": "Grouping from metrics spreadsheet",
+    "InsType": "Grouping from metrics spreadsheet",
+    "L2Evicts": "Grouping from metrics spreadsheet",
+    "LSD": "Grouping from metrics spreadsheet",
+    "MachineClears": "Grouping from metrics spreadsheet",
+    "Mem": "Grouping from metrics spreadsheet",
+    "MemoryBW": "Grouping from metrics spreadsheet",
+    "MemoryBound": "Grouping from metrics spreadsheet",
+    "MemoryLat": "Grouping from metrics spreadsheet",
+    "MemoryTLB": "Grouping from metrics spreadsheet",
+    "Memory_BW": "Grouping from metrics spreadsheet",
+    "Memory_Lat": "Grouping from metrics spreadsheet",
+    "MicroSeq": "Grouping from metrics spreadsheet",
+    "OS": "Grouping from metrics spreadsheet",
+    "Offcore": "Grouping from metrics spreadsheet",
+    "PGO": "Grouping from metrics spreadsheet",
+    "Pipeline": "Grouping from metrics spreadsheet",
+    "PortsUtil": "Grouping from metrics spreadsheet",
+    "Power": "Grouping from metrics spreadsheet",
+    "Ret": "Grouping from metrics spreadsheet",
+    "Retire": "Grouping from metrics spreadsheet",
+    "SMT": "Grouping from metrics spreadsheet",
+    "Server": "Grouping from metrics spreadsheet",
+    "Snoop": "Grouping from metrics spreadsheet",
+    "SoC": "Grouping from metrics spreadsheet",
+    "Summary": "Grouping from metrics spreadsheet",
+    "TmaL1": "Grouping from metrics spreadsheet",
+    "TmaL2": "Grouping from metrics spreadsheet",
+    "TmaL3mem": "Grouping from metrics spreadsheet",
+    "TopdownL1": "Metrics for top-down breakdown at level 1",
+    "TopdownL2": "Metrics for top-down breakdown at level 2",
+    "TopdownL3": "Metrics for top-down breakdown at level 3",
+    "TopdownL4": "Metrics for top-down breakdown at level 4",
+    "TopdownL5": "Metrics for top-down breakdown at level 5",
+    "TopdownL6": "Metrics for top-down breakdown at level 6",
+    "tma_L1_group": "Metrics for top-down breakdown at level 1",
+    "tma_L2_group": "Metrics for top-down breakdown at level 2",
+    "tma_L3_group": "Metrics for top-down breakdown at level 3",
+    "tma_L4_group": "Metrics for top-down breakdown at level 4",
+    "tma_L5_group": "Metrics for top-down breakdown at level 5",
+    "tma_L6_group": "Metrics for top-down breakdown at level 6",
+    "tma_alu_op_utilization_group": "Metrics contributing to tma_alu_op_utilization category",
+    "tma_backend_bound_group": "Metrics contributing to tma_backend_bound category",
+    "tma_bad_speculation_group": "Metrics contributing to tma_bad_speculation category",
+    "tma_branch_resteers_group": "Metrics contributing to tma_branch_resteers category",
+    "tma_core_bound_group": "Metrics contributing to tma_core_bound category",
+    "tma_dram_bound_group": "Metrics contributing to tma_dram_bound category",
+    "tma_dtlb_load_group": "Metrics contributing to tma_dtlb_load category",
+    "tma_dtlb_store_group": "Metrics contributing to tma_dtlb_store category",
+    "tma_fetch_bandwidth_group": "Metrics contributing to tma_fetch_bandwidth category",
+    "tma_fetch_latency_group": "Metrics contributing to tma_fetch_latency category",
+    "tma_fp_arith_group": "Metrics contributing to tma_fp_arith category",
+    "tma_fp_vector_group": "Metrics contributing to tma_fp_vector category",
+    "tma_frontend_bound_group": "Metrics contributing to tma_frontend_bound category",
+    "tma_heavy_operations_group": "Metrics contributing to tma_heavy_operations category",
+    "tma_issue2P": "Metrics related by the issue $issue2P",
+    "tma_issueBM": "Metrics related by the issue $issueBM",
+    "tma_issueBW": "Metrics related by the issue $issueBW",
+    "tma_issueFB": "Metrics related by the issue $issueFB",
+    "tma_issueL1": "Metrics related by the issue $issueL1",
+    "tma_issueLat": "Metrics related by the issue $issueLat",
+    "tma_issueMC": "Metrics related by the issue $issueMC",
+    "tma_issueMS": "Metrics related by the issue $issueMS",
+    "tma_issueMV": "Metrics related by the issue $issueMV",
+    "tma_issueRFO": "Metrics related by the issue $issueRFO",
+    "tma_issueSL": "Metrics related by the issue $issueSL",
+    "tma_issueSO": "Metrics related by the issue $issueSO",
+    "tma_issueSmSt": "Metrics related by the issue $issueSmSt",
+    "tma_issueSpSt": "Metrics related by the issue $issueSpSt",
+    "tma_issueSyncxn": "Metrics related by the issue $issueSyncxn",
+    "tma_issueTLB": "Metrics related by the issue $issueTLB",
+    "tma_l1_bound_group": "Metrics contributing to tma_l1_bound category",
+    "tma_l3_bound_group": "Metrics contributing to tma_l3_bound category",
+    "tma_light_operations_group": "Metrics contributing to tma_light_operations category",
+    "tma_load_op_utilization_group": "Metrics contributing to tma_load_op_utilization category",
+    "tma_mem_latency_group": "Metrics contributing to tma_mem_latency category",
+    "tma_memory_bound_group": "Metrics contributing to tma_memory_bound category",
+    "tma_microcode_sequencer_group": "Metrics contributing to tma_microcode_sequencer category",
+    "tma_ports_utilization_group": "Metrics contributing to tma_ports_utilization category",
+    "tma_ports_utilized_0_group": "Metrics contributing to tma_ports_utilized_0 category",
+    "tma_ports_utilized_3m_group": "Metrics contributing to tma_ports_utilized_3m category",
+    "tma_retiring_group": "Metrics contributing to tma_retiring category",
+    "tma_serializing_operation_group": "Metrics contributing to tma_serializing_operation category",
+    "tma_store_bound_group": "Metrics contributing to tma_store_bound category",
+    "tma_store_op_utilization_group": "Metrics contributing to tma_store_op_utilization category"
+}
diff --git a/tools/perf/pmu-events/arch/x86/broadwellde/metricgroups.json b/tools/perf/pmu-events/arch/x86/broadwellde/metricgroups.json
new file mode 100644
index 000000000000..92b491d8f2f3
--- /dev/null
+++ b/tools/perf/pmu-events/arch/x86/broadwellde/metricgroups.json
@@ -0,0 +1,107 @@
+{
+    "Backend": "Grouping from metrics spreadsheet",
+    "Bad": "Grouping from metrics spreadsheet",
+    "BadSpec": "Grouping from metrics spreadsheet",
+    "BigFoot": "Grouping from metrics spreadsheet",
+    "BrMispredicts": "Grouping from metrics spreadsheet",
+    "Branches": "Grouping from metrics spreadsheet",
+    "CacheMisses": "Grouping from metrics spreadsheet",
+    "Compute": "Grouping from metrics spreadsheet",
+    "Cor": "Grouping from metrics spreadsheet",
+    "DSB": "Grouping from metrics spreadsheet",
+    "DSBmiss": "Grouping from metrics spreadsheet",
+    "DataSharing": "Grouping from metrics spreadsheet",
+    "Fed": "Grouping from metrics spreadsheet",
+    "FetchBW": "Grouping from metrics spreadsheet",
+    "FetchLat": "Grouping from metrics spreadsheet",
+    "Flops": "Grouping from metrics spreadsheet",
+    "FpScalar": "Grouping from metrics spreadsheet",
+    "FpVector": "Grouping from metrics spreadsheet",
+    "Frontend": "Grouping from metrics spreadsheet",
+    "HPC": "Grouping from metrics spreadsheet",
+    "IcMiss": "Grouping from metrics spreadsheet",
+    "InsType": "Grouping from metrics spreadsheet",
+    "L2Evicts": "Grouping from metrics spreadsheet",
+    "LSD": "Grouping from metrics spreadsheet",
+    "MachineClears": "Grouping from metrics spreadsheet",
+    "Mem": "Grouping from metrics spreadsheet",
+    "MemoryBW": "Grouping from metrics spreadsheet",
+    "MemoryBound": "Grouping from metrics spreadsheet",
+    "MemoryLat": "Grouping from metrics spreadsheet",
+    "MemoryTLB": "Grouping from metrics spreadsheet",
+    "Memory_BW": "Grouping from metrics spreadsheet",
+    "Memory_Lat": "Grouping from metrics spreadsheet",
+    "MicroSeq": "Grouping from metrics spreadsheet",
+    "OS": "Grouping from metrics spreadsheet",
+    "Offcore": "Grouping from metrics spreadsheet",
+    "PGO": "Grouping from metrics spreadsheet",
+    "Pipeline": "Grouping from metrics spreadsheet",
+    "PortsUtil": "Grouping from metrics spreadsheet",
+    "Power": "Grouping from metrics spreadsheet",
+    "Ret": "Grouping from metrics spreadsheet",
+    "Retire": "Grouping from metrics spreadsheet",
+    "SMT": "Grouping from metrics spreadsheet",
+    "Server": "Grouping from metrics spreadsheet",
+    "Snoop": "Grouping from metrics spreadsheet",
+    "SoC": "Grouping from metrics spreadsheet",
+    "Summary": "Grouping from metrics spreadsheet",
+    "TmaL1": "Grouping from metrics spreadsheet",
+    "TmaL2": "Grouping from metrics spreadsheet",
+    "TmaL3mem": "Grouping from metrics spreadsheet",
+    "TopdownL1": "Metrics for top-down breakdown at level 1",
+    "TopdownL2": "Metrics for top-down breakdown at level 2",
+    "TopdownL3": "Metrics for top-down breakdown at level 3",
+    "TopdownL4": "Metrics for top-down breakdown at level 4",
+    "TopdownL5": "Metrics for top-down breakdown at level 5",
+    "TopdownL6": "Metrics for top-down breakdown at level 6",
+    "tma_L1_group": "Metrics for top-down breakdown at level 1",
+    "tma_L2_group": "Metrics for top-down breakdown at level 2",
+    "tma_L3_group": "Metrics for top-down breakdown at level 3",
+    "tma_L4_group": "Metrics for top-down breakdown at level 4",
+    "tma_L5_group": "Metrics for top-down breakdown at level 5",
+    "tma_L6_group": "Metrics for top-down breakdown at level 6",
+    "tma_alu_op_utilization_group": "Metrics contributing to tma_alu_op_utilization category",
+    "tma_backend_bound_group": "Metrics contributing to tma_backend_bound category",
+    "tma_bad_speculation_group": "Metrics contributing to tma_bad_speculation category",
+    "tma_branch_resteers_group": "Metrics contributing to tma_branch_resteers category",
+    "tma_core_bound_group": "Metrics contributing to tma_core_bound category",
+    "tma_dram_bound_group": "Metrics contributing to tma_dram_bound category",
+    "tma_dtlb_load_group": "Metrics contributing to tma_dtlb_load category",
+    "tma_dtlb_store_group": "Metrics contributing to tma_dtlb_store category",
+    "tma_fetch_bandwidth_group": "Metrics contributing to tma_fetch_bandwidth category",
+    "tma_fetch_latency_group": "Metrics contributing to tma_fetch_latency category",
+    "tma_fp_arith_group": "Metrics contributing to tma_fp_arith category",
+    "tma_fp_vector_group": "Metrics contributing to tma_fp_vector category",
+    "tma_frontend_bound_group": "Metrics contributing to tma_frontend_bound category",
+    "tma_heavy_operations_group": "Metrics contributing to tma_heavy_operations category",
+    "tma_issue2P": "Metrics related by the issue $issue2P",
+    "tma_issueBM": "Metrics related by the issue $issueBM",
+    "tma_issueBW": "Metrics related by the issue $issueBW",
+    "tma_issueFB": "Metrics related by the issue $issueFB",
+    "tma_issueL1": "Metrics related by the issue $issueL1",
+    "tma_issueLat": "Metrics related by the issue $issueLat",
+    "tma_issueMC": "Metrics related by the issue $issueMC",
+    "tma_issueMS": "Metrics related by the issue $issueMS",
+    "tma_issueMV": "Metrics related by the issue $issueMV",
+    "tma_issueRFO": "Metrics related by the issue $issueRFO",
+    "tma_issueSL": "Metrics related by the issue $issueSL",
+    "tma_issueSO": "Metrics related by the issue $issueSO",
+    "tma_issueSmSt": "Metrics related by the issue $issueSmSt",
+    "tma_issueSpSt": "Metrics related by the issue $issueSpSt",
+    "tma_issueSyncxn": "Metrics related by the issue $issueSyncxn",
+    "tma_issueTLB": "Metrics related by the issue $issueTLB",
+    "tma_l1_bound_group": "Metrics contributing to tma_l1_bound category",
+    "tma_l3_bound_group": "Metrics contributing to tma_l3_bound category",
+    "tma_light_operations_group": "Metrics contributing to tma_light_operations category",
+    "tma_load_op_utilization_group": "Metrics contributing to tma_load_op_utilization category",
+    "tma_mem_latency_group": "Metrics contributing to tma_mem_latency category",
+    "tma_memory_bound_group": "Metrics contributing to tma_memory_bound category",
+    "tma_microcode_sequencer_group": "Metrics contributing to tma_microcode_sequencer category",
+    "tma_ports_utilization_group": "Metrics contributing to tma_ports_utilization category",
+    "tma_ports_utilized_0_group": "Metrics contributing to tma_ports_utilized_0 category",
+    "tma_ports_utilized_3m_group": "Metrics contributing to tma_ports_utilized_3m category",
+    "tma_retiring_group": "Metrics contributing to tma_retiring category",
+    "tma_serializing_operation_group": "Metrics contributing to tma_serializing_operation category",
+    "tma_store_bound_group": "Metrics contributing to tma_store_bound category",
+    "tma_store_op_utilization_group": "Metrics contributing to tma_store_op_utilization category"
+}
diff --git a/tools/perf/pmu-events/arch/x86/broadwellx/metricgroups.json b/tools/perf/pmu-events/arch/x86/broadwellx/metricgroups.json
new file mode 100644
index 000000000000..92b491d8f2f3
--- /dev/null
+++ b/tools/perf/pmu-events/arch/x86/broadwellx/metricgroups.json
@@ -0,0 +1,107 @@
+{
+    "Backend": "Grouping from metrics spreadsheet",
+    "Bad": "Grouping from metrics spreadsheet",
+    "BadSpec": "Grouping from metrics spreadsheet",
+    "BigFoot": "Grouping from metrics spreadsheet",
+    "BrMispredicts": "Grouping from metrics spreadsheet",
+    "Branches": "Grouping from metrics spreadsheet",
+    "CacheMisses": "Grouping from metrics spreadsheet",
+    "Compute": "Grouping from metrics spreadsheet",
+    "Cor": "Grouping from metrics spreadsheet",
+    "DSB": "Grouping from metrics spreadsheet",
+    "DSBmiss": "Grouping from metrics spreadsheet",
+    "DataSharing": "Grouping from metrics spreadsheet",
+    "Fed": "Grouping from metrics spreadsheet",
+    "FetchBW": "Grouping from metrics spreadsheet",
+    "FetchLat": "Grouping from metrics spreadsheet",
+    "Flops": "Grouping from metrics spreadsheet",
+    "FpScalar": "Grouping from metrics spreadsheet",
+    "FpVector": "Grouping from metrics spreadsheet",
+    "Frontend": "Grouping from metrics spreadsheet",
+    "HPC": "Grouping from metrics spreadsheet",
+    "IcMiss": "Grouping from metrics spreadsheet",
+    "InsType": "Grouping from metrics spreadsheet",
+    "L2Evicts": "Grouping from metrics spreadsheet",
+    "LSD": "Grouping from metrics spreadsheet",
+    "MachineClears": "Grouping from metrics spreadsheet",
+    "Mem": "Grouping from metrics spreadsheet",
+    "MemoryBW": "Grouping from metrics spreadsheet",
+    "MemoryBound": "Grouping from metrics spreadsheet",
+    "MemoryLat": "Grouping from metrics spreadsheet",
+    "MemoryTLB": "Grouping from metrics spreadsheet",
+    "Memory_BW": "Grouping from metrics spreadsheet",
+    "Memory_Lat": "Grouping from metrics spreadsheet",
+    "MicroSeq": "Grouping from metrics spreadsheet",
+    "OS": "Grouping from metrics spreadsheet",
+    "Offcore": "Grouping from metrics spreadsheet",
+    "PGO": "Grouping from metrics spreadsheet",
+    "Pipeline": "Grouping from metrics spreadsheet",
+    "PortsUtil": "Grouping from metrics spreadsheet",
+    "Power": "Grouping from metrics spreadsheet",
+    "Ret": "Grouping from metrics spreadsheet",
+    "Retire": "Grouping from metrics spreadsheet",
+    "SMT": "Grouping from metrics spreadsheet",
+    "Server": "Grouping from metrics spreadsheet",
+    "Snoop": "Grouping from metrics spreadsheet",
+    "SoC": "Grouping from metrics spreadsheet",
+    "Summary": "Grouping from metrics spreadsheet",
+    "TmaL1": "Grouping from metrics spreadsheet",
+    "TmaL2": "Grouping from metrics spreadsheet",
+    "TmaL3mem": "Grouping from metrics spreadsheet",
+    "TopdownL1": "Metrics for top-down breakdown at level 1",
+    "TopdownL2": "Metrics for top-down breakdown at level 2",
+    "TopdownL3": "Metrics for top-down breakdown at level 3",
+    "TopdownL4": "Metrics for top-down breakdown at level 4",
+    "TopdownL5": "Metrics for top-down breakdown at level 5",
+    "TopdownL6": "Metrics for top-down breakdown at level 6",
+    "tma_L1_group": "Metrics for top-down breakdown at level 1",
+    "tma_L2_group": "Metrics for top-down breakdown at level 2",
+    "tma_L3_group": "Metrics for top-down breakdown at level 3",
+    "tma_L4_group": "Metrics for top-down breakdown at level 4",
+    "tma_L5_group": "Metrics for top-down breakdown at level 5",
+    "tma_L6_group": "Metrics for top-down breakdown at level 6",
+    "tma_alu_op_utilization_group": "Metrics contributing to tma_alu_op_utilization category",
+    "tma_backend_bound_group": "Metrics contributing to tma_backend_bound category",
+    "tma_bad_speculation_group": "Metrics contributing to tma_bad_speculation category",
+    "tma_branch_resteers_group": "Metrics contributing to tma_branch_resteers category",
+    "tma_core_bound_group": "Metrics contributing to tma_core_bound category",
+    "tma_dram_bound_group": "Metrics contributing to tma_dram_bound category",
+    "tma_dtlb_load_group": "Metrics contributing to tma_dtlb_load category",
+    "tma_dtlb_store_group": "Metrics contributing to tma_dtlb_store category",
+    "tma_fetch_bandwidth_group": "Metrics contributing to tma_fetch_bandwidth category",
+    "tma_fetch_latency_group": "Metrics contributing to tma_fetch_latency category",
+    "tma_fp_arith_group": "Metrics contributing to tma_fp_arith category",
+    "tma_fp_vector_group": "Metrics contributing to tma_fp_vector category",
+    "tma_frontend_bound_group": "Metrics contributing to tma_frontend_bound category",
+    "tma_heavy_operations_group": "Metrics contributing to tma_heavy_operations category",
+    "tma_issue2P": "Metrics related by the issue $issue2P",
+    "tma_issueBM": "Metrics related by the issue $issueBM",
+    "tma_issueBW": "Metrics related by the issue $issueBW",
+    "tma_issueFB": "Metrics related by the issue $issueFB",
+    "tma_issueL1": "Metrics related by the issue $issueL1",
+    "tma_issueLat": "Metrics related by the issue $issueLat",
+    "tma_issueMC": "Metrics related by the issue $issueMC",
+    "tma_issueMS": "Metrics related by the issue $issueMS",
+    "tma_issueMV": "Metrics related by the issue $issueMV",
+    "tma_issueRFO": "Metrics related by the issue $issueRFO",
+    "tma_issueSL": "Metrics related by the issue $issueSL",
+    "tma_issueSO": "Metrics related by the issue $issueSO",
+    "tma_issueSmSt": "Metrics related by the issue $issueSmSt",
+    "tma_issueSpSt": "Metrics related by the issue $issueSpSt",
+    "tma_issueSyncxn": "Metrics related by the issue $issueSyncxn",
+    "tma_issueTLB": "Metrics related by the issue $issueTLB",
+    "tma_l1_bound_group": "Metrics contributing to tma_l1_bound category",
+    "tma_l3_bound_group": "Metrics contributing to tma_l3_bound category",
+    "tma_light_operations_group": "Metrics contributing to tma_light_operations category",
+    "tma_load_op_utilization_group": "Metrics contributing to tma_load_op_utilization category",
+    "tma_mem_latency_group": "Metrics contributing to tma_mem_latency category",
+    "tma_memory_bound_group": "Metrics contributing to tma_memory_bound category",
+    "tma_microcode_sequencer_group": "Metrics contributing to tma_microcode_sequencer category",
+    "tma_ports_utilization_group": "Metrics contributing to tma_ports_utilization category",
+    "tma_ports_utilized_0_group": "Metrics contributing to tma_ports_utilized_0 category",
+    "tma_ports_utilized_3m_group": "Metrics contributing to tma_ports_utilized_3m category",
+    "tma_retiring_group": "Metrics contributing to tma_retiring category",
+    "tma_serializing_operation_group": "Metrics contributing to tma_serializing_operation category",
+    "tma_store_bound_group": "Metrics contributing to tma_store_bound category",
+    "tma_store_op_utilization_group": "Metrics contributing to tma_store_op_utilization category"
+}
diff --git a/tools/perf/pmu-events/arch/x86/cascadelakex/metricgroups.json b/tools/perf/pmu-events/arch/x86/cascadelakex/metricgroups.json
new file mode 100644
index 000000000000..4c421c80bd1f
--- /dev/null
+++ b/tools/perf/pmu-events/arch/x86/cascadelakex/metricgroups.json
@@ -0,0 +1,114 @@
+{
+    "Backend": "Grouping from metrics spreadsheet",
+    "Bad": "Grouping from metrics spreadsheet",
+    "BadSpec": "Grouping from metrics spreadsheet",
+    "BigFoot": "Grouping from metrics spreadsheet",
+    "BrMispredicts": "Grouping from metrics spreadsheet",
+    "Branches": "Grouping from metrics spreadsheet",
+    "CacheMisses": "Grouping from metrics spreadsheet",
+    "CodeGen": "Grouping from metrics spreadsheet",
+    "Compute": "Grouping from metrics spreadsheet",
+    "Cor": "Grouping from metrics spreadsheet",
+    "DSB": "Grouping from metrics spreadsheet",
+    "DSBmiss": "Grouping from metrics spreadsheet",
+    "DataSharing": "Grouping from metrics spreadsheet",
+    "Fed": "Grouping from metrics spreadsheet",
+    "FetchBW": "Grouping from metrics spreadsheet",
+    "FetchLat": "Grouping from metrics spreadsheet",
+    "Flops": "Grouping from metrics spreadsheet",
+    "FpScalar": "Grouping from metrics spreadsheet",
+    "FpVector": "Grouping from metrics spreadsheet",
+    "Frontend": "Grouping from metrics spreadsheet",
+    "HPC": "Grouping from metrics spreadsheet",
+    "IcMiss": "Grouping from metrics spreadsheet",
+    "InsType": "Grouping from metrics spreadsheet",
+    "IoBW": "Grouping from metrics spreadsheet",
+    "L2Evicts": "Grouping from metrics spreadsheet",
+    "LSD": "Grouping from metrics spreadsheet",
+    "MachineClears": "Grouping from metrics spreadsheet",
+    "Mem": "Grouping from metrics spreadsheet",
+    "MemoryBW": "Grouping from metrics spreadsheet",
+    "MemoryBound": "Grouping from metrics spreadsheet",
+    "MemoryLat": "Grouping from metrics spreadsheet",
+    "MemoryTLB": "Grouping from metrics spreadsheet",
+    "Memory_BW": "Grouping from metrics spreadsheet",
+    "Memory_Lat": "Grouping from metrics spreadsheet",
+    "MicroSeq": "Grouping from metrics spreadsheet",
+    "OS": "Grouping from metrics spreadsheet",
+    "Offcore": "Grouping from metrics spreadsheet",
+    "PGO": "Grouping from metrics spreadsheet",
+    "Pipeline": "Grouping from metrics spreadsheet",
+    "PortsUtil": "Grouping from metrics spreadsheet",
+    "Power": "Grouping from metrics spreadsheet",
+    "Prefetches": "Grouping from metrics spreadsheet",
+    "Ret": "Grouping from metrics spreadsheet",
+    "Retire": "Grouping from metrics spreadsheet",
+    "SMT": "Grouping from metrics spreadsheet",
+    "Server": "Grouping from metrics spreadsheet",
+    "Snoop": "Grouping from metrics spreadsheet",
+    "SoC": "Grouping from metrics spreadsheet",
+    "Summary": "Grouping from metrics spreadsheet",
+    "TmaL1": "Grouping from metrics spreadsheet",
+    "TmaL2": "Grouping from metrics spreadsheet",
+    "TmaL3mem": "Grouping from metrics spreadsheet",
+    "TopdownL1": "Metrics for top-down breakdown at level 1",
+    "TopdownL2": "Metrics for top-down breakdown at level 2",
+    "TopdownL3": "Metrics for top-down breakdown at level 3",
+    "TopdownL4": "Metrics for top-down breakdown at level 4",
+    "TopdownL5": "Metrics for top-down breakdown at level 5",
+    "TopdownL6": "Metrics for top-down breakdown at level 6",
+    "tma_L1_group": "Metrics for top-down breakdown at level 1",
+    "tma_L2_group": "Metrics for top-down breakdown at level 2",
+    "tma_L3_group": "Metrics for top-down breakdown at level 3",
+    "tma_L4_group": "Metrics for top-down breakdown at level 4",
+    "tma_L5_group": "Metrics for top-down breakdown at level 5",
+    "tma_L6_group": "Metrics for top-down breakdown at level 6",
+    "tma_alu_op_utilization_group": "Metrics contributing to tma_alu_op_utilization category",
+    "tma_backend_bound_group": "Metrics contributing to tma_backend_bound category",
+    "tma_bad_speculation_group": "Metrics contributing to tma_bad_speculation category",
+    "tma_branch_resteers_group": "Metrics contributing to tma_branch_resteers category",
+    "tma_core_bound_group": "Metrics contributing to tma_core_bound category",
+    "tma_dram_bound_group": "Metrics contributing to tma_dram_bound category",
+    "tma_dtlb_load_group": "Metrics contributing to tma_dtlb_load category",
+    "tma_dtlb_store_group": "Metrics contributing to tma_dtlb_store category",
+    "tma_fetch_bandwidth_group": "Metrics contributing to tma_fetch_bandwidth category",
+    "tma_fetch_latency_group": "Metrics contributing to tma_fetch_latency category",
+    "tma_fp_arith_group": "Metrics contributing to tma_fp_arith category",
+    "tma_fp_vector_group": "Metrics contributing to tma_fp_vector category",
+    "tma_frontend_bound_group": "Metrics contributing to tma_frontend_bound category",
+    "tma_heavy_operations_group": "Metrics contributing to tma_heavy_operations category",
+    "tma_issue2P": "Metrics related by the issue $issue2P",
+    "tma_issueBC": "Metrics related by the issue $issueBC",
+    "tma_issueBM": "Metrics related by the issue $issueBM",
+    "tma_issueBW": "Metrics related by the issue $issueBW",
+    "tma_issueD0": "Metrics related by the issue $issueD0",
+    "tma_issueFB": "Metrics related by the issue $issueFB",
+    "tma_issueFL": "Metrics related by the issue $issueFL",
+    "tma_issueL1": "Metrics related by the issue $issueL1",
+    "tma_issueLat": "Metrics related by the issue $issueLat",
+    "tma_issueMC": "Metrics related by the issue $issueMC",
+    "tma_issueMS": "Metrics related by the issue $issueMS",
+    "tma_issueMV": "Metrics related by the issue $issueMV",
+    "tma_issueRFO": "Metrics related by the issue $issueRFO",
+    "tma_issueSL": "Metrics related by the issue $issueSL",
+    "tma_issueSO": "Metrics related by the issue $issueSO",
+    "tma_issueSmSt": "Metrics related by the issue $issueSmSt",
+    "tma_issueSpSt": "Metrics related by the issue $issueSpSt",
+    "tma_issueSyncxn": "Metrics related by the issue $issueSyncxn",
+    "tma_issueTLB": "Metrics related by the issue $issueTLB",
+    "tma_l1_bound_group": "Metrics contributing to tma_l1_bound category",
+    "tma_l3_bound_group": "Metrics contributing to tma_l3_bound category",
+    "tma_light_operations_group": "Metrics contributing to tma_light_operations category",
+    "tma_load_op_utilization_group": "Metrics contributing to tma_load_op_utilization category",
+    "tma_mem_latency_group": "Metrics contributing to tma_mem_latency category",
+    "tma_memory_bound_group": "Metrics contributing to tma_memory_bound category",
+    "tma_microcode_sequencer_group": "Metrics contributing to tma_microcode_sequencer category",
+    "tma_mite_group": "Metrics contributing to tma_mite category",
+    "tma_ports_utilization_group": "Metrics contributing to tma_ports_utilization category",
+    "tma_ports_utilized_0_group": "Metrics contributing to tma_ports_utilized_0 category",
+    "tma_ports_utilized_3m_group": "Metrics contributing to tma_ports_utilized_3m category",
+    "tma_retiring_group": "Metrics contributing to tma_retiring category",
+    "tma_serializing_operation_group": "Metrics contributing to tma_serializing_operation category",
+    "tma_store_bound_group": "Metrics contributing to tma_store_bound category",
+    "tma_store_op_utilization_group": "Metrics contributing to tma_store_op_utilization category"
+}
diff --git a/tools/perf/pmu-events/arch/x86/haswell/metricgroups.json b/tools/perf/pmu-events/arch/x86/haswell/metricgroups.json
new file mode 100644
index 000000000000..92b491d8f2f3
--- /dev/null
+++ b/tools/perf/pmu-events/arch/x86/haswell/metricgroups.json
@@ -0,0 +1,107 @@
+{
+    "Backend": "Grouping from metrics spreadsheet",
+    "Bad": "Grouping from metrics spreadsheet",
+    "BadSpec": "Grouping from metrics spreadsheet",
+    "BigFoot": "Grouping from metrics spreadsheet",
+    "BrMispredicts": "Grouping from metrics spreadsheet",
+    "Branches": "Grouping from metrics spreadsheet",
+    "CacheMisses": "Grouping from metrics spreadsheet",
+    "Compute": "Grouping from metrics spreadsheet",
+    "Cor": "Grouping from metrics spreadsheet",
+    "DSB": "Grouping from metrics spreadsheet",
+    "DSBmiss": "Grouping from metrics spreadsheet",
+    "DataSharing": "Grouping from metrics spreadsheet",
+    "Fed": "Grouping from metrics spreadsheet",
+    "FetchBW": "Grouping from metrics spreadsheet",
+    "FetchLat": "Grouping from metrics spreadsheet",
+    "Flops": "Grouping from metrics spreadsheet",
+    "FpScalar": "Grouping from metrics spreadsheet",
+    "FpVector": "Grouping from metrics spreadsheet",
+    "Frontend": "Grouping from metrics spreadsheet",
+    "HPC": "Grouping from metrics spreadsheet",
+    "IcMiss": "Grouping from metrics spreadsheet",
+    "InsType": "Grouping from metrics spreadsheet",
+    "L2Evicts": "Grouping from metrics spreadsheet",
+    "LSD": "Grouping from metrics spreadsheet",
+    "MachineClears": "Grouping from metrics spreadsheet",
+    "Mem": "Grouping from metrics spreadsheet",
+    "MemoryBW": "Grouping from metrics spreadsheet",
+    "MemoryBound": "Grouping from metrics spreadsheet",
+    "MemoryLat": "Grouping from metrics spreadsheet",
+    "MemoryTLB": "Grouping from metrics spreadsheet",
+    "Memory_BW": "Grouping from metrics spreadsheet",
+    "Memory_Lat": "Grouping from metrics spreadsheet",
+    "MicroSeq": "Grouping from metrics spreadsheet",
+    "OS": "Grouping from metrics spreadsheet",
+    "Offcore": "Grouping from metrics spreadsheet",
+    "PGO": "Grouping from metrics spreadsheet",
+    "Pipeline": "Grouping from metrics spreadsheet",
+    "PortsUtil": "Grouping from metrics spreadsheet",
+    "Power": "Grouping from metrics spreadsheet",
+    "Ret": "Grouping from metrics spreadsheet",
+    "Retire": "Grouping from metrics spreadsheet",
+    "SMT": "Grouping from metrics spreadsheet",
+    "Server": "Grouping from metrics spreadsheet",
+    "Snoop": "Grouping from metrics spreadsheet",
+    "SoC": "Grouping from metrics spreadsheet",
+    "Summary": "Grouping from metrics spreadsheet",
+    "TmaL1": "Grouping from metrics spreadsheet",
+    "TmaL2": "Grouping from metrics spreadsheet",
+    "TmaL3mem": "Grouping from metrics spreadsheet",
+    "TopdownL1": "Metrics for top-down breakdown at level 1",
+    "TopdownL2": "Metrics for top-down breakdown at level 2",
+    "TopdownL3": "Metrics for top-down breakdown at level 3",
+    "TopdownL4": "Metrics for top-down breakdown at level 4",
+    "TopdownL5": "Metrics for top-down breakdown at level 5",
+    "TopdownL6": "Metrics for top-down breakdown at level 6",
+    "tma_L1_group": "Metrics for top-down breakdown at level 1",
+    "tma_L2_group": "Metrics for top-down breakdown at level 2",
+    "tma_L3_group": "Metrics for top-down breakdown at level 3",
+    "tma_L4_group": "Metrics for top-down breakdown at level 4",
+    "tma_L5_group": "Metrics for top-down breakdown at level 5",
+    "tma_L6_group": "Metrics for top-down breakdown at level 6",
+    "tma_alu_op_utilization_group": "Metrics contributing to tma_alu_op_utilization category",
+    "tma_backend_bound_group": "Metrics contributing to tma_backend_bound category",
+    "tma_bad_speculation_group": "Metrics contributing to tma_bad_speculation category",
+    "tma_branch_resteers_group": "Metrics contributing to tma_branch_resteers category",
+    "tma_core_bound_group": "Metrics contributing to tma_core_bound category",
+    "tma_dram_bound_group": "Metrics contributing to tma_dram_bound category",
+    "tma_dtlb_load_group": "Metrics contributing to tma_dtlb_load category",
+    "tma_dtlb_store_group": "Metrics contributing to tma_dtlb_store category",
+    "tma_fetch_bandwidth_group": "Metrics contributing to tma_fetch_bandwidth category",
+    "tma_fetch_latency_group": "Metrics contributing to tma_fetch_latency category",
+    "tma_fp_arith_group": "Metrics contributing to tma_fp_arith category",
+    "tma_fp_vector_group": "Metrics contributing to tma_fp_vector category",
+    "tma_frontend_bound_group": "Metrics contributing to tma_frontend_bound category",
+    "tma_heavy_operations_group": "Metrics contributing to tma_heavy_operations category",
+    "tma_issue2P": "Metrics related by the issue $issue2P",
+    "tma_issueBM": "Metrics related by the issue $issueBM",
+    "tma_issueBW": "Metrics related by the issue $issueBW",
+    "tma_issueFB": "Metrics related by the issue $issueFB",
+    "tma_issueL1": "Metrics related by the issue $issueL1",
+    "tma_issueLat": "Metrics related by the issue $issueLat",
+    "tma_issueMC": "Metrics related by the issue $issueMC",
+    "tma_issueMS": "Metrics related by the issue $issueMS",
+    "tma_issueMV": "Metrics related by the issue $issueMV",
+    "tma_issueRFO": "Metrics related by the issue $issueRFO",
+    "tma_issueSL": "Metrics related by the issue $issueSL",
+    "tma_issueSO": "Metrics related by the issue $issueSO",
+    "tma_issueSmSt": "Metrics related by the issue $issueSmSt",
+    "tma_issueSpSt": "Metrics related by the issue $issueSpSt",
+    "tma_issueSyncxn": "Metrics related by the issue $issueSyncxn",
+    "tma_issueTLB": "Metrics related by the issue $issueTLB",
+    "tma_l1_bound_group": "Metrics contributing to tma_l1_bound category",
+    "tma_l3_bound_group": "Metrics contributing to tma_l3_bound category",
+    "tma_light_operations_group": "Metrics contributing to tma_light_operations category",
+    "tma_load_op_utilization_group": "Metrics contributing to tma_load_op_utilization category",
+    "tma_mem_latency_group": "Metrics contributing to tma_mem_latency category",
+    "tma_memory_bound_group": "Metrics contributing to tma_memory_bound category",
+    "tma_microcode_sequencer_group": "Metrics contributing to tma_microcode_sequencer category",
+    "tma_ports_utilization_group": "Metrics contributing to tma_ports_utilization category",
+    "tma_ports_utilized_0_group": "Metrics contributing to tma_ports_utilized_0 category",
+    "tma_ports_utilized_3m_group": "Metrics contributing to tma_ports_utilized_3m category",
+    "tma_retiring_group": "Metrics contributing to tma_retiring category",
+    "tma_serializing_operation_group": "Metrics contributing to tma_serializing_operation category",
+    "tma_store_bound_group": "Metrics contributing to tma_store_bound category",
+    "tma_store_op_utilization_group": "Metrics contributing to tma_store_op_utilization category"
+}
diff --git a/tools/perf/pmu-events/arch/x86/haswellx/metricgroups.json b/tools/perf/pmu-events/arch/x86/haswellx/metricgroups.json
new file mode 100644
index 000000000000..92b491d8f2f3
--- /dev/null
+++ b/tools/perf/pmu-events/arch/x86/haswellx/metricgroups.json
@@ -0,0 +1,107 @@
+{
+    "Backend": "Grouping from metrics spreadsheet",
+    "Bad": "Grouping from metrics spreadsheet",
+    "BadSpec": "Grouping from metrics spreadsheet",
+    "BigFoot": "Grouping from metrics spreadsheet",
+    "BrMispredicts": "Grouping from metrics spreadsheet",
+    "Branches": "Grouping from metrics spreadsheet",
+    "CacheMisses": "Grouping from metrics spreadsheet",
+    "Compute": "Grouping from metrics spreadsheet",
+    "Cor": "Grouping from metrics spreadsheet",
+    "DSB": "Grouping from metrics spreadsheet",
+    "DSBmiss": "Grouping from metrics spreadsheet",
+    "DataSharing": "Grouping from metrics spreadsheet",
+    "Fed": "Grouping from metrics spreadsheet",
+    "FetchBW": "Grouping from metrics spreadsheet",
+    "FetchLat": "Grouping from metrics spreadsheet",
+    "Flops": "Grouping from metrics spreadsheet",
+    "FpScalar": "Grouping from metrics spreadsheet",
+    "FpVector": "Grouping from metrics spreadsheet",
+    "Frontend": "Grouping from metrics spreadsheet",
+    "HPC": "Grouping from metrics spreadsheet",
+    "IcMiss": "Grouping from metrics spreadsheet",
+    "InsType": "Grouping from metrics spreadsheet",
+    "L2Evicts": "Grouping from metrics spreadsheet",
+    "LSD": "Grouping from metrics spreadsheet",
+    "MachineClears": "Grouping from metrics spreadsheet",
+    "Mem": "Grouping from metrics spreadsheet",
+    "MemoryBW": "Grouping from metrics spreadsheet",
+    "MemoryBound": "Grouping from metrics spreadsheet",
+    "MemoryLat": "Grouping from metrics spreadsheet",
+    "MemoryTLB": "Grouping from metrics spreadsheet",
+    "Memory_BW": "Grouping from metrics spreadsheet",
+    "Memory_Lat": "Grouping from metrics spreadsheet",
+    "MicroSeq": "Grouping from metrics spreadsheet",
+    "OS": "Grouping from metrics spreadsheet",
+    "Offcore": "Grouping from metrics spreadsheet",
+    "PGO": "Grouping from metrics spreadsheet",
+    "Pipeline": "Grouping from metrics spreadsheet",
+    "PortsUtil": "Grouping from metrics spreadsheet",
+    "Power": "Grouping from metrics spreadsheet",
+    "Ret": "Grouping from metrics spreadsheet",
+    "Retire": "Grouping from metrics spreadsheet",
+    "SMT": "Grouping from metrics spreadsheet",
+    "Server": "Grouping from metrics spreadsheet",
+    "Snoop": "Grouping from metrics spreadsheet",
+    "SoC": "Grouping from metrics spreadsheet",
+    "Summary": "Grouping from metrics spreadsheet",
+    "TmaL1": "Grouping from metrics spreadsheet",
+    "TmaL2": "Grouping from metrics spreadsheet",
+    "TmaL3mem": "Grouping from metrics spreadsheet",
+    "TopdownL1": "Metrics for top-down breakdown at level 1",
+    "TopdownL2": "Metrics for top-down breakdown at level 2",
+    "TopdownL3": "Metrics for top-down breakdown at level 3",
+    "TopdownL4": "Metrics for top-down breakdown at level 4",
+    "TopdownL5": "Metrics for top-down breakdown at level 5",
+    "TopdownL6": "Metrics for top-down breakdown at level 6",
+    "tma_L1_group": "Metrics for top-down breakdown at level 1",
+    "tma_L2_group": "Metrics for top-down breakdown at level 2",
+    "tma_L3_group": "Metrics for top-down breakdown at level 3",
+    "tma_L4_group": "Metrics for top-down breakdown at level 4",
+    "tma_L5_group": "Metrics for top-down breakdown at level 5",
+    "tma_L6_group": "Metrics for top-down breakdown at level 6",
+    "tma_alu_op_utilization_group": "Metrics contributing to tma_alu_op_utilization category",
+    "tma_backend_bound_group": "Metrics contributing to tma_backend_bound category",
+    "tma_bad_speculation_group": "Metrics contributing to tma_bad_speculation category",
+    "tma_branch_resteers_group": "Metrics contributing to tma_branch_resteers category",
+    "tma_core_bound_group": "Metrics contributing to tma_core_bound category",
+    "tma_dram_bound_group": "Metrics contributing to tma_dram_bound category",
+    "tma_dtlb_load_group": "Metrics contributing to tma_dtlb_load category",
+    "tma_dtlb_store_group": "Metrics contributing to tma_dtlb_store category",
+    "tma_fetch_bandwidth_group": "Metrics contributing to tma_fetch_bandwidth category",
+    "tma_fetch_latency_group": "Metrics contributing to tma_fetch_latency category",
+    "tma_fp_arith_group": "Metrics contributing to tma_fp_arith category",
+    "tma_fp_vector_group": "Metrics contributing to tma_fp_vector category",
+    "tma_frontend_bound_group": "Metrics contributing to tma_frontend_bound category",
+    "tma_heavy_operations_group": "Metrics contributing to tma_heavy_operations category",
+    "tma_issue2P": "Metrics related by the issue $issue2P",
+    "tma_issueBM": "Metrics related by the issue $issueBM",
+    "tma_issueBW": "Metrics related by the issue $issueBW",
+    "tma_issueFB": "Metrics related by the issue $issueFB",
+    "tma_issueL1": "Metrics related by the issue $issueL1",
+    "tma_issueLat": "Metrics related by the issue $issueLat",
+    "tma_issueMC": "Metrics related by the issue $issueMC",
+    "tma_issueMS": "Metrics related by the issue $issueMS",
+    "tma_issueMV": "Metrics related by the issue $issueMV",
+    "tma_issueRFO": "Metrics related by the issue $issueRFO",
+    "tma_issueSL": "Metrics related by the issue $issueSL",
+    "tma_issueSO": "Metrics related by the issue $issueSO",
+    "tma_issueSmSt": "Metrics related by the issue $issueSmSt",
+    "tma_issueSpSt": "Metrics related by the issue $issueSpSt",
+    "tma_issueSyncxn": "Metrics related by the issue $issueSyncxn",
+    "tma_issueTLB": "Metrics related by the issue $issueTLB",
+    "tma_l1_bound_group": "Metrics contributing to tma_l1_bound category",
+    "tma_l3_bound_group": "Metrics contributing to tma_l3_bound category",
+    "tma_light_operations_group": "Metrics contributing to tma_light_operations category",
+    "tma_load_op_utilization_group": "Metrics contributing to tma_load_op_utilization category",
+    "tma_mem_latency_group": "Metrics contributing to tma_mem_latency category",
+    "tma_memory_bound_group": "Metrics contributing to tma_memory_bound category",
+    "tma_microcode_sequencer_group": "Metrics contributing to tma_microcode_sequencer category",
+    "tma_ports_utilization_group": "Metrics contributing to tma_ports_utilization category",
+    "tma_ports_utilized_0_group": "Metrics contributing to tma_ports_utilized_0 category",
+    "tma_ports_utilized_3m_group": "Metrics contributing to tma_ports_utilized_3m category",
+    "tma_retiring_group": "Metrics contributing to tma_retiring category",
+    "tma_serializing_operation_group": "Metrics contributing to tma_serializing_operation category",
+    "tma_store_bound_group": "Metrics contributing to tma_store_bound category",
+    "tma_store_op_utilization_group": "Metrics contributing to tma_store_op_utilization category"
+}
diff --git a/tools/perf/pmu-events/arch/x86/icelake/metricgroups.json b/tools/perf/pmu-events/arch/x86/icelake/metricgroups.json
new file mode 100644
index 000000000000..56c0f106e415
--- /dev/null
+++ b/tools/perf/pmu-events/arch/x86/icelake/metricgroups.json
@@ -0,0 +1,113 @@
+{
+    "Backend": "Grouping from metrics spreadsheet",
+    "Bad": "Grouping from metrics spreadsheet",
+    "BadSpec": "Grouping from metrics spreadsheet",
+    "BigFoot": "Grouping from metrics spreadsheet",
+    "BrMispredicts": "Grouping from metrics spreadsheet",
+    "Branches": "Grouping from metrics spreadsheet",
+    "CacheMisses": "Grouping from metrics spreadsheet",
+    "CodeGen": "Grouping from metrics spreadsheet",
+    "Compute": "Grouping from metrics spreadsheet",
+    "Cor": "Grouping from metrics spreadsheet",
+    "DSB": "Grouping from metrics spreadsheet",
+    "DSBmiss": "Grouping from metrics spreadsheet",
+    "DataSharing": "Grouping from metrics spreadsheet",
+    "Fed": "Grouping from metrics spreadsheet",
+    "FetchBW": "Grouping from metrics spreadsheet",
+    "FetchLat": "Grouping from metrics spreadsheet",
+    "Flops": "Grouping from metrics spreadsheet",
+    "FpScalar": "Grouping from metrics spreadsheet",
+    "FpVector": "Grouping from metrics spreadsheet",
+    "Frontend": "Grouping from metrics spreadsheet",
+    "HPC": "Grouping from metrics spreadsheet",
+    "IcMiss": "Grouping from metrics spreadsheet",
+    "InsType": "Grouping from metrics spreadsheet",
+    "L2Evicts": "Grouping from metrics spreadsheet",
+    "LSD": "Grouping from metrics spreadsheet",
+    "MachineClears": "Grouping from metrics spreadsheet",
+    "Mem": "Grouping from metrics spreadsheet",
+    "MemoryBW": "Grouping from metrics spreadsheet",
+    "MemoryBound": "Grouping from metrics spreadsheet",
+    "MemoryLat": "Grouping from metrics spreadsheet",
+    "MemoryTLB": "Grouping from metrics spreadsheet",
+    "Memory_BW": "Grouping from metrics spreadsheet",
+    "Memory_Lat": "Grouping from metrics spreadsheet",
+    "MicroSeq": "Grouping from metrics spreadsheet",
+    "OS": "Grouping from metrics spreadsheet",
+    "Offcore": "Grouping from metrics spreadsheet",
+    "PGO": "Grouping from metrics spreadsheet",
+    "Pipeline": "Grouping from metrics spreadsheet",
+    "PortsUtil": "Grouping from metrics spreadsheet",
+    "Power": "Grouping from metrics spreadsheet",
+    "Prefetches": "Grouping from metrics spreadsheet",
+    "Ret": "Grouping from metrics spreadsheet",
+    "Retire": "Grouping from metrics spreadsheet",
+    "SMT": "Grouping from metrics spreadsheet",
+    "Server": "Grouping from metrics spreadsheet",
+    "Snoop": "Grouping from metrics spreadsheet",
+    "SoC": "Grouping from metrics spreadsheet",
+    "Summary": "Grouping from metrics spreadsheet",
+    "TmaL1": "Grouping from metrics spreadsheet",
+    "TmaL2": "Grouping from metrics spreadsheet",
+    "TmaL3mem": "Grouping from metrics spreadsheet",
+    "TopdownL1": "Metrics for top-down breakdown at level 1",
+    "TopdownL2": "Metrics for top-down breakdown at level 2",
+    "TopdownL3": "Metrics for top-down breakdown at level 3",
+    "TopdownL4": "Metrics for top-down breakdown at level 4",
+    "TopdownL5": "Metrics for top-down breakdown at level 5",
+    "TopdownL6": "Metrics for top-down breakdown at level 6",
+    "tma_L1_group": "Metrics for top-down breakdown at level 1",
+    "tma_L2_group": "Metrics for top-down breakdown at level 2",
+    "tma_L3_group": "Metrics for top-down breakdown at level 3",
+    "tma_L4_group": "Metrics for top-down breakdown at level 4",
+    "tma_L5_group": "Metrics for top-down breakdown at level 5",
+    "tma_L6_group": "Metrics for top-down breakdown at level 6",
+    "tma_alu_op_utilization_group": "Metrics contributing to tma_alu_op_utilization category",
+    "tma_backend_bound_group": "Metrics contributing to tma_backend_bound category",
+    "tma_bad_speculation_group": "Metrics contributing to tma_bad_speculation category",
+    "tma_branch_resteers_group": "Metrics contributing to tma_branch_resteers category",
+    "tma_core_bound_group": "Metrics contributing to tma_core_bound category",
+    "tma_dram_bound_group": "Metrics contributing to tma_dram_bound category",
+    "tma_dtlb_load_group": "Metrics contributing to tma_dtlb_load category",
+    "tma_dtlb_store_group": "Metrics contributing to tma_dtlb_store category",
+    "tma_fetch_bandwidth_group": "Metrics contributing to tma_fetch_bandwidth category",
+    "tma_fetch_latency_group": "Metrics contributing to tma_fetch_latency category",
+    "tma_fp_arith_group": "Metrics contributing to tma_fp_arith category",
+    "tma_fp_vector_group": "Metrics contributing to tma_fp_vector category",
+    "tma_frontend_bound_group": "Metrics contributing to tma_frontend_bound category",
+    "tma_heavy_operations_group": "Metrics contributing to tma_heavy_operations category",
+    "tma_issue2P": "Metrics related by the issue $issue2P",
+    "tma_issueBC": "Metrics related by the issue $issueBC",
+    "tma_issueBM": "Metrics related by the issue $issueBM",
+    "tma_issueBW": "Metrics related by the issue $issueBW",
+    "tma_issueD0": "Metrics related by the issue $issueD0",
+    "tma_issueFB": "Metrics related by the issue $issueFB",
+    "tma_issueFL": "Metrics related by the issue $issueFL",
+    "tma_issueL1": "Metrics related by the issue $issueL1",
+    "tma_issueLat": "Metrics related by the issue $issueLat",
+    "tma_issueMC": "Metrics related by the issue $issueMC",
+    "tma_issueMS": "Metrics related by the issue $issueMS",
+    "tma_issueMV": "Metrics related by the issue $issueMV",
+    "tma_issueRFO": "Metrics related by the issue $issueRFO",
+    "tma_issueSL": "Metrics related by the issue $issueSL",
+    "tma_issueSO": "Metrics related by the issue $issueSO",
+    "tma_issueSmSt": "Metrics related by the issue $issueSmSt",
+    "tma_issueSpSt": "Metrics related by the issue $issueSpSt",
+    "tma_issueSyncxn": "Metrics related by the issue $issueSyncxn",
+    "tma_issueTLB": "Metrics related by the issue $issueTLB",
+    "tma_l1_bound_group": "Metrics contributing to tma_l1_bound category",
+    "tma_l3_bound_group": "Metrics contributing to tma_l3_bound category",
+    "tma_light_operations_group": "Metrics contributing to tma_light_operations category",
+    "tma_load_op_utilization_group": "Metrics contributing to tma_load_op_utilization category",
+    "tma_mem_latency_group": "Metrics contributing to tma_mem_latency category",
+    "tma_memory_bound_group": "Metrics contributing to tma_memory_bound category",
+    "tma_microcode_sequencer_group": "Metrics contributing to tma_microcode_sequencer category",
+    "tma_mite_group": "Metrics contributing to tma_mite category",
+    "tma_ports_utilization_group": "Metrics contributing to tma_ports_utilization category",
+    "tma_ports_utilized_0_group": "Metrics contributing to tma_ports_utilized_0 category",
+    "tma_ports_utilized_3m_group": "Metrics contributing to tma_ports_utilized_3m category",
+    "tma_retiring_group": "Metrics contributing to tma_retiring category",
+    "tma_serializing_operation_group": "Metrics contributing to tma_serializing_operation category",
+    "tma_store_bound_group": "Metrics contributing to tma_store_bound category",
+    "tma_store_op_utilization_group": "Metrics contributing to tma_store_op_utilization category"
+}
diff --git a/tools/perf/pmu-events/arch/x86/icelakex/metricgroups.json b/tools/perf/pmu-events/arch/x86/icelakex/metricgroups.json
new file mode 100644
index 000000000000..4c421c80bd1f
--- /dev/null
+++ b/tools/perf/pmu-events/arch/x86/icelakex/metricgroups.json
@@ -0,0 +1,114 @@
+{
+    "Backend": "Grouping from metrics spreadsheet",
+    "Bad": "Grouping from metrics spreadsheet",
+    "BadSpec": "Grouping from metrics spreadsheet",
+    "BigFoot": "Grouping from metrics spreadsheet",
+    "BrMispredicts": "Grouping from metrics spreadsheet",
+    "Branches": "Grouping from metrics spreadsheet",
+    "CacheMisses": "Grouping from metrics spreadsheet",
+    "CodeGen": "Grouping from metrics spreadsheet",
+    "Compute": "Grouping from metrics spreadsheet",
+    "Cor": "Grouping from metrics spreadsheet",
+    "DSB": "Grouping from metrics spreadsheet",
+    "DSBmiss": "Grouping from metrics spreadsheet",
+    "DataSharing": "Grouping from metrics spreadsheet",
+    "Fed": "Grouping from metrics spreadsheet",
+    "FetchBW": "Grouping from metrics spreadsheet",
+    "FetchLat": "Grouping from metrics spreadsheet",
+    "Flops": "Grouping from metrics spreadsheet",
+    "FpScalar": "Grouping from metrics spreadsheet",
+    "FpVector": "Grouping from metrics spreadsheet",
+    "Frontend": "Grouping from metrics spreadsheet",
+    "HPC": "Grouping from metrics spreadsheet",
+    "IcMiss": "Grouping from metrics spreadsheet",
+    "InsType": "Grouping from metrics spreadsheet",
+    "IoBW": "Grouping from metrics spreadsheet",
+    "L2Evicts": "Grouping from metrics spreadsheet",
+    "LSD": "Grouping from metrics spreadsheet",
+    "MachineClears": "Grouping from metrics spreadsheet",
+    "Mem": "Grouping from metrics spreadsheet",
+    "MemoryBW": "Grouping from metrics spreadsheet",
+    "MemoryBound": "Grouping from metrics spreadsheet",
+    "MemoryLat": "Grouping from metrics spreadsheet",
+    "MemoryTLB": "Grouping from metrics spreadsheet",
+    "Memory_BW": "Grouping from metrics spreadsheet",
+    "Memory_Lat": "Grouping from metrics spreadsheet",
+    "MicroSeq": "Grouping from metrics spreadsheet",
+    "OS": "Grouping from metrics spreadsheet",
+    "Offcore": "Grouping from metrics spreadsheet",
+    "PGO": "Grouping from metrics spreadsheet",
+    "Pipeline": "Grouping from metrics spreadsheet",
+    "PortsUtil": "Grouping from metrics spreadsheet",
+    "Power": "Grouping from metrics spreadsheet",
+    "Prefetches": "Grouping from metrics spreadsheet",
+    "Ret": "Grouping from metrics spreadsheet",
+    "Retire": "Grouping from metrics spreadsheet",
+    "SMT": "Grouping from metrics spreadsheet",
+    "Server": "Grouping from metrics spreadsheet",
+    "Snoop": "Grouping from metrics spreadsheet",
+    "SoC": "Grouping from metrics spreadsheet",
+    "Summary": "Grouping from metrics spreadsheet",
+    "TmaL1": "Grouping from metrics spreadsheet",
+    "TmaL2": "Grouping from metrics spreadsheet",
+    "TmaL3mem": "Grouping from metrics spreadsheet",
+    "TopdownL1": "Metrics for top-down breakdown at level 1",
+    "TopdownL2": "Metrics for top-down breakdown at level 2",
+    "TopdownL3": "Metrics for top-down breakdown at level 3",
+    "TopdownL4": "Metrics for top-down breakdown at level 4",
+    "TopdownL5": "Metrics for top-down breakdown at level 5",
+    "TopdownL6": "Metrics for top-down breakdown at level 6",
+    "tma_L1_group": "Metrics for top-down breakdown at level 1",
+    "tma_L2_group": "Metrics for top-down breakdown at level 2",
+    "tma_L3_group": "Metrics for top-down breakdown at level 3",
+    "tma_L4_group": "Metrics for top-down breakdown at level 4",
+    "tma_L5_group": "Metrics for top-down breakdown at level 5",
+    "tma_L6_group": "Metrics for top-down breakdown at level 6",
+    "tma_alu_op_utilization_group": "Metrics contributing to tma_alu_op_utilization category",
+    "tma_backend_bound_group": "Metrics contributing to tma_backend_bound category",
+    "tma_bad_speculation_group": "Metrics contributing to tma_bad_speculation category",
+    "tma_branch_resteers_group": "Metrics contributing to tma_branch_resteers category",
+    "tma_core_bound_group": "Metrics contributing to tma_core_bound category",
+    "tma_dram_bound_group": "Metrics contributing to tma_dram_bound category",
+    "tma_dtlb_load_group": "Metrics contributing to tma_dtlb_load category",
+    "tma_dtlb_store_group": "Metrics contributing to tma_dtlb_store category",
+    "tma_fetch_bandwidth_group": "Metrics contributing to tma_fetch_bandwidth category",
+    "tma_fetch_latency_group": "Metrics contributing to tma_fetch_latency category",
+    "tma_fp_arith_group": "Metrics contributing to tma_fp_arith category",
+    "tma_fp_vector_group": "Metrics contributing to tma_fp_vector category",
+    "tma_frontend_bound_group": "Metrics contributing to tma_frontend_bound category",
+    "tma_heavy_operations_group": "Metrics contributing to tma_heavy_operations category",
+    "tma_issue2P": "Metrics related by the issue $issue2P",
+    "tma_issueBC": "Metrics related by the issue $issueBC",
+    "tma_issueBM": "Metrics related by the issue $issueBM",
+    "tma_issueBW": "Metrics related by the issue $issueBW",
+    "tma_issueD0": "Metrics related by the issue $issueD0",
+    "tma_issueFB": "Metrics related by the issue $issueFB",
+    "tma_issueFL": "Metrics related by the issue $issueFL",
+    "tma_issueL1": "Metrics related by the issue $issueL1",
+    "tma_issueLat": "Metrics related by the issue $issueLat",
+    "tma_issueMC": "Metrics related by the issue $issueMC",
+    "tma_issueMS": "Metrics related by the issue $issueMS",
+    "tma_issueMV": "Metrics related by the issue $issueMV",
+    "tma_issueRFO": "Metrics related by the issue $issueRFO",
+    "tma_issueSL": "Metrics related by the issue $issueSL",
+    "tma_issueSO": "Metrics related by the issue $issueSO",
+    "tma_issueSmSt": "Metrics related by the issue $issueSmSt",
+    "tma_issueSpSt": "Metrics related by the issue $issueSpSt",
+    "tma_issueSyncxn": "Metrics related by the issue $issueSyncxn",
+    "tma_issueTLB": "Metrics related by the issue $issueTLB",
+    "tma_l1_bound_group": "Metrics contributing to tma_l1_bound category",
+    "tma_l3_bound_group": "Metrics contributing to tma_l3_bound category",
+    "tma_light_operations_group": "Metrics contributing to tma_light_operations category",
+    "tma_load_op_utilization_group": "Metrics contributing to tma_load_op_utilization category",
+    "tma_mem_latency_group": "Metrics contributing to tma_mem_latency category",
+    "tma_memory_bound_group": "Metrics contributing to tma_memory_bound category",
+    "tma_microcode_sequencer_group": "Metrics contributing to tma_microcode_sequencer category",
+    "tma_mite_group": "Metrics contributing to tma_mite category",
+    "tma_ports_utilization_group": "Metrics contributing to tma_ports_utilization category",
+    "tma_ports_utilized_0_group": "Metrics contributing to tma_ports_utilized_0 category",
+    "tma_ports_utilized_3m_group": "Metrics contributing to tma_ports_utilized_3m category",
+    "tma_retiring_group": "Metrics contributing to tma_retiring category",
+    "tma_serializing_operation_group": "Metrics contributing to tma_serializing_operation category",
+    "tma_store_bound_group": "Metrics contributing to tma_store_bound category",
+    "tma_store_op_utilization_group": "Metrics contributing to tma_store_op_utilization category"
+}
diff --git a/tools/perf/pmu-events/arch/x86/ivybridge/metricgroups.json b/tools/perf/pmu-events/arch/x86/ivybridge/metricgroups.json
new file mode 100644
index 000000000000..92b491d8f2f3
--- /dev/null
+++ b/tools/perf/pmu-events/arch/x86/ivybridge/metricgroups.json
@@ -0,0 +1,107 @@
+{
+    "Backend": "Grouping from metrics spreadsheet",
+    "Bad": "Grouping from metrics spreadsheet",
+    "BadSpec": "Grouping from metrics spreadsheet",
+    "BigFoot": "Grouping from metrics spreadsheet",
+    "BrMispredicts": "Grouping from metrics spreadsheet",
+    "Branches": "Grouping from metrics spreadsheet",
+    "CacheMisses": "Grouping from metrics spreadsheet",
+    "Compute": "Grouping from metrics spreadsheet",
+    "Cor": "Grouping from metrics spreadsheet",
+    "DSB": "Grouping from metrics spreadsheet",
+    "DSBmiss": "Grouping from metrics spreadsheet",
+    "DataSharing": "Grouping from metrics spreadsheet",
+    "Fed": "Grouping from metrics spreadsheet",
+    "FetchBW": "Grouping from metrics spreadsheet",
+    "FetchLat": "Grouping from metrics spreadsheet",
+    "Flops": "Grouping from metrics spreadsheet",
+    "FpScalar": "Grouping from metrics spreadsheet",
+    "FpVector": "Grouping from metrics spreadsheet",
+    "Frontend": "Grouping from metrics spreadsheet",
+    "HPC": "Grouping from metrics spreadsheet",
+    "IcMiss": "Grouping from metrics spreadsheet",
+    "InsType": "Grouping from metrics spreadsheet",
+    "L2Evicts": "Grouping from metrics spreadsheet",
+    "LSD": "Grouping from metrics spreadsheet",
+    "MachineClears": "Grouping from metrics spreadsheet",
+    "Mem": "Grouping from metrics spreadsheet",
+    "MemoryBW": "Grouping from metrics spreadsheet",
+    "MemoryBound": "Grouping from metrics spreadsheet",
+    "MemoryLat": "Grouping from metrics spreadsheet",
+    "MemoryTLB": "Grouping from metrics spreadsheet",
+    "Memory_BW": "Grouping from metrics spreadsheet",
+    "Memory_Lat": "Grouping from metrics spreadsheet",
+    "MicroSeq": "Grouping from metrics spreadsheet",
+    "OS": "Grouping from metrics spreadsheet",
+    "Offcore": "Grouping from metrics spreadsheet",
+    "PGO": "Grouping from metrics spreadsheet",
+    "Pipeline": "Grouping from metrics spreadsheet",
+    "PortsUtil": "Grouping from metrics spreadsheet",
+    "Power": "Grouping from metrics spreadsheet",
+    "Ret": "Grouping from metrics spreadsheet",
+    "Retire": "Grouping from metrics spreadsheet",
+    "SMT": "Grouping from metrics spreadsheet",
+    "Server": "Grouping from metrics spreadsheet",
+    "Snoop": "Grouping from metrics spreadsheet",
+    "SoC": "Grouping from metrics spreadsheet",
+    "Summary": "Grouping from metrics spreadsheet",
+    "TmaL1": "Grouping from metrics spreadsheet",
+    "TmaL2": "Grouping from metrics spreadsheet",
+    "TmaL3mem": "Grouping from metrics spreadsheet",
+    "TopdownL1": "Metrics for top-down breakdown at level 1",
+    "TopdownL2": "Metrics for top-down breakdown at level 2",
+    "TopdownL3": "Metrics for top-down breakdown at level 3",
+    "TopdownL4": "Metrics for top-down breakdown at level 4",
+    "TopdownL5": "Metrics for top-down breakdown at level 5",
+    "TopdownL6": "Metrics for top-down breakdown at level 6",
+    "tma_L1_group": "Metrics for top-down breakdown at level 1",
+    "tma_L2_group": "Metrics for top-down breakdown at level 2",
+    "tma_L3_group": "Metrics for top-down breakdown at level 3",
+    "tma_L4_group": "Metrics for top-down breakdown at level 4",
+    "tma_L5_group": "Metrics for top-down breakdown at level 5",
+    "tma_L6_group": "Metrics for top-down breakdown at level 6",
+    "tma_alu_op_utilization_group": "Metrics contributing to tma_alu_op_utilization category",
+    "tma_backend_bound_group": "Metrics contributing to tma_backend_bound category",
+    "tma_bad_speculation_group": "Metrics contributing to tma_bad_speculation category",
+    "tma_branch_resteers_group": "Metrics contributing to tma_branch_resteers category",
+    "tma_core_bound_group": "Metrics contributing to tma_core_bound category",
+    "tma_dram_bound_group": "Metrics contributing to tma_dram_bound category",
+    "tma_dtlb_load_group": "Metrics contributing to tma_dtlb_load category",
+    "tma_dtlb_store_group": "Metrics contributing to tma_dtlb_store category",
+    "tma_fetch_bandwidth_group": "Metrics contributing to tma_fetch_bandwidth category",
+    "tma_fetch_latency_group": "Metrics contributing to tma_fetch_latency category",
+    "tma_fp_arith_group": "Metrics contributing to tma_fp_arith category",
+    "tma_fp_vector_group": "Metrics contributing to tma_fp_vector category",
+    "tma_frontend_bound_group": "Metrics contributing to tma_frontend_bound category",
+    "tma_heavy_operations_group": "Metrics contributing to tma_heavy_operations category",
+    "tma_issue2P": "Metrics related by the issue $issue2P",
+    "tma_issueBM": "Metrics related by the issue $issueBM",
+    "tma_issueBW": "Metrics related by the issue $issueBW",
+    "tma_issueFB": "Metrics related by the issue $issueFB",
+    "tma_issueL1": "Metrics related by the issue $issueL1",
+    "tma_issueLat": "Metrics related by the issue $issueLat",
+    "tma_issueMC": "Metrics related by the issue $issueMC",
+    "tma_issueMS": "Metrics related by the issue $issueMS",
+    "tma_issueMV": "Metrics related by the issue $issueMV",
+    "tma_issueRFO": "Metrics related by the issue $issueRFO",
+    "tma_issueSL": "Metrics related by the issue $issueSL",
+    "tma_issueSO": "Metrics related by the issue $issueSO",
+    "tma_issueSmSt": "Metrics related by the issue $issueSmSt",
+    "tma_issueSpSt": "Metrics related by the issue $issueSpSt",
+    "tma_issueSyncxn": "Metrics related by the issue $issueSyncxn",
+    "tma_issueTLB": "Metrics related by the issue $issueTLB",
+    "tma_l1_bound_group": "Metrics contributing to tma_l1_bound category",
+    "tma_l3_bound_group": "Metrics contributing to tma_l3_bound category",
+    "tma_light_operations_group": "Metrics contributing to tma_light_operations category",
+    "tma_load_op_utilization_group": "Metrics contributing to tma_load_op_utilization category",
+    "tma_mem_latency_group": "Metrics contributing to tma_mem_latency category",
+    "tma_memory_bound_group": "Metrics contributing to tma_memory_bound category",
+    "tma_microcode_sequencer_group": "Metrics contributing to tma_microcode_sequencer category",
+    "tma_ports_utilization_group": "Metrics contributing to tma_ports_utilization category",
+    "tma_ports_utilized_0_group": "Metrics contributing to tma_ports_utilized_0 category",
+    "tma_ports_utilized_3m_group": "Metrics contributing to tma_ports_utilized_3m category",
+    "tma_retiring_group": "Metrics contributing to tma_retiring category",
+    "tma_serializing_operation_group": "Metrics contributing to tma_serializing_operation category",
+    "tma_store_bound_group": "Metrics contributing to tma_store_bound category",
+    "tma_store_op_utilization_group": "Metrics contributing to tma_store_op_utilization category"
+}
diff --git a/tools/perf/pmu-events/arch/x86/ivytown/metricgroups.json b/tools/perf/pmu-events/arch/x86/ivytown/metricgroups.json
new file mode 100644
index 000000000000..92b491d8f2f3
--- /dev/null
+++ b/tools/perf/pmu-events/arch/x86/ivytown/metricgroups.json
@@ -0,0 +1,107 @@
+{
+    "Backend": "Grouping from metrics spreadsheet",
+    "Bad": "Grouping from metrics spreadsheet",
+    "BadSpec": "Grouping from metrics spreadsheet",
+    "BigFoot": "Grouping from metrics spreadsheet",
+    "BrMispredicts": "Grouping from metrics spreadsheet",
+    "Branches": "Grouping from metrics spreadsheet",
+    "CacheMisses": "Grouping from metrics spreadsheet",
+    "Compute": "Grouping from metrics spreadsheet",
+    "Cor": "Grouping from metrics spreadsheet",
+    "DSB": "Grouping from metrics spreadsheet",
+    "DSBmiss": "Grouping from metrics spreadsheet",
+    "DataSharing": "Grouping from metrics spreadsheet",
+    "Fed": "Grouping from metrics spreadsheet",
+    "FetchBW": "Grouping from metrics spreadsheet",
+    "FetchLat": "Grouping from metrics spreadsheet",
+    "Flops": "Grouping from metrics spreadsheet",
+    "FpScalar": "Grouping from metrics spreadsheet",
+    "FpVector": "Grouping from metrics spreadsheet",
+    "Frontend": "Grouping from metrics spreadsheet",
+    "HPC": "Grouping from metrics spreadsheet",
+    "IcMiss": "Grouping from metrics spreadsheet",
+    "InsType": "Grouping from metrics spreadsheet",
+    "L2Evicts": "Grouping from metrics spreadsheet",
+    "LSD": "Grouping from metrics spreadsheet",
+    "MachineClears": "Grouping from metrics spreadsheet",
+    "Mem": "Grouping from metrics spreadsheet",
+    "MemoryBW": "Grouping from metrics spreadsheet",
+    "MemoryBound": "Grouping from metrics spreadsheet",
+    "MemoryLat": "Grouping from metrics spreadsheet",
+    "MemoryTLB": "Grouping from metrics spreadsheet",
+    "Memory_BW": "Grouping from metrics spreadsheet",
+    "Memory_Lat": "Grouping from metrics spreadsheet",
+    "MicroSeq": "Grouping from metrics spreadsheet",
+    "OS": "Grouping from metrics spreadsheet",
+    "Offcore": "Grouping from metrics spreadsheet",
+    "PGO": "Grouping from metrics spreadsheet",
+    "Pipeline": "Grouping from metrics spreadsheet",
+    "PortsUtil": "Grouping from metrics spreadsheet",
+    "Power": "Grouping from metrics spreadsheet",
+    "Ret": "Grouping from metrics spreadsheet",
+    "Retire": "Grouping from metrics spreadsheet",
+    "SMT": "Grouping from metrics spreadsheet",
+    "Server": "Grouping from metrics spreadsheet",
+    "Snoop": "Grouping from metrics spreadsheet",
+    "SoC": "Grouping from metrics spreadsheet",
+    "Summary": "Grouping from metrics spreadsheet",
+    "TmaL1": "Grouping from metrics spreadsheet",
+    "TmaL2": "Grouping from metrics spreadsheet",
+    "TmaL3mem": "Grouping from metrics spreadsheet",
+    "TopdownL1": "Metrics for top-down breakdown at level 1",
+    "TopdownL2": "Metrics for top-down breakdown at level 2",
+    "TopdownL3": "Metrics for top-down breakdown at level 3",
+    "TopdownL4": "Metrics for top-down breakdown at level 4",
+    "TopdownL5": "Metrics for top-down breakdown at level 5",
+    "TopdownL6": "Metrics for top-down breakdown at level 6",
+    "tma_L1_group": "Metrics for top-down breakdown at level 1",
+    "tma_L2_group": "Metrics for top-down breakdown at level 2",
+    "tma_L3_group": "Metrics for top-down breakdown at level 3",
+    "tma_L4_group": "Metrics for top-down breakdown at level 4",
+    "tma_L5_group": "Metrics for top-down breakdown at level 5",
+    "tma_L6_group": "Metrics for top-down breakdown at level 6",
+    "tma_alu_op_utilization_group": "Metrics contributing to tma_alu_op_utilization category",
+    "tma_backend_bound_group": "Metrics contributing to tma_backend_bound category",
+    "tma_bad_speculation_group": "Metrics contributing to tma_bad_speculation category",
+    "tma_branch_resteers_group": "Metrics contributing to tma_branch_resteers category",
+    "tma_core_bound_group": "Metrics contributing to tma_core_bound category",
+    "tma_dram_bound_group": "Metrics contributing to tma_dram_bound category",
+    "tma_dtlb_load_group": "Metrics contributing to tma_dtlb_load category",
+    "tma_dtlb_store_group": "Metrics contributing to tma_dtlb_store category",
+    "tma_fetch_bandwidth_group": "Metrics contributing to tma_fetch_bandwidth category",
+    "tma_fetch_latency_group": "Metrics contributing to tma_fetch_latency category",
+    "tma_fp_arith_group": "Metrics contributing to tma_fp_arith category",
+    "tma_fp_vector_group": "Metrics contributing to tma_fp_vector category",
+    "tma_frontend_bound_group": "Metrics contributing to tma_frontend_bound category",
+    "tma_heavy_operations_group": "Metrics contributing to tma_heavy_operations category",
+    "tma_issue2P": "Metrics related by the issue $issue2P",
+    "tma_issueBM": "Metrics related by the issue $issueBM",
+    "tma_issueBW": "Metrics related by the issue $issueBW",
+    "tma_issueFB": "Metrics related by the issue $issueFB",
+    "tma_issueL1": "Metrics related by the issue $issueL1",
+    "tma_issueLat": "Metrics related by the issue $issueLat",
+    "tma_issueMC": "Metrics related by the issue $issueMC",
+    "tma_issueMS": "Metrics related by the issue $issueMS",
+    "tma_issueMV": "Metrics related by the issue $issueMV",
+    "tma_issueRFO": "Metrics related by the issue $issueRFO",
+    "tma_issueSL": "Metrics related by the issue $issueSL",
+    "tma_issueSO": "Metrics related by the issue $issueSO",
+    "tma_issueSmSt": "Metrics related by the issue $issueSmSt",
+    "tma_issueSpSt": "Metrics related by the issue $issueSpSt",
+    "tma_issueSyncxn": "Metrics related by the issue $issueSyncxn",
+    "tma_issueTLB": "Metrics related by the issue $issueTLB",
+    "tma_l1_bound_group": "Metrics contributing to tma_l1_bound category",
+    "tma_l3_bound_group": "Metrics contributing to tma_l3_bound category",
+    "tma_light_operations_group": "Metrics contributing to tma_light_operations category",
+    "tma_load_op_utilization_group": "Metrics contributing to tma_load_op_utilization category",
+    "tma_mem_latency_group": "Metrics contributing to tma_mem_latency category",
+    "tma_memory_bound_group": "Metrics contributing to tma_memory_bound category",
+    "tma_microcode_sequencer_group": "Metrics contributing to tma_microcode_sequencer category",
+    "tma_ports_utilization_group": "Metrics contributing to tma_ports_utilization category",
+    "tma_ports_utilized_0_group": "Metrics contributing to tma_ports_utilized_0 category",
+    "tma_ports_utilized_3m_group": "Metrics contributing to tma_ports_utilized_3m category",
+    "tma_retiring_group": "Metrics contributing to tma_retiring category",
+    "tma_serializing_operation_group": "Metrics contributing to tma_serializing_operation category",
+    "tma_store_bound_group": "Metrics contributing to tma_store_bound category",
+    "tma_store_op_utilization_group": "Metrics contributing to tma_store_op_utilization category"
+}
diff --git a/tools/perf/pmu-events/arch/x86/jaketown/metricgroups.json b/tools/perf/pmu-events/arch/x86/jaketown/metricgroups.json
new file mode 100644
index 000000000000..253f1d93f9c3
--- /dev/null
+++ b/tools/perf/pmu-events/arch/x86/jaketown/metricgroups.json
@@ -0,0 +1,100 @@
+{
+    "Backend": "Grouping from metrics spreadsheet",
+    "Bad": "Grouping from metrics spreadsheet",
+    "BadSpec": "Grouping from metrics spreadsheet",
+    "BigFoot": "Grouping from metrics spreadsheet",
+    "BrMispredicts": "Grouping from metrics spreadsheet",
+    "Branches": "Grouping from metrics spreadsheet",
+    "CacheMisses": "Grouping from metrics spreadsheet",
+    "Compute": "Grouping from metrics spreadsheet",
+    "Cor": "Grouping from metrics spreadsheet",
+    "DSB": "Grouping from metrics spreadsheet",
+    "DSBmiss": "Grouping from metrics spreadsheet",
+    "Fed": "Grouping from metrics spreadsheet",
+    "FetchBW": "Grouping from metrics spreadsheet",
+    "FetchLat": "Grouping from metrics spreadsheet",
+    "Flops": "Grouping from metrics spreadsheet",
+    "FpScalar": "Grouping from metrics spreadsheet",
+    "FpVector": "Grouping from metrics spreadsheet",
+    "Frontend": "Grouping from metrics spreadsheet",
+    "HPC": "Grouping from metrics spreadsheet",
+    "IcMiss": "Grouping from metrics spreadsheet",
+    "InsType": "Grouping from metrics spreadsheet",
+    "L2Evicts": "Grouping from metrics spreadsheet",
+    "LSD": "Grouping from metrics spreadsheet",
+    "MachineClears": "Grouping from metrics spreadsheet",
+    "Mem": "Grouping from metrics spreadsheet",
+    "MemoryBW": "Grouping from metrics spreadsheet",
+    "MemoryBound": "Grouping from metrics spreadsheet",
+    "MemoryLat": "Grouping from metrics spreadsheet",
+    "MemoryTLB": "Grouping from metrics spreadsheet",
+    "MicroSeq": "Grouping from metrics spreadsheet",
+    "OS": "Grouping from metrics spreadsheet",
+    "Offcore": "Grouping from metrics spreadsheet",
+    "PGO": "Grouping from metrics spreadsheet",
+    "Pipeline": "Grouping from metrics spreadsheet",
+    "PortsUtil": "Grouping from metrics spreadsheet",
+    "Power": "Grouping from metrics spreadsheet",
+    "Ret": "Grouping from metrics spreadsheet",
+    "Retire": "Grouping from metrics spreadsheet",
+    "SMT": "Grouping from metrics spreadsheet",
+    "Server": "Grouping from metrics spreadsheet",
+    "Snoop": "Grouping from metrics spreadsheet",
+    "SoC": "Grouping from metrics spreadsheet",
+    "Summary": "Grouping from metrics spreadsheet",
+    "TmaL1": "Grouping from metrics spreadsheet",
+    "TmaL2": "Grouping from metrics spreadsheet",
+    "TmaL3mem": "Grouping from metrics spreadsheet",
+    "TopdownL1": "Metrics for top-down breakdown at level 1",
+    "TopdownL2": "Metrics for top-down breakdown at level 2",
+    "TopdownL3": "Metrics for top-down breakdown at level 3",
+    "TopdownL4": "Metrics for top-down breakdown at level 4",
+    "TopdownL5": "Metrics for top-down breakdown at level 5",
+    "TopdownL6": "Metrics for top-down breakdown at level 6",
+    "tma_L1_group": "Metrics for top-down breakdown at level 1",
+    "tma_L2_group": "Metrics for top-down breakdown at level 2",
+    "tma_L3_group": "Metrics for top-down breakdown at level 3",
+    "tma_L4_group": "Metrics for top-down breakdown at level 4",
+    "tma_L5_group": "Metrics for top-down breakdown at level 5",
+    "tma_L6_group": "Metrics for top-down breakdown at level 6",
+    "tma_alu_op_utilization_group": "Metrics contributing to tma_alu_op_utilization category",
+    "tma_backend_bound_group": "Metrics contributing to tma_backend_bound category",
+    "tma_bad_speculation_group": "Metrics contributing to tma_bad_speculation category",
+    "tma_branch_resteers_group": "Metrics contributing to tma_branch_resteers category",
+    "tma_core_bound_group": "Metrics contributing to tma_core_bound category",
+    "tma_dram_bound_group": "Metrics contributing to tma_dram_bound category",
+    "tma_dtlb_load_group": "Metrics contributing to tma_dtlb_load category",
+    "tma_dtlb_store_group": "Metrics contributing to tma_dtlb_store category",
+    "tma_fetch_bandwidth_group": "Metrics contributing to tma_fetch_bandwidth category",
+    "tma_fetch_latency_group": "Metrics contributing to tma_fetch_latency category",
+    "tma_fp_arith_group": "Metrics contributing to tma_fp_arith category",
+    "tma_fp_vector_group": "Metrics contributing to tma_fp_vector category",
+    "tma_frontend_bound_group": "Metrics contributing to tma_frontend_bound category",
+    "tma_heavy_operations_group": "Metrics contributing to tma_heavy_operations category",
+    "tma_issue2P": "Metrics related by the issue $issue2P",
+    "tma_issueBM": "Metrics related by the issue $issueBM",
+    "tma_issueBW": "Metrics related by the issue $issueBW",
+    "tma_issueFB": "Metrics related by the issue $issueFB",
+    "tma_issueL1": "Metrics related by the issue $issueL1",
+    "tma_issueLat": "Metrics related by the issue $issueLat",
+    "tma_issueMC": "Metrics related by the issue $issueMC",
+    "tma_issueMS": "Metrics related by the issue $issueMS",
+    "tma_issueMV": "Metrics related by the issue $issueMV",
+    "tma_issueRFO": "Metrics related by the issue $issueRFO",
+    "tma_issueSL": "Metrics related by the issue $issueSL",
+    "tma_issueSO": "Metrics related by the issue $issueSO",
+    "tma_issueSmSt": "Metrics related by the issue $issueSmSt",
+    "tma_issueSyncxn": "Metrics related by the issue $issueSyncxn",
+    "tma_issueTLB": "Metrics related by the issue $issueTLB",
+    "tma_l1_bound_group": "Metrics contributing to tma_l1_bound category",
+    "tma_light_operations_group": "Metrics contributing to tma_light_operations category",
+    "tma_mem_latency_group": "Metrics contributing to tma_mem_latency category",
+    "tma_memory_bound_group": "Metrics contributing to tma_memory_bound category",
+    "tma_microcode_sequencer_group": "Metrics contributing to tma_microcode_sequencer category",
+    "tma_ports_utilization_group": "Metrics contributing to tma_ports_utilization category",
+    "tma_ports_utilized_0_group": "Metrics contributing to tma_ports_utilized_0 category",
+    "tma_retiring_group": "Metrics contributing to tma_retiring category",
+    "tma_serializing_operation_group": "Metrics contributing to tma_serializing_operation category",
+    "tma_store_bound_group": "Metrics contributing to tma_store_bound category",
+    "tma_store_op_utilization_group": "Metrics contributing to tma_store_op_utilization category"
+}
diff --git a/tools/perf/pmu-events/arch/x86/sandybridge/metricgroups.json b/tools/perf/pmu-events/arch/x86/sandybridge/metricgroups.json
new file mode 100644
index 000000000000..253f1d93f9c3
--- /dev/null
+++ b/tools/perf/pmu-events/arch/x86/sandybridge/metricgroups.json
@@ -0,0 +1,100 @@
+{
+    "Backend": "Grouping from metrics spreadsheet",
+    "Bad": "Grouping from metrics spreadsheet",
+    "BadSpec": "Grouping from metrics spreadsheet",
+    "BigFoot": "Grouping from metrics spreadsheet",
+    "BrMispredicts": "Grouping from metrics spreadsheet",
+    "Branches": "Grouping from metrics spreadsheet",
+    "CacheMisses": "Grouping from metrics spreadsheet",
+    "Compute": "Grouping from metrics spreadsheet",
+    "Cor": "Grouping from metrics spreadsheet",
+    "DSB": "Grouping from metrics spreadsheet",
+    "DSBmiss": "Grouping from metrics spreadsheet",
+    "Fed": "Grouping from metrics spreadsheet",
+    "FetchBW": "Grouping from metrics spreadsheet",
+    "FetchLat": "Grouping from metrics spreadsheet",
+    "Flops": "Grouping from metrics spreadsheet",
+    "FpScalar": "Grouping from metrics spreadsheet",
+    "FpVector": "Grouping from metrics spreadsheet",
+    "Frontend": "Grouping from metrics spreadsheet",
+    "HPC": "Grouping from metrics spreadsheet",
+    "IcMiss": "Grouping from metrics spreadsheet",
+    "InsType": "Grouping from metrics spreadsheet",
+    "L2Evicts": "Grouping from metrics spreadsheet",
+    "LSD": "Grouping from metrics spreadsheet",
+    "MachineClears": "Grouping from metrics spreadsheet",
+    "Mem": "Grouping from metrics spreadsheet",
+    "MemoryBW": "Grouping from metrics spreadsheet",
+    "MemoryBound": "Grouping from metrics spreadsheet",
+    "MemoryLat": "Grouping from metrics spreadsheet",
+    "MemoryTLB": "Grouping from metrics spreadsheet",
+    "MicroSeq": "Grouping from metrics spreadsheet",
+    "OS": "Grouping from metrics spreadsheet",
+    "Offcore": "Grouping from metrics spreadsheet",
+    "PGO": "Grouping from metrics spreadsheet",
+    "Pipeline": "Grouping from metrics spreadsheet",
+    "PortsUtil": "Grouping from metrics spreadsheet",
+    "Power": "Grouping from metrics spreadsheet",
+    "Ret": "Grouping from metrics spreadsheet",
+    "Retire": "Grouping from metrics spreadsheet",
+    "SMT": "Grouping from metrics spreadsheet",
+    "Server": "Grouping from metrics spreadsheet",
+    "Snoop": "Grouping from metrics spreadsheet",
+    "SoC": "Grouping from metrics spreadsheet",
+    "Summary": "Grouping from metrics spreadsheet",
+    "TmaL1": "Grouping from metrics spreadsheet",
+    "TmaL2": "Grouping from metrics spreadsheet",
+    "TmaL3mem": "Grouping from metrics spreadsheet",
+    "TopdownL1": "Metrics for top-down breakdown at level 1",
+    "TopdownL2": "Metrics for top-down breakdown at level 2",
+    "TopdownL3": "Metrics for top-down breakdown at level 3",
+    "TopdownL4": "Metrics for top-down breakdown at level 4",
+    "TopdownL5": "Metrics for top-down breakdown at level 5",
+    "TopdownL6": "Metrics for top-down breakdown at level 6",
+    "tma_L1_group": "Metrics for top-down breakdown at level 1",
+    "tma_L2_group": "Metrics for top-down breakdown at level 2",
+    "tma_L3_group": "Metrics for top-down breakdown at level 3",
+    "tma_L4_group": "Metrics for top-down breakdown at level 4",
+    "tma_L5_group": "Metrics for top-down breakdown at level 5",
+    "tma_L6_group": "Metrics for top-down breakdown at level 6",
+    "tma_alu_op_utilization_group": "Metrics contributing to tma_alu_op_utilization category",
+    "tma_backend_bound_group": "Metrics contributing to tma_backend_bound category",
+    "tma_bad_speculation_group": "Metrics contributing to tma_bad_speculation category",
+    "tma_branch_resteers_group": "Metrics contributing to tma_branch_resteers category",
+    "tma_core_bound_group": "Metrics contributing to tma_core_bound category",
+    "tma_dram_bound_group": "Metrics contributing to tma_dram_bound category",
+    "tma_dtlb_load_group": "Metrics contributing to tma_dtlb_load category",
+    "tma_dtlb_store_group": "Metrics contributing to tma_dtlb_store category",
+    "tma_fetch_bandwidth_group": "Metrics contributing to tma_fetch_bandwidth category",
+    "tma_fetch_latency_group": "Metrics contributing to tma_fetch_latency category",
+    "tma_fp_arith_group": "Metrics contributing to tma_fp_arith category",
+    "tma_fp_vector_group": "Metrics contributing to tma_fp_vector category",
+    "tma_frontend_bound_group": "Metrics contributing to tma_frontend_bound category",
+    "tma_heavy_operations_group": "Metrics contributing to tma_heavy_operations category",
+    "tma_issue2P": "Metrics related by the issue $issue2P",
+    "tma_issueBM": "Metrics related by the issue $issueBM",
+    "tma_issueBW": "Metrics related by the issue $issueBW",
+    "tma_issueFB": "Metrics related by the issue $issueFB",
+    "tma_issueL1": "Metrics related by the issue $issueL1",
+    "tma_issueLat": "Metrics related by the issue $issueLat",
+    "tma_issueMC": "Metrics related by the issue $issueMC",
+    "tma_issueMS": "Metrics related by the issue $issueMS",
+    "tma_issueMV": "Metrics related by the issue $issueMV",
+    "tma_issueRFO": "Metrics related by the issue $issueRFO",
+    "tma_issueSL": "Metrics related by the issue $issueSL",
+    "tma_issueSO": "Metrics related by the issue $issueSO",
+    "tma_issueSmSt": "Metrics related by the issue $issueSmSt",
+    "tma_issueSyncxn": "Metrics related by the issue $issueSyncxn",
+    "tma_issueTLB": "Metrics related by the issue $issueTLB",
+    "tma_l1_bound_group": "Metrics contributing to tma_l1_bound category",
+    "tma_light_operations_group": "Metrics contributing to tma_light_operations category",
+    "tma_mem_latency_group": "Metrics contributing to tma_mem_latency category",
+    "tma_memory_bound_group": "Metrics contributing to tma_memory_bound category",
+    "tma_microcode_sequencer_group": "Metrics contributing to tma_microcode_sequencer category",
+    "tma_ports_utilization_group": "Metrics contributing to tma_ports_utilization category",
+    "tma_ports_utilized_0_group": "Metrics contributing to tma_ports_utilized_0 category",
+    "tma_retiring_group": "Metrics contributing to tma_retiring category",
+    "tma_serializing_operation_group": "Metrics contributing to tma_serializing_operation category",
+    "tma_store_bound_group": "Metrics contributing to tma_store_bound category",
+    "tma_store_op_utilization_group": "Metrics contributing to tma_store_op_utilization category"
+}
diff --git a/tools/perf/pmu-events/arch/x86/sapphirerapids/metricgroups.json b/tools/perf/pmu-events/arch/x86/sapphirerapids/metricgroups.json
new file mode 100644
index 000000000000..5270376250aa
--- /dev/null
+++ b/tools/perf/pmu-events/arch/x86/sapphirerapids/metricgroups.json
@@ -0,0 +1,118 @@
+{
+    "Backend": "Grouping from metrics spreadsheet",
+    "Bad": "Grouping from metrics spreadsheet",
+    "BadSpec": "Grouping from metrics spreadsheet",
+    "BigFoot": "Grouping from metrics spreadsheet",
+    "BrMispredicts": "Grouping from metrics spreadsheet",
+    "Branches": "Grouping from metrics spreadsheet",
+    "CacheMisses": "Grouping from metrics spreadsheet",
+    "CodeGen": "Grouping from metrics spreadsheet",
+    "Compute": "Grouping from metrics spreadsheet",
+    "Cor": "Grouping from metrics spreadsheet",
+    "DSB": "Grouping from metrics spreadsheet",
+    "DSBmiss": "Grouping from metrics spreadsheet",
+    "DataSharing": "Grouping from metrics spreadsheet",
+    "Fed": "Grouping from metrics spreadsheet",
+    "FetchBW": "Grouping from metrics spreadsheet",
+    "FetchLat": "Grouping from metrics spreadsheet",
+    "Flops": "Grouping from metrics spreadsheet",
+    "FpScalar": "Grouping from metrics spreadsheet",
+    "FpVector": "Grouping from metrics spreadsheet",
+    "Frontend": "Grouping from metrics spreadsheet",
+    "HPC": "Grouping from metrics spreadsheet",
+    "IcMiss": "Grouping from metrics spreadsheet",
+    "InsType": "Grouping from metrics spreadsheet",
+    "IntVector": "Grouping from metrics spreadsheet",
+    "IoBW": "Grouping from metrics spreadsheet",
+    "L2Evicts": "Grouping from metrics spreadsheet",
+    "LSD": "Grouping from metrics spreadsheet",
+    "MachineClears": "Grouping from metrics spreadsheet",
+    "Mem": "Grouping from metrics spreadsheet",
+    "MemoryBW": "Grouping from metrics spreadsheet",
+    "MemoryBound": "Grouping from metrics spreadsheet",
+    "MemoryLat": "Grouping from metrics spreadsheet",
+    "MemoryTLB": "Grouping from metrics spreadsheet",
+    "Memory_BW": "Grouping from metrics spreadsheet",
+    "Memory_Lat": "Grouping from metrics spreadsheet",
+    "MicroSeq": "Grouping from metrics spreadsheet",
+    "OS": "Grouping from metrics spreadsheet",
+    "Offcore": "Grouping from metrics spreadsheet",
+    "PGO": "Grouping from metrics spreadsheet",
+    "Pipeline": "Grouping from metrics spreadsheet",
+    "PortsUtil": "Grouping from metrics spreadsheet",
+    "Power": "Grouping from metrics spreadsheet",
+    "Prefetches": "Grouping from metrics spreadsheet",
+    "Ret": "Grouping from metrics spreadsheet",
+    "Retire": "Grouping from metrics spreadsheet",
+    "SMT": "Grouping from metrics spreadsheet",
+    "Server": "Grouping from metrics spreadsheet",
+    "Snoop": "Grouping from metrics spreadsheet",
+    "SoC": "Grouping from metrics spreadsheet",
+    "Summary": "Grouping from metrics spreadsheet",
+    "TmaL1": "Grouping from metrics spreadsheet",
+    "TmaL2": "Grouping from metrics spreadsheet",
+    "TmaL3mem": "Grouping from metrics spreadsheet",
+    "TopdownL1": "Metrics for top-down breakdown at level 1",
+    "TopdownL2": "Metrics for top-down breakdown at level 2",
+    "TopdownL3": "Metrics for top-down breakdown at level 3",
+    "TopdownL4": "Metrics for top-down breakdown at level 4",
+    "TopdownL5": "Metrics for top-down breakdown at level 5",
+    "TopdownL6": "Metrics for top-down breakdown at level 6",
+    "tma_L1_group": "Metrics for top-down breakdown at level 1",
+    "tma_L2_group": "Metrics for top-down breakdown at level 2",
+    "tma_L3_group": "Metrics for top-down breakdown at level 3",
+    "tma_L4_group": "Metrics for top-down breakdown at level 4",
+    "tma_L5_group": "Metrics for top-down breakdown at level 5",
+    "tma_L6_group": "Metrics for top-down breakdown at level 6",
+    "tma_alu_op_utilization_group": "Metrics contributing to tma_alu_op_utilization category",
+    "tma_assists_group": "Metrics contributing to tma_assists category",
+    "tma_backend_bound_group": "Metrics contributing to tma_backend_bound category",
+    "tma_bad_speculation_group": "Metrics contributing to tma_bad_speculation category",
+    "tma_branch_resteers_group": "Metrics contributing to tma_branch_resteers category",
+    "tma_core_bound_group": "Metrics contributing to tma_core_bound category",
+    "tma_dram_bound_group": "Metrics contributing to tma_dram_bound category",
+    "tma_dtlb_load_group": "Metrics contributing to tma_dtlb_load category",
+    "tma_dtlb_store_group": "Metrics contributing to tma_dtlb_store category",
+    "tma_fetch_bandwidth_group": "Metrics contributing to tma_fetch_bandwidth category",
+    "tma_fetch_latency_group": "Metrics contributing to tma_fetch_latency category",
+    "tma_fp_arith_group": "Metrics contributing to tma_fp_arith category",
+    "tma_fp_vector_group": "Metrics contributing to tma_fp_vector category",
+    "tma_frontend_bound_group": "Metrics contributing to tma_frontend_bound category",
+    "tma_heavy_operations_group": "Metrics contributing to tma_heavy_operations category",
+    "tma_int_operations_group": "Metrics contributing to tma_int_operations category",
+    "tma_issue2P": "Metrics related by the issue $issue2P",
+    "tma_issueBC": "Metrics related by the issue $issueBC",
+    "tma_issueBM": "Metrics related by the issue $issueBM",
+    "tma_issueBW": "Metrics related by the issue $issueBW",
+    "tma_issueD0": "Metrics related by the issue $issueD0",
+    "tma_issueFB": "Metrics related by the issue $issueFB",
+    "tma_issueFL": "Metrics related by the issue $issueFL",
+    "tma_issueL1": "Metrics related by the issue $issueL1",
+    "tma_issueLat": "Metrics related by the issue $issueLat",
+    "tma_issueMC": "Metrics related by the issue $issueMC",
+    "tma_issueMS": "Metrics related by the issue $issueMS",
+    "tma_issueMV": "Metrics related by the issue $issueMV",
+    "tma_issueRFO": "Metrics related by the issue $issueRFO",
+    "tma_issueSL": "Metrics related by the issue $issueSL",
+    "tma_issueSO": "Metrics related by the issue $issueSO",
+    "tma_issueSmSt": "Metrics related by the issue $issueSmSt",
+    "tma_issueSpSt": "Metrics related by the issue $issueSpSt",
+    "tma_issueSyncxn": "Metrics related by the issue $issueSyncxn",
+    "tma_issueTLB": "Metrics related by the issue $issueTLB",
+    "tma_l1_bound_group": "Metrics contributing to tma_l1_bound category",
+    "tma_l3_bound_group": "Metrics contributing to tma_l3_bound category",
+    "tma_light_operations_group": "Metrics contributing to tma_light_operations category",
+    "tma_load_op_utilization_group": "Metrics contributing to tma_load_op_utilization category",
+    "tma_mem_bandwidth_group": "Metrics contributing to tma_mem_bandwidth category",
+    "tma_mem_latency_group": "Metrics contributing to tma_mem_latency category",
+    "tma_memory_bound_group": "Metrics contributing to tma_memory_bound category",
+    "tma_microcode_sequencer_group": "Metrics contributing to tma_microcode_sequencer category",
+    "tma_mite_group": "Metrics contributing to tma_mite category",
+    "tma_ports_utilization_group": "Metrics contributing to tma_ports_utilization category",
+    "tma_ports_utilized_0_group": "Metrics contributing to tma_ports_utilized_0 category",
+    "tma_ports_utilized_3m_group": "Metrics contributing to tma_ports_utilized_3m category",
+    "tma_retiring_group": "Metrics contributing to tma_retiring category",
+    "tma_serializing_operation_group": "Metrics contributing to tma_serializing_operation category",
+    "tma_store_bound_group": "Metrics contributing to tma_store_bound category",
+    "tma_store_op_utilization_group": "Metrics contributing to tma_store_op_utilization category"
+}
diff --git a/tools/perf/pmu-events/arch/x86/skylake/metricgroups.json b/tools/perf/pmu-events/arch/x86/skylake/metricgroups.json
new file mode 100644
index 000000000000..56c0f106e415
--- /dev/null
+++ b/tools/perf/pmu-events/arch/x86/skylake/metricgroups.json
@@ -0,0 +1,113 @@
+{
+    "Backend": "Grouping from metrics spreadsheet",
+    "Bad": "Grouping from metrics spreadsheet",
+    "BadSpec": "Grouping from metrics spreadsheet",
+    "BigFoot": "Grouping from metrics spreadsheet",
+    "BrMispredicts": "Grouping from metrics spreadsheet",
+    "Branches": "Grouping from metrics spreadsheet",
+    "CacheMisses": "Grouping from metrics spreadsheet",
+    "CodeGen": "Grouping from metrics spreadsheet",
+    "Compute": "Grouping from metrics spreadsheet",
+    "Cor": "Grouping from metrics spreadsheet",
+    "DSB": "Grouping from metrics spreadsheet",
+    "DSBmiss": "Grouping from metrics spreadsheet",
+    "DataSharing": "Grouping from metrics spreadsheet",
+    "Fed": "Grouping from metrics spreadsheet",
+    "FetchBW": "Grouping from metrics spreadsheet",
+    "FetchLat": "Grouping from metrics spreadsheet",
+    "Flops": "Grouping from metrics spreadsheet",
+    "FpScalar": "Grouping from metrics spreadsheet",
+    "FpVector": "Grouping from metrics spreadsheet",
+    "Frontend": "Grouping from metrics spreadsheet",
+    "HPC": "Grouping from metrics spreadsheet",
+    "IcMiss": "Grouping from metrics spreadsheet",
+    "InsType": "Grouping from metrics spreadsheet",
+    "L2Evicts": "Grouping from metrics spreadsheet",
+    "LSD": "Grouping from metrics spreadsheet",
+    "MachineClears": "Grouping from metrics spreadsheet",
+    "Mem": "Grouping from metrics spreadsheet",
+    "MemoryBW": "Grouping from metrics spreadsheet",
+    "MemoryBound": "Grouping from metrics spreadsheet",
+    "MemoryLat": "Grouping from metrics spreadsheet",
+    "MemoryTLB": "Grouping from metrics spreadsheet",
+    "Memory_BW": "Grouping from metrics spreadsheet",
+    "Memory_Lat": "Grouping from metrics spreadsheet",
+    "MicroSeq": "Grouping from metrics spreadsheet",
+    "OS": "Grouping from metrics spreadsheet",
+    "Offcore": "Grouping from metrics spreadsheet",
+    "PGO": "Grouping from metrics spreadsheet",
+    "Pipeline": "Grouping from metrics spreadsheet",
+    "PortsUtil": "Grouping from metrics spreadsheet",
+    "Power": "Grouping from metrics spreadsheet",
+    "Prefetches": "Grouping from metrics spreadsheet",
+    "Ret": "Grouping from metrics spreadsheet",
+    "Retire": "Grouping from metrics spreadsheet",
+    "SMT": "Grouping from metrics spreadsheet",
+    "Server": "Grouping from metrics spreadsheet",
+    "Snoop": "Grouping from metrics spreadsheet",
+    "SoC": "Grouping from metrics spreadsheet",
+    "Summary": "Grouping from metrics spreadsheet",
+    "TmaL1": "Grouping from metrics spreadsheet",
+    "TmaL2": "Grouping from metrics spreadsheet",
+    "TmaL3mem": "Grouping from metrics spreadsheet",
+    "TopdownL1": "Metrics for top-down breakdown at level 1",
+    "TopdownL2": "Metrics for top-down breakdown at level 2",
+    "TopdownL3": "Metrics for top-down breakdown at level 3",
+    "TopdownL4": "Metrics for top-down breakdown at level 4",
+    "TopdownL5": "Metrics for top-down breakdown at level 5",
+    "TopdownL6": "Metrics for top-down breakdown at level 6",
+    "tma_L1_group": "Metrics for top-down breakdown at level 1",
+    "tma_L2_group": "Metrics for top-down breakdown at level 2",
+    "tma_L3_group": "Metrics for top-down breakdown at level 3",
+    "tma_L4_group": "Metrics for top-down breakdown at level 4",
+    "tma_L5_group": "Metrics for top-down breakdown at level 5",
+    "tma_L6_group": "Metrics for top-down breakdown at level 6",
+    "tma_alu_op_utilization_group": "Metrics contributing to tma_alu_op_utilization category",
+    "tma_backend_bound_group": "Metrics contributing to tma_backend_bound category",
+    "tma_bad_speculation_group": "Metrics contributing to tma_bad_speculation category",
+    "tma_branch_resteers_group": "Metrics contributing to tma_branch_resteers category",
+    "tma_core_bound_group": "Metrics contributing to tma_core_bound category",
+    "tma_dram_bound_group": "Metrics contributing to tma_dram_bound category",
+    "tma_dtlb_load_group": "Metrics contributing to tma_dtlb_load category",
+    "tma_dtlb_store_group": "Metrics contributing to tma_dtlb_store category",
+    "tma_fetch_bandwidth_group": "Metrics contributing to tma_fetch_bandwidth category",
+    "tma_fetch_latency_group": "Metrics contributing to tma_fetch_latency category",
+    "tma_fp_arith_group": "Metrics contributing to tma_fp_arith category",
+    "tma_fp_vector_group": "Metrics contributing to tma_fp_vector category",
+    "tma_frontend_bound_group": "Metrics contributing to tma_frontend_bound category",
+    "tma_heavy_operations_group": "Metrics contributing to tma_heavy_operations category",
+    "tma_issue2P": "Metrics related by the issue $issue2P",
+    "tma_issueBC": "Metrics related by the issue $issueBC",
+    "tma_issueBM": "Metrics related by the issue $issueBM",
+    "tma_issueBW": "Metrics related by the issue $issueBW",
+    "tma_issueD0": "Metrics related by the issue $issueD0",
+    "tma_issueFB": "Metrics related by the issue $issueFB",
+    "tma_issueFL": "Metrics related by the issue $issueFL",
+    "tma_issueL1": "Metrics related by the issue $issueL1",
+    "tma_issueLat": "Metrics related by the issue $issueLat",
+    "tma_issueMC": "Metrics related by the issue $issueMC",
+    "tma_issueMS": "Metrics related by the issue $issueMS",
+    "tma_issueMV": "Metrics related by the issue $issueMV",
+    "tma_issueRFO": "Metrics related by the issue $issueRFO",
+    "tma_issueSL": "Metrics related by the issue $issueSL",
+    "tma_issueSO": "Metrics related by the issue $issueSO",
+    "tma_issueSmSt": "Metrics related by the issue $issueSmSt",
+    "tma_issueSpSt": "Metrics related by the issue $issueSpSt",
+    "tma_issueSyncxn": "Metrics related by the issue $issueSyncxn",
+    "tma_issueTLB": "Metrics related by the issue $issueTLB",
+    "tma_l1_bound_group": "Metrics contributing to tma_l1_bound category",
+    "tma_l3_bound_group": "Metrics contributing to tma_l3_bound category",
+    "tma_light_operations_group": "Metrics contributing to tma_light_operations category",
+    "tma_load_op_utilization_group": "Metrics contributing to tma_load_op_utilization category",
+    "tma_mem_latency_group": "Metrics contributing to tma_mem_latency category",
+    "tma_memory_bound_group": "Metrics contributing to tma_memory_bound category",
+    "tma_microcode_sequencer_group": "Metrics contributing to tma_microcode_sequencer category",
+    "tma_mite_group": "Metrics contributing to tma_mite category",
+    "tma_ports_utilization_group": "Metrics contributing to tma_ports_utilization category",
+    "tma_ports_utilized_0_group": "Metrics contributing to tma_ports_utilized_0 category",
+    "tma_ports_utilized_3m_group": "Metrics contributing to tma_ports_utilized_3m category",
+    "tma_retiring_group": "Metrics contributing to tma_retiring category",
+    "tma_serializing_operation_group": "Metrics contributing to tma_serializing_operation category",
+    "tma_store_bound_group": "Metrics contributing to tma_store_bound category",
+    "tma_store_op_utilization_group": "Metrics contributing to tma_store_op_utilization category"
+}
diff --git a/tools/perf/pmu-events/arch/x86/skylakex/metricgroups.json b/tools/perf/pmu-events/arch/x86/skylakex/metricgroups.json
new file mode 100644
index 000000000000..4c421c80bd1f
--- /dev/null
+++ b/tools/perf/pmu-events/arch/x86/skylakex/metricgroups.json
@@ -0,0 +1,114 @@
+{
+    "Backend": "Grouping from metrics spreadsheet",
+    "Bad": "Grouping from metrics spreadsheet",
+    "BadSpec": "Grouping from metrics spreadsheet",
+    "BigFoot": "Grouping from metrics spreadsheet",
+    "BrMispredicts": "Grouping from metrics spreadsheet",
+    "Branches": "Grouping from metrics spreadsheet",
+    "CacheMisses": "Grouping from metrics spreadsheet",
+    "CodeGen": "Grouping from metrics spreadsheet",
+    "Compute": "Grouping from metrics spreadsheet",
+    "Cor": "Grouping from metrics spreadsheet",
+    "DSB": "Grouping from metrics spreadsheet",
+    "DSBmiss": "Grouping from metrics spreadsheet",
+    "DataSharing": "Grouping from metrics spreadsheet",
+    "Fed": "Grouping from metrics spreadsheet",
+    "FetchBW": "Grouping from metrics spreadsheet",
+    "FetchLat": "Grouping from metrics spreadsheet",
+    "Flops": "Grouping from metrics spreadsheet",
+    "FpScalar": "Grouping from metrics spreadsheet",
+    "FpVector": "Grouping from metrics spreadsheet",
+    "Frontend": "Grouping from metrics spreadsheet",
+    "HPC": "Grouping from metrics spreadsheet",
+    "IcMiss": "Grouping from metrics spreadsheet",
+    "InsType": "Grouping from metrics spreadsheet",
+    "IoBW": "Grouping from metrics spreadsheet",
+    "L2Evicts": "Grouping from metrics spreadsheet",
+    "LSD": "Grouping from metrics spreadsheet",
+    "MachineClears": "Grouping from metrics spreadsheet",
+    "Mem": "Grouping from metrics spreadsheet",
+    "MemoryBW": "Grouping from metrics spreadsheet",
+    "MemoryBound": "Grouping from metrics spreadsheet",
+    "MemoryLat": "Grouping from metrics spreadsheet",
+    "MemoryTLB": "Grouping from metrics spreadsheet",
+    "Memory_BW": "Grouping from metrics spreadsheet",
+    "Memory_Lat": "Grouping from metrics spreadsheet",
+    "MicroSeq": "Grouping from metrics spreadsheet",
+    "OS": "Grouping from metrics spreadsheet",
+    "Offcore": "Grouping from metrics spreadsheet",
+    "PGO": "Grouping from metrics spreadsheet",
+    "Pipeline": "Grouping from metrics spreadsheet",
+    "PortsUtil": "Grouping from metrics spreadsheet",
+    "Power": "Grouping from metrics spreadsheet",
+    "Prefetches": "Grouping from metrics spreadsheet",
+    "Ret": "Grouping from metrics spreadsheet",
+    "Retire": "Grouping from metrics spreadsheet",
+    "SMT": "Grouping from metrics spreadsheet",
+    "Server": "Grouping from metrics spreadsheet",
+    "Snoop": "Grouping from metrics spreadsheet",
+    "SoC": "Grouping from metrics spreadsheet",
+    "Summary": "Grouping from metrics spreadsheet",
+    "TmaL1": "Grouping from metrics spreadsheet",
+    "TmaL2": "Grouping from metrics spreadsheet",
+    "TmaL3mem": "Grouping from metrics spreadsheet",
+    "TopdownL1": "Metrics for top-down breakdown at level 1",
+    "TopdownL2": "Metrics for top-down breakdown at level 2",
+    "TopdownL3": "Metrics for top-down breakdown at level 3",
+    "TopdownL4": "Metrics for top-down breakdown at level 4",
+    "TopdownL5": "Metrics for top-down breakdown at level 5",
+    "TopdownL6": "Metrics for top-down breakdown at level 6",
+    "tma_L1_group": "Metrics for top-down breakdown at level 1",
+    "tma_L2_group": "Metrics for top-down breakdown at level 2",
+    "tma_L3_group": "Metrics for top-down breakdown at level 3",
+    "tma_L4_group": "Metrics for top-down breakdown at level 4",
+    "tma_L5_group": "Metrics for top-down breakdown at level 5",
+    "tma_L6_group": "Metrics for top-down breakdown at level 6",
+    "tma_alu_op_utilization_group": "Metrics contributing to tma_alu_op_utilization category",
+    "tma_backend_bound_group": "Metrics contributing to tma_backend_bound category",
+    "tma_bad_speculation_group": "Metrics contributing to tma_bad_speculation category",
+    "tma_branch_resteers_group": "Metrics contributing to tma_branch_resteers category",
+    "tma_core_bound_group": "Metrics contributing to tma_core_bound category",
+    "tma_dram_bound_group": "Metrics contributing to tma_dram_bound category",
+    "tma_dtlb_load_group": "Metrics contributing to tma_dtlb_load category",
+    "tma_dtlb_store_group": "Metrics contributing to tma_dtlb_store category",
+    "tma_fetch_bandwidth_group": "Metrics contributing to tma_fetch_bandwidth category",
+    "tma_fetch_latency_group": "Metrics contributing to tma_fetch_latency category",
+    "tma_fp_arith_group": "Metrics contributing to tma_fp_arith category",
+    "tma_fp_vector_group": "Metrics contributing to tma_fp_vector category",
+    "tma_frontend_bound_group": "Metrics contributing to tma_frontend_bound category",
+    "tma_heavy_operations_group": "Metrics contributing to tma_heavy_operations category",
+    "tma_issue2P": "Metrics related by the issue $issue2P",
+    "tma_issueBC": "Metrics related by the issue $issueBC",
+    "tma_issueBM": "Metrics related by the issue $issueBM",
+    "tma_issueBW": "Metrics related by the issue $issueBW",
+    "tma_issueD0": "Metrics related by the issue $issueD0",
+    "tma_issueFB": "Metrics related by the issue $issueFB",
+    "tma_issueFL": "Metrics related by the issue $issueFL",
+    "tma_issueL1": "Metrics related by the issue $issueL1",
+    "tma_issueLat": "Metrics related by the issue $issueLat",
+    "tma_issueMC": "Metrics related by the issue $issueMC",
+    "tma_issueMS": "Metrics related by the issue $issueMS",
+    "tma_issueMV": "Metrics related by the issue $issueMV",
+    "tma_issueRFO": "Metrics related by the issue $issueRFO",
+    "tma_issueSL": "Metrics related by the issue $issueSL",
+    "tma_issueSO": "Metrics related by the issue $issueSO",
+    "tma_issueSmSt": "Metrics related by the issue $issueSmSt",
+    "tma_issueSpSt": "Metrics related by the issue $issueSpSt",
+    "tma_issueSyncxn": "Metrics related by the issue $issueSyncxn",
+    "tma_issueTLB": "Metrics related by the issue $issueTLB",
+    "tma_l1_bound_group": "Metrics contributing to tma_l1_bound category",
+    "tma_l3_bound_group": "Metrics contributing to tma_l3_bound category",
+    "tma_light_operations_group": "Metrics contributing to tma_light_operations category",
+    "tma_load_op_utilization_group": "Metrics contributing to tma_load_op_utilization category",
+    "tma_mem_latency_group": "Metrics contributing to tma_mem_latency category",
+    "tma_memory_bound_group": "Metrics contributing to tma_memory_bound category",
+    "tma_microcode_sequencer_group": "Metrics contributing to tma_microcode_sequencer category",
+    "tma_mite_group": "Metrics contributing to tma_mite category",
+    "tma_ports_utilization_group": "Metrics contributing to tma_ports_utilization category",
+    "tma_ports_utilized_0_group": "Metrics contributing to tma_ports_utilized_0 category",
+    "tma_ports_utilized_3m_group": "Metrics contributing to tma_ports_utilized_3m category",
+    "tma_retiring_group": "Metrics contributing to tma_retiring category",
+    "tma_serializing_operation_group": "Metrics contributing to tma_serializing_operation category",
+    "tma_store_bound_group": "Metrics contributing to tma_store_bound category",
+    "tma_store_op_utilization_group": "Metrics contributing to tma_store_op_utilization category"
+}
diff --git a/tools/perf/pmu-events/arch/x86/tigerlake/metricgroups.json b/tools/perf/pmu-events/arch/x86/tigerlake/metricgroups.json
new file mode 100644
index 000000000000..56c0f106e415
--- /dev/null
+++ b/tools/perf/pmu-events/arch/x86/tigerlake/metricgroups.json
@@ -0,0 +1,113 @@
+{
+    "Backend": "Grouping from metrics spreadsheet",
+    "Bad": "Grouping from metrics spreadsheet",
+    "BadSpec": "Grouping from metrics spreadsheet",
+    "BigFoot": "Grouping from metrics spreadsheet",
+    "BrMispredicts": "Grouping from metrics spreadsheet",
+    "Branches": "Grouping from metrics spreadsheet",
+    "CacheMisses": "Grouping from metrics spreadsheet",
+    "CodeGen": "Grouping from metrics spreadsheet",
+    "Compute": "Grouping from metrics spreadsheet",
+    "Cor": "Grouping from metrics spreadsheet",
+    "DSB": "Grouping from metrics spreadsheet",
+    "DSBmiss": "Grouping from metrics spreadsheet",
+    "DataSharing": "Grouping from metrics spreadsheet",
+    "Fed": "Grouping from metrics spreadsheet",
+    "FetchBW": "Grouping from metrics spreadsheet",
+    "FetchLat": "Grouping from metrics spreadsheet",
+    "Flops": "Grouping from metrics spreadsheet",
+    "FpScalar": "Grouping from metrics spreadsheet",
+    "FpVector": "Grouping from metrics spreadsheet",
+    "Frontend": "Grouping from metrics spreadsheet",
+    "HPC": "Grouping from metrics spreadsheet",
+    "IcMiss": "Grouping from metrics spreadsheet",
+    "InsType": "Grouping from metrics spreadsheet",
+    "L2Evicts": "Grouping from metrics spreadsheet",
+    "LSD": "Grouping from metrics spreadsheet",
+    "MachineClears": "Grouping from metrics spreadsheet",
+    "Mem": "Grouping from metrics spreadsheet",
+    "MemoryBW": "Grouping from metrics spreadsheet",
+    "MemoryBound": "Grouping from metrics spreadsheet",
+    "MemoryLat": "Grouping from metrics spreadsheet",
+    "MemoryTLB": "Grouping from metrics spreadsheet",
+    "Memory_BW": "Grouping from metrics spreadsheet",
+    "Memory_Lat": "Grouping from metrics spreadsheet",
+    "MicroSeq": "Grouping from metrics spreadsheet",
+    "OS": "Grouping from metrics spreadsheet",
+    "Offcore": "Grouping from metrics spreadsheet",
+    "PGO": "Grouping from metrics spreadsheet",
+    "Pipeline": "Grouping from metrics spreadsheet",
+    "PortsUtil": "Grouping from metrics spreadsheet",
+    "Power": "Grouping from metrics spreadsheet",
+    "Prefetches": "Grouping from metrics spreadsheet",
+    "Ret": "Grouping from metrics spreadsheet",
+    "Retire": "Grouping from metrics spreadsheet",
+    "SMT": "Grouping from metrics spreadsheet",
+    "Server": "Grouping from metrics spreadsheet",
+    "Snoop": "Grouping from metrics spreadsheet",
+    "SoC": "Grouping from metrics spreadsheet",
+    "Summary": "Grouping from metrics spreadsheet",
+    "TmaL1": "Grouping from metrics spreadsheet",
+    "TmaL2": "Grouping from metrics spreadsheet",
+    "TmaL3mem": "Grouping from metrics spreadsheet",
+    "TopdownL1": "Metrics for top-down breakdown at level 1",
+    "TopdownL2": "Metrics for top-down breakdown at level 2",
+    "TopdownL3": "Metrics for top-down breakdown at level 3",
+    "TopdownL4": "Metrics for top-down breakdown at level 4",
+    "TopdownL5": "Metrics for top-down breakdown at level 5",
+    "TopdownL6": "Metrics for top-down breakdown at level 6",
+    "tma_L1_group": "Metrics for top-down breakdown at level 1",
+    "tma_L2_group": "Metrics for top-down breakdown at level 2",
+    "tma_L3_group": "Metrics for top-down breakdown at level 3",
+    "tma_L4_group": "Metrics for top-down breakdown at level 4",
+    "tma_L5_group": "Metrics for top-down breakdown at level 5",
+    "tma_L6_group": "Metrics for top-down breakdown at level 6",
+    "tma_alu_op_utilization_group": "Metrics contributing to tma_alu_op_utilization category",
+    "tma_backend_bound_group": "Metrics contributing to tma_backend_bound category",
+    "tma_bad_speculation_group": "Metrics contributing to tma_bad_speculation category",
+    "tma_branch_resteers_group": "Metrics contributing to tma_branch_resteers category",
+    "tma_core_bound_group": "Metrics contributing to tma_core_bound category",
+    "tma_dram_bound_group": "Metrics contributing to tma_dram_bound category",
+    "tma_dtlb_load_group": "Metrics contributing to tma_dtlb_load category",
+    "tma_dtlb_store_group": "Metrics contributing to tma_dtlb_store category",
+    "tma_fetch_bandwidth_group": "Metrics contributing to tma_fetch_bandwidth category",
+    "tma_fetch_latency_group": "Metrics contributing to tma_fetch_latency category",
+    "tma_fp_arith_group": "Metrics contributing to tma_fp_arith category",
+    "tma_fp_vector_group": "Metrics contributing to tma_fp_vector category",
+    "tma_frontend_bound_group": "Metrics contributing to tma_frontend_bound category",
+    "tma_heavy_operations_group": "Metrics contributing to tma_heavy_operations category",
+    "tma_issue2P": "Metrics related by the issue $issue2P",
+    "tma_issueBC": "Metrics related by the issue $issueBC",
+    "tma_issueBM": "Metrics related by the issue $issueBM",
+    "tma_issueBW": "Metrics related by the issue $issueBW",
+    "tma_issueD0": "Metrics related by the issue $issueD0",
+    "tma_issueFB": "Metrics related by the issue $issueFB",
+    "tma_issueFL": "Metrics related by the issue $issueFL",
+    "tma_issueL1": "Metrics related by the issue $issueL1",
+    "tma_issueLat": "Metrics related by the issue $issueLat",
+    "tma_issueMC": "Metrics related by the issue $issueMC",
+    "tma_issueMS": "Metrics related by the issue $issueMS",
+    "tma_issueMV": "Metrics related by the issue $issueMV",
+    "tma_issueRFO": "Metrics related by the issue $issueRFO",
+    "tma_issueSL": "Metrics related by the issue $issueSL",
+    "tma_issueSO": "Metrics related by the issue $issueSO",
+    "tma_issueSmSt": "Metrics related by the issue $issueSmSt",
+    "tma_issueSpSt": "Metrics related by the issue $issueSpSt",
+    "tma_issueSyncxn": "Metrics related by the issue $issueSyncxn",
+    "tma_issueTLB": "Metrics related by the issue $issueTLB",
+    "tma_l1_bound_group": "Metrics contributing to tma_l1_bound category",
+    "tma_l3_bound_group": "Metrics contributing to tma_l3_bound category",
+    "tma_light_operations_group": "Metrics contributing to tma_light_operations category",
+    "tma_load_op_utilization_group": "Metrics contributing to tma_load_op_utilization category",
+    "tma_mem_latency_group": "Metrics contributing to tma_mem_latency category",
+    "tma_memory_bound_group": "Metrics contributing to tma_memory_bound category",
+    "tma_microcode_sequencer_group": "Metrics contributing to tma_microcode_sequencer category",
+    "tma_mite_group": "Metrics contributing to tma_mite category",
+    "tma_ports_utilization_group": "Metrics contributing to tma_ports_utilization category",
+    "tma_ports_utilized_0_group": "Metrics contributing to tma_ports_utilized_0 category",
+    "tma_ports_utilized_3m_group": "Metrics contributing to tma_ports_utilized_3m category",
+    "tma_retiring_group": "Metrics contributing to tma_retiring category",
+    "tma_serializing_operation_group": "Metrics contributing to tma_serializing_operation category",
+    "tma_store_bound_group": "Metrics contributing to tma_store_bound category",
+    "tma_store_op_utilization_group": "Metrics contributing to tma_store_op_utilization category"
+}
-- 
2.40.1.606.ga4b1b128d6-goog
Re: [PATCH v1 15/15] perf vendor events intel: Add metricgroup descriptions for all models
Posted by Liang, Kan 2 years, 8 months ago

On 2023-05-15 5:58 p.m., Ian Rogers wrote:
> Add metric group descriptions created by:
> https://github.com/intel/perfmon/blob/main/scripts/create_perf_json.py
> The descriptions add some additional detail in perf list.
> 
> Signed-off-by: Ian Rogers <irogers@google.com>
> ---
>  .../arch/x86/alderlake/metricgroups.json      | 122 ++++++++++++++++++
>  .../arch/x86/alderlaken/metricgroups.json     |  26 ++++
>  .../arch/x86/broadwell/metricgroups.json      | 107 +++++++++++++++
>  .../arch/x86/broadwellde/metricgroups.json    | 107 +++++++++++++++
>  .../arch/x86/broadwellx/metricgroups.json     | 107 +++++++++++++++
>  .../arch/x86/cascadelakex/metricgroups.json   | 114 ++++++++++++++++
>  .../arch/x86/haswell/metricgroups.json        | 107 +++++++++++++++
>  .../arch/x86/haswellx/metricgroups.json       | 107 +++++++++++++++
>  .../arch/x86/icelake/metricgroups.json        | 113 ++++++++++++++++
>  .../arch/x86/icelakex/metricgroups.json       | 114 ++++++++++++++++
>  .../arch/x86/ivybridge/metricgroups.json      | 107 +++++++++++++++
>  .../arch/x86/ivytown/metricgroups.json        | 107 +++++++++++++++
>  .../arch/x86/jaketown/metricgroups.json       | 100 ++++++++++++++
>  .../arch/x86/sandybridge/metricgroups.json    | 100 ++++++++++++++
>  .../arch/x86/sapphirerapids/metricgroups.json | 118 +++++++++++++++++
>  .../arch/x86/skylake/metricgroups.json        | 113 ++++++++++++++++
>  .../arch/x86/skylakex/metricgroups.json       | 114 ++++++++++++++++
>  .../arch/x86/tigerlake/metricgroups.json      | 113 ++++++++++++++++
>  18 files changed, 1896 insertions(+)
>  create mode 100644 tools/perf/pmu-events/arch/x86/alderlake/metricgroups.json
>  create mode 100644 tools/perf/pmu-events/arch/x86/alderlaken/metricgroups.json
>  create mode 100644 tools/perf/pmu-events/arch/x86/broadwell/metricgroups.json
>  create mode 100644 tools/perf/pmu-events/arch/x86/broadwellde/metricgroups.json
>  create mode 100644 tools/perf/pmu-events/arch/x86/broadwellx/metricgroups.json
>  create mode 100644 tools/perf/pmu-events/arch/x86/cascadelakex/metricgroups.json
>  create mode 100644 tools/perf/pmu-events/arch/x86/haswell/metricgroups.json
>  create mode 100644 tools/perf/pmu-events/arch/x86/haswellx/metricgroups.json
>  create mode 100644 tools/perf/pmu-events/arch/x86/icelake/metricgroups.json
>  create mode 100644 tools/perf/pmu-events/arch/x86/icelakex/metricgroups.json
>  create mode 100644 tools/perf/pmu-events/arch/x86/ivybridge/metricgroups.json
>  create mode 100644 tools/perf/pmu-events/arch/x86/ivytown/metricgroups.json
>  create mode 100644 tools/perf/pmu-events/arch/x86/jaketown/metricgroups.json
>  create mode 100644 tools/perf/pmu-events/arch/x86/sandybridge/metricgroups.json
>  create mode 100644 tools/perf/pmu-events/arch/x86/sapphirerapids/metricgroups.json
>  create mode 100644 tools/perf/pmu-events/arch/x86/skylake/metricgroups.json
>  create mode 100644 tools/perf/pmu-events/arch/x86/skylakex/metricgroups.json
>  create mode 100644 tools/perf/pmu-events/arch/x86/tigerlake/metricgroups.json
> 
> diff --git a/tools/perf/pmu-events/arch/x86/alderlake/metricgroups.json b/tools/perf/pmu-events/arch/x86/alderlake/metricgroups.json
> new file mode 100644
> index 000000000000..273ccfb0ed6f
> --- /dev/null
> +++ b/tools/perf/pmu-events/arch/x86/alderlake/metricgroups.json
> @@ -0,0 +1,122 @@
> +{
> +    "Backend": "Grouping from metrics spreadsheet",
> +    "Bad": "Grouping from metrics spreadsheet",
> +    "BadSpec": "Grouping from metrics spreadsheet",
> +    "BigFoot": "Grouping from metrics spreadsheet",
> +    "BrMispredicts": "Grouping from metrics spreadsheet",
> +    "Branches": "Grouping from metrics spreadsheet",

The description "Grouping from metrics spreadsheet" seems meaningless,
and may bring confusion information, e.g., what is metrics spreadsheet?
I think it may be better to leave it empty if we don't have a proper
description for the metricgroup.

Other descriptions look good to me.

Thanks,
Kan
Re: [PATCH v1 15/15] perf vendor events intel: Add metricgroup descriptions for all models
Posted by Ian Rogers 2 years, 8 months ago
On Tue, May 16, 2023 at 10:54 AM Liang, Kan <kan.liang@linux.intel.com> wrote:
>
>
>
> On 2023-05-15 5:58 p.m., Ian Rogers wrote:
> > Add metric group descriptions created by:
> > https://github.com/intel/perfmon/blob/main/scripts/create_perf_json.py
> > The descriptions add some additional detail in perf list.
> >
> > Signed-off-by: Ian Rogers <irogers@google.com>
> > ---
> >  .../arch/x86/alderlake/metricgroups.json      | 122 ++++++++++++++++++
> >  .../arch/x86/alderlaken/metricgroups.json     |  26 ++++
> >  .../arch/x86/broadwell/metricgroups.json      | 107 +++++++++++++++
> >  .../arch/x86/broadwellde/metricgroups.json    | 107 +++++++++++++++
> >  .../arch/x86/broadwellx/metricgroups.json     | 107 +++++++++++++++
> >  .../arch/x86/cascadelakex/metricgroups.json   | 114 ++++++++++++++++
> >  .../arch/x86/haswell/metricgroups.json        | 107 +++++++++++++++
> >  .../arch/x86/haswellx/metricgroups.json       | 107 +++++++++++++++
> >  .../arch/x86/icelake/metricgroups.json        | 113 ++++++++++++++++
> >  .../arch/x86/icelakex/metricgroups.json       | 114 ++++++++++++++++
> >  .../arch/x86/ivybridge/metricgroups.json      | 107 +++++++++++++++
> >  .../arch/x86/ivytown/metricgroups.json        | 107 +++++++++++++++
> >  .../arch/x86/jaketown/metricgroups.json       | 100 ++++++++++++++
> >  .../arch/x86/sandybridge/metricgroups.json    | 100 ++++++++++++++
> >  .../arch/x86/sapphirerapids/metricgroups.json | 118 +++++++++++++++++
> >  .../arch/x86/skylake/metricgroups.json        | 113 ++++++++++++++++
> >  .../arch/x86/skylakex/metricgroups.json       | 114 ++++++++++++++++
> >  .../arch/x86/tigerlake/metricgroups.json      | 113 ++++++++++++++++
> >  18 files changed, 1896 insertions(+)
> >  create mode 100644 tools/perf/pmu-events/arch/x86/alderlake/metricgroups.json
> >  create mode 100644 tools/perf/pmu-events/arch/x86/alderlaken/metricgroups.json
> >  create mode 100644 tools/perf/pmu-events/arch/x86/broadwell/metricgroups.json
> >  create mode 100644 tools/perf/pmu-events/arch/x86/broadwellde/metricgroups.json
> >  create mode 100644 tools/perf/pmu-events/arch/x86/broadwellx/metricgroups.json
> >  create mode 100644 tools/perf/pmu-events/arch/x86/cascadelakex/metricgroups.json
> >  create mode 100644 tools/perf/pmu-events/arch/x86/haswell/metricgroups.json
> >  create mode 100644 tools/perf/pmu-events/arch/x86/haswellx/metricgroups.json
> >  create mode 100644 tools/perf/pmu-events/arch/x86/icelake/metricgroups.json
> >  create mode 100644 tools/perf/pmu-events/arch/x86/icelakex/metricgroups.json
> >  create mode 100644 tools/perf/pmu-events/arch/x86/ivybridge/metricgroups.json
> >  create mode 100644 tools/perf/pmu-events/arch/x86/ivytown/metricgroups.json
> >  create mode 100644 tools/perf/pmu-events/arch/x86/jaketown/metricgroups.json
> >  create mode 100644 tools/perf/pmu-events/arch/x86/sandybridge/metricgroups.json
> >  create mode 100644 tools/perf/pmu-events/arch/x86/sapphirerapids/metricgroups.json
> >  create mode 100644 tools/perf/pmu-events/arch/x86/skylake/metricgroups.json
> >  create mode 100644 tools/perf/pmu-events/arch/x86/skylakex/metricgroups.json
> >  create mode 100644 tools/perf/pmu-events/arch/x86/tigerlake/metricgroups.json
> >
> > diff --git a/tools/perf/pmu-events/arch/x86/alderlake/metricgroups.json b/tools/perf/pmu-events/arch/x86/alderlake/metricgroups.json
> > new file mode 100644
> > index 000000000000..273ccfb0ed6f
> > --- /dev/null
> > +++ b/tools/perf/pmu-events/arch/x86/alderlake/metricgroups.json
> > @@ -0,0 +1,122 @@
> > +{
> > +    "Backend": "Grouping from metrics spreadsheet",
> > +    "Bad": "Grouping from metrics spreadsheet",
> > +    "BadSpec": "Grouping from metrics spreadsheet",
> > +    "BigFoot": "Grouping from metrics spreadsheet",
> > +    "BrMispredicts": "Grouping from metrics spreadsheet",
> > +    "Branches": "Grouping from metrics spreadsheet",
>
> The description "Grouping from metrics spreadsheet" seems meaningless,
> and may bring confusion information, e.g., what is metrics spreadsheet?
> I think it may be better to leave it empty if we don't have a proper
> description for the metricgroup.

Thanks Kan, the TMA spreadsheet has a column (AG in version 4.5-full)
called Metric Group. For the level 3 ICache_Misses metric the value of
the cell is "BigFoot;FetchLat;IcMiss". The converter will put these
groups alongside the groups derived by level, parent/child
relationship. A group like "BigFoot" could use some explanation. The
intent with saying "Grouping from metrics spreadsheet" is to at least
give the origin of the metric group which I think is at least a little
bit better than saying nothing and not knowing the origin of where the
grouping comes from. I'd like to do more, so I think we can iterate
and improve, but I think this first step has some value.

Thanks,
Ian

> Other descriptions look good to me.
>
> Thanks,
> Kan
Re: [PATCH v1 15/15] perf vendor events intel: Add metricgroup descriptions for all models
Posted by Liang, Kan 2 years, 8 months ago

On 2023-05-16 2:19 p.m., Ian Rogers wrote:
> On Tue, May 16, 2023 at 10:54 AM Liang, Kan <kan.liang@linux.intel.com> wrote:
>>
>>
>>
>> On 2023-05-15 5:58 p.m., Ian Rogers wrote:
>>> Add metric group descriptions created by:
>>> https://github.com/intel/perfmon/blob/main/scripts/create_perf_json.py
>>> The descriptions add some additional detail in perf list.
>>>
>>> Signed-off-by: Ian Rogers <irogers@google.com>
>>> ---
>>>  .../arch/x86/alderlake/metricgroups.json      | 122 ++++++++++++++++++
>>>  .../arch/x86/alderlaken/metricgroups.json     |  26 ++++
>>>  .../arch/x86/broadwell/metricgroups.json      | 107 +++++++++++++++
>>>  .../arch/x86/broadwellde/metricgroups.json    | 107 +++++++++++++++
>>>  .../arch/x86/broadwellx/metricgroups.json     | 107 +++++++++++++++
>>>  .../arch/x86/cascadelakex/metricgroups.json   | 114 ++++++++++++++++
>>>  .../arch/x86/haswell/metricgroups.json        | 107 +++++++++++++++
>>>  .../arch/x86/haswellx/metricgroups.json       | 107 +++++++++++++++
>>>  .../arch/x86/icelake/metricgroups.json        | 113 ++++++++++++++++
>>>  .../arch/x86/icelakex/metricgroups.json       | 114 ++++++++++++++++
>>>  .../arch/x86/ivybridge/metricgroups.json      | 107 +++++++++++++++
>>>  .../arch/x86/ivytown/metricgroups.json        | 107 +++++++++++++++
>>>  .../arch/x86/jaketown/metricgroups.json       | 100 ++++++++++++++
>>>  .../arch/x86/sandybridge/metricgroups.json    | 100 ++++++++++++++
>>>  .../arch/x86/sapphirerapids/metricgroups.json | 118 +++++++++++++++++
>>>  .../arch/x86/skylake/metricgroups.json        | 113 ++++++++++++++++
>>>  .../arch/x86/skylakex/metricgroups.json       | 114 ++++++++++++++++
>>>  .../arch/x86/tigerlake/metricgroups.json      | 113 ++++++++++++++++
>>>  18 files changed, 1896 insertions(+)
>>>  create mode 100644 tools/perf/pmu-events/arch/x86/alderlake/metricgroups.json
>>>  create mode 100644 tools/perf/pmu-events/arch/x86/alderlaken/metricgroups.json
>>>  create mode 100644 tools/perf/pmu-events/arch/x86/broadwell/metricgroups.json
>>>  create mode 100644 tools/perf/pmu-events/arch/x86/broadwellde/metricgroups.json
>>>  create mode 100644 tools/perf/pmu-events/arch/x86/broadwellx/metricgroups.json
>>>  create mode 100644 tools/perf/pmu-events/arch/x86/cascadelakex/metricgroups.json
>>>  create mode 100644 tools/perf/pmu-events/arch/x86/haswell/metricgroups.json
>>>  create mode 100644 tools/perf/pmu-events/arch/x86/haswellx/metricgroups.json
>>>  create mode 100644 tools/perf/pmu-events/arch/x86/icelake/metricgroups.json
>>>  create mode 100644 tools/perf/pmu-events/arch/x86/icelakex/metricgroups.json
>>>  create mode 100644 tools/perf/pmu-events/arch/x86/ivybridge/metricgroups.json
>>>  create mode 100644 tools/perf/pmu-events/arch/x86/ivytown/metricgroups.json
>>>  create mode 100644 tools/perf/pmu-events/arch/x86/jaketown/metricgroups.json
>>>  create mode 100644 tools/perf/pmu-events/arch/x86/sandybridge/metricgroups.json
>>>  create mode 100644 tools/perf/pmu-events/arch/x86/sapphirerapids/metricgroups.json
>>>  create mode 100644 tools/perf/pmu-events/arch/x86/skylake/metricgroups.json
>>>  create mode 100644 tools/perf/pmu-events/arch/x86/skylakex/metricgroups.json
>>>  create mode 100644 tools/perf/pmu-events/arch/x86/tigerlake/metricgroups.json
>>>
>>> diff --git a/tools/perf/pmu-events/arch/x86/alderlake/metricgroups.json b/tools/perf/pmu-events/arch/x86/alderlake/metricgroups.json
>>> new file mode 100644
>>> index 000000000000..273ccfb0ed6f
>>> --- /dev/null
>>> +++ b/tools/perf/pmu-events/arch/x86/alderlake/metricgroups.json
>>> @@ -0,0 +1,122 @@
>>> +{
>>> +    "Backend": "Grouping from metrics spreadsheet",
>>> +    "Bad": "Grouping from metrics spreadsheet",
>>> +    "BadSpec": "Grouping from metrics spreadsheet",
>>> +    "BigFoot": "Grouping from metrics spreadsheet",
>>> +    "BrMispredicts": "Grouping from metrics spreadsheet",
>>> +    "Branches": "Grouping from metrics spreadsheet",
>>
>> The description "Grouping from metrics spreadsheet" seems meaningless,
>> and may bring confusion information, e.g., what is metrics spreadsheet?
>> I think it may be better to leave it empty if we don't have a proper
>> description for the metricgroup.
> 
> Thanks Kan, the TMA spreadsheet has a column (AG in version 4.5-full)
> called Metric Group. For the level 3 ICache_Misses metric the value of
> the cell is "BigFoot;FetchLat;IcMiss". The converter will put these
> groups alongside the groups derived by level, parent/child
> relationship. A group like "BigFoot" could use some explanation. The
> intent with saying "Grouping from metrics spreadsheet" is to at least
> give the origin of the metric group which I think is at least a little
> bit better than saying nothing and not knowing the origin of where the
> grouping comes from. I'd like to do more, so I think we can iterate
> and improve, but I think this first step has some value.
> 

So the groups with "Grouping from metrics spreadsheet" are all from the
"Metric Group" column, right?
I think the official name of TMA is Top-down Microarchitecture Analysis
Metrics. Can we change the description to "Grouping from Top-down
Microarchitecture Analysis Metrics spreadsheet"? If the end user
searches the name, they can be pointed to the correct spreadsheet file.

Thanks,
Kan