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

Will Deacon will at kernel.org
Tue Dec 10 04:05:57 PST 2024


On Tue, Dec 03, 2024 at 08:50:39PM +0800, Yicong Yang wrote:
> From: Yicong Yang <yangyicong at 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 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/

This doesn't build on top of -rc2 (see log below). I suspect this is because
of the recent MODULE_IMPORT_NS() changes to use string literals [1].

Please can you send a v5?

Will

[1] cdd30ebb1b9f ("module: Convert symbol namespace to string literal")

--->8

In file included from ./include/linux/module.h:22,
                 from ./include/linux/device/driver.h:21,
                 from ./include/linux/device.h:32,
                 from ./include/linux/acpi.h:14,
                 from drivers/perf/hisilicon/hisi_uncore_hha_pmu.c:11:
drivers/perf/hisilicon/hisi_uncore_hha_pmu.c:559:18: error: expected ‘,’ or ‘;’ before ‘HISI_PMU’
  559 | MODULE_IMPORT_NS(HISI_PMU);
      |                  ^~~~~~~~
./include/linux/moduleparam.h:26:47: note: in definition of macro ‘__MODULE_INFO’
   26 |   = __MODULE_INFO_PREFIX __stringify(tag) "=" info
      |                                               ^~~~
./include/linux/module.h:299:30: note: in expansion of macro ‘MODULE_INFO’
  299 | #define MODULE_IMPORT_NS(ns) MODULE_INFO(import_ns, ns)
      |                              ^~~~~~~~~~~
drivers/perf/hisilicon/hisi_uncore_hha_pmu.c:559:1: note: in expansion of macro ‘MODULE_IMPORT_NS’
  559 | MODULE_IMPORT_NS(HISI_PMU);
      | ^~~~~~~~~~~~~~~~
make[5]: *** [scripts/Makefile.build:194: drivers/perf/hisilicon/hisi_uncore_hha_pmu.o] Error 1
make[5]: *** Waiting for unfinished jobs....
In file included from ./include/linux/module.h:22,
                 from ./include/linux/device/driver.h:21,
                 from ./include/linux/device.h:32,
                 from ./include/linux/acpi.h:14,
                 from drivers/perf/hisilicon/hisi_uncore_l3c_pmu.c:11:
drivers/perf/hisilicon/hisi_uncore_l3c_pmu.c:595:18: error: expected ‘,’ or ‘;’ before ‘HISI_PMU’
  595 | MODULE_IMPORT_NS(HISI_PMU);
      |                  ^~~~~~~~
./include/linux/moduleparam.h:26:47: note: in definition of macro ‘__MODULE_INFO’
   26 |   = __MODULE_INFO_PREFIX __stringify(tag) "=" info
      |                                               ^~~~
./include/linux/module.h:299:30: note: in expansion of macro ‘MODULE_INFO’
  299 | #define MODULE_IMPORT_NS(ns) MODULE_INFO(import_ns, ns)
      |                              ^~~~~~~~~~~
drivers/perf/hisilicon/hisi_uncore_l3c_pmu.c:595:1: note: in expansion of macro ‘MODULE_IMPORT_NS’
  595 | MODULE_IMPORT_NS(HISI_PMU);
      | ^~~~~~~~~~~~~~~~
make[5]: *** [scripts/Makefile.build:194: drivers/perf/hisilicon/hisi_uncore_l3c_pmu.o] Error 1
/tmp/ccKFrDMm.s: Assembler messages:
/tmp/ccKFrDMm.s:7: Error: junk at end of line, first unrecognized character is `H'
/tmp/ccKFrDMm.s:8: Error: junk at end of line, first unrecognized character is `H'
/tmp/ccKFrDMm.s:9: Error: junk at end of line, first unrecognized character is `H'
/tmp/ccKFrDMm.s:10: Error: junk at end of line, first unrecognized character is `H'
/tmp/ccKFrDMm.s:11: Error: junk at end of line, first unrecognized character is `H'
/tmp/ccKFrDMm.s:12: Error: junk at end of line, first unrecognized character is `H'
/tmp/ccKFrDMm.s:13: Error: junk at end of line, first unrecognized character is `H'
/tmp/ccKFrDMm.s:14: Error: junk at end of line, first unrecognized character is `H'
/tmp/ccKFrDMm.s:15: Error: junk at end of line, first unrecognized character is `H'
/tmp/ccKFrDMm.s:16: Error: junk at end of line, first unrecognized character is `H'
/tmp/ccKFrDMm.s:17: Error: junk at end of line, first unrecognized character is `H'
/tmp/ccKFrDMm.s:18: Error: junk at end of line, first unrecognized character is `H'
/tmp/ccKFrDMm.s:19: Error: junk at end of line, first unrecognized character is `H'
/tmp/ccKFrDMm.s:20: Error: junk at end of line, first unrecognized character is `H'
/tmp/ccKFrDMm.s:21: Error: junk at end of line, first unrecognized character is `H'
/tmp/ccKFrDMm.s:22: Error: junk at end of line, first unrecognized character is `H'
/tmp/ccKFrDMm.s:23: Error: junk at end of line, first unrecognized character is `H'
/tmp/ccKFrDMm.s:24: Error: junk at end of line, first unrecognized character is `H'
/tmp/ccKFrDMm.s:25: Error: junk at end of line, first unrecognized character is `H'
/tmp/ccKFrDMm.s:26: Error: junk at end of line, first unrecognized character is `H'
/tmp/ccKFrDMm.s:27: Error: junk at end of line, first unrecognized character is `H'
make[5]: *** [scripts/Makefile.build:194: drivers/perf/hisilicon/hisi_uncore_pmu.o] Error 1
In file included from ./include/linux/module.h:22,
                 from ./include/linux/device/driver.h:21,
                 from ./include/linux/device.h:32,
                 from ./include/linux/acpi.h:14,
                 from drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c:11:
drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c:556:18: error: expected ‘,’ or ‘;’ before ‘HISI_PMU’
  556 | MODULE_IMPORT_NS(HISI_PMU);
      |                  ^~~~~~~~
./include/linux/moduleparam.h:26:47: note: in definition of macro ‘__MODULE_INFO’
   26 |   = __MODULE_INFO_PREFIX __stringify(tag) "=" info
      |                                               ^~~~
./include/linux/module.h:299:30: note: in expansion of macro ‘MODULE_INFO’
  299 | #define MODULE_IMPORT_NS(ns) MODULE_INFO(import_ns, ns)
      |                              ^~~~~~~~~~~
drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c:556:1: note: in expansion of macro ‘MODULE_IMPORT_NS’
  556 | MODULE_IMPORT_NS(HISI_PMU);
      | ^~~~~~~~~~~~~~~~
make[5]: *** [scripts/Makefile.build:194: drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.o] Error 1
make[4]: *** [scripts/Makefile.build:440: drivers/perf/hisilicon] Error 2
make[4]: *** Waiting for unfinished jobs....
make[3]: *** [scripts/Makefile.build:440: drivers/perf] Error 2
make[3]: *** Waiting for unfinished jobs....
make[2]: *** [scripts/Makefile.build:440: drivers] Error 2



More information about the linux-arm-kernel mailing list