Commit e7adcf6c authored by LeoLiu-oc's avatar LeoLiu-oc Committed by Zheng Zengkai
Browse files

Add support for extended topology detection

zhaoxin inclusion
category: feature
bugzilla: https://gitee.com/openeuler/kernel/issues/I40QDN


CVE: NA

----------------------------------------------------------------

Newer Zhaoxin CPUs support get extended topology from CPUID leaf B/1F,
So add support for it.

Signed-off-by: default avatarLeoLiu-oc <LeoLiu-oc@zhaoxin.com>
Signed-off-by: default avatarZheng Zengkai <zhengzengkai@huawei.com>
Reviewed-by: default avatarHanjun Guo <guohanjun@huawei.com>
Signed-off-by: default avatarZheng Zengkai <zhengzengkai@huawei.com>
parent 00b324ae
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -122,6 +122,9 @@ static void early_init_centaur(struct cpuinfo_x86 *c)
		if (edx & (1U << 28))
			c->x86_coreid_bits = get_count_order((ebx >> 16) & 0xff);
	}

	if (detect_extended_topology_early(c) < 0)
		detect_ht_early(c);
}

static void init_centaur(struct cpuinfo_x86 *c)
@@ -140,11 +143,14 @@ static void init_centaur(struct cpuinfo_x86 *c)
	clear_cpu_cap(c, 0*32+31);
#endif
	early_init_centaur(c);
	detect_extended_topology(c);
	init_intel_cacheinfo(c);
	if (!cpu_has(c, X86_FEATURE_XTOPOLOGY)) {
		detect_num_cpu_cores(c);
#ifdef CONFIG_X86_32
	detect_ht(c);
#endif
	}

	if (c->cpuid_level > 9) {
		unsigned int eax = cpuid_eax(10);
+6 −1
Original line number Diff line number Diff line
@@ -79,16 +79,21 @@ static void early_init_zhaoxin(struct cpuinfo_x86 *c)
			c->x86_coreid_bits = get_count_order((ebx >> 16) & 0xff);
	}

	if (detect_extended_topology_early(c) < 0)
		detect_ht_early(c);
}

static void init_zhaoxin(struct cpuinfo_x86 *c)
{
	early_init_zhaoxin(c);
	detect_extended_topology(c);
	init_intel_cacheinfo(c);
	if (!cpu_has(c, X86_FEATURE_XTOPOLOGY)) {
		detect_num_cpu_cores(c);
#ifdef CONFIG_X86_32
	detect_ht(c);
#endif
	}

	if (c->cpuid_level > 9) {
		unsigned int eax = cpuid_eax(10);