未验证 提交 fe7516a9 编写于 作者: O openeuler-ci-bot 提交者: Gitee

!317 AMD: Fix allmodconfig build issue in amd perf uncore module.

Merge Pull Request from: @haochengxie 
 
Fix allmodconfig compile issue, the error log is as below:
ERROR: ! modpost:"cpu_llc_id" [arch/x86/events/amd/amd-uncore.ko] undefined! 
 
Link:https://gitee.com/openeuler/kernel/pulls/317 
Reviewed-by: Zheng Zengkai <zhengzengkai@huawei.com> 
Signed-off-by: Zheng Zengkai <zhengzengkai@huawei.com> 
...@@ -12,11 +12,11 @@ ...@@ -12,11 +12,11 @@
#include <linux/init.h> #include <linux/init.h>
#include <linux/cpu.h> #include <linux/cpu.h>
#include <linux/cpumask.h> #include <linux/cpumask.h>
#include <linux/cpufeature.h>
#include <linux/smp.h>
#include <asm/cpufeature.h>
#include <asm/perf_event.h> #include <asm/perf_event.h>
#include <asm/msr.h> #include <asm/msr.h>
#include <asm/smp.h>
#define NUM_COUNTERS_NB 4 #define NUM_COUNTERS_NB 4
#define NUM_COUNTERS_L2 4 #define NUM_COUNTERS_L2 4
...@@ -537,7 +537,7 @@ static int amd_uncore_cpu_starting(unsigned int cpu) ...@@ -537,7 +537,7 @@ static int amd_uncore_cpu_starting(unsigned int cpu)
if (amd_uncore_llc) { if (amd_uncore_llc) {
uncore = *per_cpu_ptr(amd_uncore_llc, cpu); uncore = *per_cpu_ptr(amd_uncore_llc, cpu);
uncore->id = per_cpu(cpu_llc_id, cpu); uncore->id = get_llc_id(cpu);
uncore = amd_uncore_find_online_sibling(uncore, amd_uncore_llc); uncore = amd_uncore_find_online_sibling(uncore, amd_uncore_llc);
*per_cpu_ptr(amd_uncore_llc, cpu) = uncore; *per_cpu_ptr(amd_uncore_llc, cpu) = uncore;
...@@ -755,11 +755,9 @@ static int __init amd_uncore_init(void) ...@@ -755,11 +755,9 @@ static int __init amd_uncore_init(void)
fail_llc: fail_llc:
if (boot_cpu_has(X86_FEATURE_PERFCTR_NB)) if (boot_cpu_has(X86_FEATURE_PERFCTR_NB))
perf_pmu_unregister(&amd_nb_pmu); perf_pmu_unregister(&amd_nb_pmu);
if (amd_uncore_llc) free_percpu(amd_uncore_llc);
free_percpu(amd_uncore_llc);
fail_nb: fail_nb:
if (amd_uncore_nb) free_percpu(amd_uncore_nb);
free_percpu(amd_uncore_nb);
return ret; return ret;
} }
......
...@@ -829,6 +829,8 @@ extern int set_tsc_mode(unsigned int val); ...@@ -829,6 +829,8 @@ extern int set_tsc_mode(unsigned int val);
DECLARE_PER_CPU(u64, msr_misc_features_shadow); DECLARE_PER_CPU(u64, msr_misc_features_shadow);
extern u16 get_llc_id(unsigned int cpu);
#ifdef CONFIG_CPU_SUP_AMD #ifdef CONFIG_CPU_SUP_AMD
extern u16 amd_get_nb_id(int cpu); extern u16 amd_get_nb_id(int cpu);
extern u32 amd_get_nodes_per_socket(void); extern u32 amd_get_nodes_per_socket(void);
......
...@@ -445,7 +445,7 @@ static void srat_detect_node(struct cpuinfo_x86 *c) ...@@ -445,7 +445,7 @@ static void srat_detect_node(struct cpuinfo_x86 *c)
node = numa_cpu_node(cpu); node = numa_cpu_node(cpu);
if (node == NUMA_NO_NODE) if (node == NUMA_NO_NODE)
node = per_cpu(cpu_llc_id, cpu); node = get_llc_id(cpu);
/* /*
* On multi-fabric platform (e.g. Numascale NumaChip) a * On multi-fabric platform (e.g. Numascale NumaChip) a
......
...@@ -79,6 +79,12 @@ EXPORT_SYMBOL(smp_num_siblings); ...@@ -79,6 +79,12 @@ EXPORT_SYMBOL(smp_num_siblings);
/* Last level cache ID of each logical CPU */ /* Last level cache ID of each logical CPU */
DEFINE_PER_CPU_READ_MOSTLY(u16, cpu_llc_id) = BAD_APICID; DEFINE_PER_CPU_READ_MOSTLY(u16, cpu_llc_id) = BAD_APICID;
u16 get_llc_id(unsigned int cpu)
{
return per_cpu(cpu_llc_id, cpu);
}
EXPORT_SYMBOL_GPL(get_llc_id);
/* correctly size the local cpu masks */ /* correctly size the local cpu masks */
void __init setup_cpu_local_masks(void) void __init setup_cpu_local_masks(void)
{ {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册