[PATCH v5 0/2] perf/x86/amd/uncore: Add Hygon uncore PMU and JSON events

Qi Liu posted 2 patches 1 month, 1 week ago
arch/x86/events/Kconfig                       |  11 +
arch/x86/events/amd/Makefile                  |   2 +
arch/x86/events/amd/hygon_uncore.c            | 872 ++++++++++++++++++
arch/x86/events/amd/uncore.c                  |  11 +-
arch/x86/include/asm/msr-index.h              |   2 +
arch/x86/include/asm/perf_event.h             |  20 +
include/linux/cpuhotplug.h                    |   3 +
tools/perf/pmu-events/Build                   |   2 +-
.../arch/x86/hygonm1/data-fabric.json         |  95 ++
.../arch/x86/hygonm4/data-fabric.json         | 134 +++
.../arch/x86/hygonm6/data-fabric.json         | 170 ++++
tools/perf/pmu-events/arch/x86/mapfile.csv    |   3 +
tools/perf/pmu-events/jevents.py              |   2 +
13 files changed, 1318 insertions(+), 9 deletions(-)
create mode 100644 arch/x86/events/amd/hygon_uncore.c
create mode 100644 tools/perf/pmu-events/arch/x86/hygonm1/data-fabric.json
create mode 100644 tools/perf/pmu-events/arch/x86/hygonm4/data-fabric.json
create mode 100644 tools/perf/pmu-events/arch/x86/hygonm6/data-fabric.json
[PATCH v5 0/2] perf/x86/amd/uncore: Add Hygon uncore PMU and JSON events
Posted by Qi Liu 1 month, 1 week ago
This series adds initial uncore PMU support for Hygon Family 18h
processors.

Hygon uncore PMUs use a programming model similar to AMD's, but
differ in MSR base addresses, event encodings, and counter allocation
semantics. Rather than embedding Hygon support in the AMD uncore
driver with vendor checks, a dedicated driver is introduced to keep
both drivers clean and independently maintainable.

The new driver provides hygon_df and hygon_df_iod PMUs covering the
Data Fabric on both the CPU die and the IO Die, together with perf
JSON events and metrics for three processor models. A per-context
hrtimer handles counter reads, and CPU hotplug callbacks manage
context lifecycle.

Changes since RFC:
  - Address sashiko bot review.
Changes since v1:
  - Rename the helper namespace to amd_uncore_common_* to avoid
    an generic uncore_common_* prefix, and to keep it distinct
    from the existing amd_uncore_* names.
Changes since v2:
  - Drop the common helpers refactoring. Keep the Hygon driver
    self-contained instead, avoiding unnecessary changes in the AMD
    uncore driver.
Changes since v3:
  - Address sashiko bot review.
Changes since v4:
  - Improve Hygon Data Fabric PMU event naming, descriptions, and scaling.

Qi Liu (2):
  perf/x86/amd/uncore: Add Hygon uncore PMU support
  perf vendor events hygon: Add Hygon Data Fabric PMU events and metrics

 arch/x86/events/Kconfig                       |  11 +
 arch/x86/events/amd/Makefile                  |   2 +
 arch/x86/events/amd/hygon_uncore.c            | 872 ++++++++++++++++++
 arch/x86/events/amd/uncore.c                  |  11 +-
 arch/x86/include/asm/msr-index.h              |   2 +
 arch/x86/include/asm/perf_event.h             |  20 +
 include/linux/cpuhotplug.h                    |   3 +
 tools/perf/pmu-events/Build                   |   2 +-
 .../arch/x86/hygonm1/data-fabric.json         |  95 ++
 .../arch/x86/hygonm4/data-fabric.json         | 134 +++
 .../arch/x86/hygonm6/data-fabric.json         | 170 ++++
 tools/perf/pmu-events/arch/x86/mapfile.csv    |   3 +
 tools/perf/pmu-events/jevents.py              |   2 +
 13 files changed, 1318 insertions(+), 9 deletions(-)
 create mode 100644 arch/x86/events/amd/hygon_uncore.c
 create mode 100644 tools/perf/pmu-events/arch/x86/hygonm1/data-fabric.json
 create mode 100644 tools/perf/pmu-events/arch/x86/hygonm4/data-fabric.json
 create mode 100644 tools/perf/pmu-events/arch/x86/hygonm6/data-fabric.json

-- 
2.34.1
Re: [PATCH v5 0/2] perf/x86/amd/uncore: Add Hygon uncore PMU and JSON events
Posted by Qi Liu 5 days, 16 hours ago
Gentle ping for this patch. Any comments would be appreciated. :)

Thanks,
Qi


On 8/18/2026 6:01 PM, Qi Liu wrote:
> This series adds initial uncore PMU support for Hygon Family 18h
> processors.
> 
> Hygon uncore PMUs use a programming model similar to AMD's, but
> differ in MSR base addresses, event encodings, and counter allocation
> semantics. Rather than embedding Hygon support in the AMD uncore
> driver with vendor checks, a dedicated driver is introduced to keep
> both drivers clean and independently maintainable.
> 
> The new driver provides hygon_df and hygon_df_iod PMUs covering the
> Data Fabric on both the CPU die and the IO Die, together with perf
> JSON events and metrics for three processor models. A per-context
> hrtimer handles counter reads, and CPU hotplug callbacks manage
> context lifecycle.
> 
> Changes since RFC:
>    - Address sashiko bot review.
> Changes since v1:
>    - Rename the helper namespace to amd_uncore_common_* to avoid
>      an generic uncore_common_* prefix, and to keep it distinct
>      from the existing amd_uncore_* names.
> Changes since v2:
>    - Drop the common helpers refactoring. Keep the Hygon driver
>      self-contained instead, avoiding unnecessary changes in the AMD
>      uncore driver.
> Changes since v3:
>    - Address sashiko bot review.
> Changes since v4:
>    - Improve Hygon Data Fabric PMU event naming, descriptions, and scaling.
> 
> Qi Liu (2):
>    perf/x86/amd/uncore: Add Hygon uncore PMU support
>    perf vendor events hygon: Add Hygon Data Fabric PMU events and metrics
> 
>   arch/x86/events/Kconfig                       |  11 +
>   arch/x86/events/amd/Makefile                  |   2 +
>   arch/x86/events/amd/hygon_uncore.c            | 872 ++++++++++++++++++
>   arch/x86/events/amd/uncore.c                  |  11 +-
>   arch/x86/include/asm/msr-index.h              |   2 +
>   arch/x86/include/asm/perf_event.h             |  20 +
>   include/linux/cpuhotplug.h                    |   3 +
>   tools/perf/pmu-events/Build                   |   2 +-
>   .../arch/x86/hygonm1/data-fabric.json         |  95 ++
>   .../arch/x86/hygonm4/data-fabric.json         | 134 +++
>   .../arch/x86/hygonm6/data-fabric.json         | 170 ++++
>   tools/perf/pmu-events/arch/x86/mapfile.csv    |   3 +
>   tools/perf/pmu-events/jevents.py              |   2 +
>   13 files changed, 1318 insertions(+), 9 deletions(-)
>   create mode 100644 arch/x86/events/amd/hygon_uncore.c
>   create mode 100644 tools/perf/pmu-events/arch/x86/hygonm1/data-fabric.json
>   create mode 100644 tools/perf/pmu-events/arch/x86/hygonm4/data-fabric.json
>   create mode 100644 tools/perf/pmu-events/arch/x86/hygonm6/data-fabric.json
>