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

Yicong Yang yangyicong at huawei.com
Tue Dec 10 05:04:23 PST 2024


On 2024/12/10 20:05, Will Deacon wrote:
> 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?

sure, will rebase on -rc2 and address this.

Thanks.

> 
> 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