mbox series

[v5,00/10] Refactor the common parts to the HiSilicon Uncore PMU core and cleanups

Message ID 20241210141525.37788-1-yangyicong@huawei.com (mailing list archive)
Headers show
Series Refactor the common parts to the HiSilicon Uncore PMU core and cleanups | expand

Message

Yicong Yang Dec. 10, 2024, 2:15 p.m. UTC
From: Yicong Yang <yangyicong@hisilicon.com>

This series mainly contains the refactor of the HiSilicon Uncore PMU by
extracting the common parts from each drivers into the core:
- the retrieving of the PMU topology ID
- the common sysfs attributes like cpumask and identifier

In order to achieve this, we need to do below preparation:
- refactor the detection of associated CPUs for PMUs locates on a SICL
- maintain the topology information in a dedicated data structure
- provides a generic implementation of cpumask/identifier attributes

Besides also include below changes/cleanups in this patchset
- add one new sysfs attributes for better describing the topology information
  of the associated CPUs of the PMU.
- define a symbol namespace for HiSilicon Uncore PMUs to avoid pollute the
  common ones
- two minor nonfunctional cleanups of DDRC PMU

Change since v4:
- rebase on 6.13-rc2 to meet the change of EXPORT_SYMBOL_NS_GPL/MODULE_IMPORT_NS
Link: https://lore.kernel.org/linux-arm-kernel/20241210113949.GE14735@willie-the-truck/T/#me0ffafc1259a39604103dee13a5607be8a96ce72

Change since v3:
- Split the associated_cpus refactor patches according to the functions, hope
  will be easier to review
- Drop the use of cpu_online_mask out of cpuhp
Link: https://lore.kernel.org/linux-arm-kernel/20241026072424.29887-1-yangyicong@huawei.com/

Change since v2:
- remove one redundant newline and add Jonathan's tag for Patch 1 and 5
Link: https://lore.kernel.org/linux-arm-kernel/20241022145305.47056-1-yangyicong@huawei.com/

Changes since v1:
Address Jonathan's comments and add tags for some patches
- Provide a generic cpumask/identifier attribute group
- refine the comments/commit as suggested
Link: https://lore.kernel.org/linux-arm-kernel/20241018095745.57057-1-yangyicong@huawei.com/

Junhao He (2):
  drivers/perf: hisi: Fix incorrect variable name "hha_pmu" in DDRC PMU
    driver
  drivers/perf: hisi: Delete redundant blank line of DDRC PMU

Yicong Yang (8):
  drivers/perf: hisi: Define a symbol namespace for HiSilicon Uncore
    PMUs
  drivers/perf: hisi: Don't update the associated_cpus on CPU offline
  drivers/perf: hisi: Migrate to one online CPU if no associated one
    online
  drivers/perf: hisi: Refactor the detection of associated CPUs
  drivers/perf: hisi: Extract topology information to a separate
    structure
  drivers/perf: hisi: Add a common function to retrieve topology from
    firmware
  drivers/perf: hisi: Provide a generic implementation of
    cpumask/identifier
  drivers/perf: hisi: Export associated CPUs of each PMU through sysfs

 Documentation/admin-guide/perf/hisi-pmu.rst   |   5 +-
 drivers/perf/hisilicon/hisi_uncore_cpa_pmu.c  |  42 +----
 drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c |  61 ++-----
 drivers/perf/hisilicon/hisi_uncore_hha_pmu.c  |  48 ++----
 drivers/perf/hisilicon/hisi_uncore_l3c_pmu.c  |  44 ++---
 drivers/perf/hisilicon/hisi_uncore_pa_pmu.c   |  53 ++----
 drivers/perf/hisilicon/hisi_uncore_pmu.c      | 160 +++++++++++++-----
 drivers/perf/hisilicon/hisi_uncore_pmu.h      |  49 +++++-
 drivers/perf/hisilicon/hisi_uncore_sllc_pmu.c |  43 +----
 drivers/perf/hisilicon/hisi_uncore_uc_pmu.c   |  45 ++---
 10 files changed, 248 insertions(+), 302 deletions(-)

Comments

Will Deacon Dec. 10, 2024, 6:34 p.m. UTC | #1
On Tue, 10 Dec 2024 22:15:15 +0800, Yicong Yang wrote:
> This series mainly contains the refactor of the HiSilicon Uncore PMU by
> extracting the common parts from each drivers into the core:
> - the retrieving of the PMU topology ID
> - the common sysfs attributes like cpumask and identifier
> 
> In order to achieve this, we need to do below preparation:
> - refactor the detection of associated CPUs for PMUs locates on a SICL
> - maintain the topology information in a dedicated data structure
> - provides a generic implementation of cpumask/identifier attributes
> 
> [...]

Applied to will (for-next/perf), thanks!

[01/10] drivers/perf: hisi: Define a symbol namespace for HiSilicon Uncore PMUs
        https://git.kernel.org/will/c/41729809ac85
[02/10] drivers/perf: hisi: Don't update the associated_cpus on CPU offline
        https://git.kernel.org/will/c/f2368a209a71
[03/10] drivers/perf: hisi: Migrate to one online CPU if no associated one online
        https://git.kernel.org/will/c/83037a47d3aa
[04/10] drivers/perf: hisi: Refactor the detection of associated CPUs
        https://git.kernel.org/will/c/6cd137088fdf
[05/10] drivers/perf: hisi: Extract topology information to a separate structure
        https://git.kernel.org/will/c/c192026ceea7
[06/10] drivers/perf: hisi: Add a common function to retrieve topology from firmware
        https://git.kernel.org/will/c/32528b165ea1
[07/10] drivers/perf: hisi: Provide a generic implementation of cpumask/identifier
        https://git.kernel.org/will/c/8688c01e313d
[08/10] drivers/perf: hisi: Export associated CPUs of each PMU through sysfs
        https://git.kernel.org/will/c/3b051bb7cb43
[09/10] drivers/perf: hisi: Fix incorrect variable name "hha_pmu" in DDRC PMU driver
        https://git.kernel.org/will/c/4e15bcffa19a
[10/10] drivers/perf: hisi: Delete redundant blank line of DDRC PMU
        https://git.kernel.org/will/c/f03241fbebdf

Cheers,