mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-04 06:26:43 +07:00
x86: cpu/common*.c, merge detect_ht()
Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
140fc72709
commit
1cd78776c7
@ -330,6 +330,9 @@ void __cpuinit detect_ht(struct cpuinfo_x86 *c)
|
|||||||
if (cpu_has(c, X86_FEATURE_CMP_LEGACY))
|
if (cpu_has(c, X86_FEATURE_CMP_LEGACY))
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
|
if (cpu_has(c, X86_FEATURE_XTOPOLOGY))
|
||||||
|
return;
|
||||||
|
|
||||||
cpuid(1, &eax, &ebx, &ecx, &edx);
|
cpuid(1, &eax, &ebx, &ecx, &edx);
|
||||||
|
|
||||||
smp_num_siblings = (ebx & 0xff0000) >> 16;
|
smp_num_siblings = (ebx & 0xff0000) >> 16;
|
||||||
@ -346,8 +349,11 @@ void __cpuinit detect_ht(struct cpuinfo_x86 *c)
|
|||||||
}
|
}
|
||||||
|
|
||||||
index_msb = get_count_order(smp_num_siblings);
|
index_msb = get_count_order(smp_num_siblings);
|
||||||
|
#ifdef CONFIG_X86_64
|
||||||
|
c->phys_proc_id = phys_pkg_id(index_msb);
|
||||||
|
#else
|
||||||
c->phys_proc_id = phys_pkg_id(c->initial_apicid, index_msb);
|
c->phys_proc_id = phys_pkg_id(c->initial_apicid, index_msb);
|
||||||
|
#endif
|
||||||
|
|
||||||
smp_num_siblings = smp_num_siblings / c->x86_max_cores;
|
smp_num_siblings = smp_num_siblings / c->x86_max_cores;
|
||||||
|
|
||||||
@ -355,8 +361,13 @@ void __cpuinit detect_ht(struct cpuinfo_x86 *c)
|
|||||||
|
|
||||||
core_bits = get_count_order(c->x86_max_cores);
|
core_bits = get_count_order(c->x86_max_cores);
|
||||||
|
|
||||||
|
#ifdef CONFIG_X86_64
|
||||||
|
c->cpu_core_id = phys_pkg_id(index_msb) &
|
||||||
|
((1 << core_bits) - 1);
|
||||||
|
#else
|
||||||
c->cpu_core_id = phys_pkg_id(c->initial_apicid, index_msb) &
|
c->cpu_core_id = phys_pkg_id(c->initial_apicid, index_msb) &
|
||||||
((1 << core_bits) - 1);
|
((1 << core_bits) - 1);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
out:
|
out:
|
||||||
|
@ -349,7 +349,11 @@ void __cpuinit detect_ht(struct cpuinfo_x86 *c)
|
|||||||
}
|
}
|
||||||
|
|
||||||
index_msb = get_count_order(smp_num_siblings);
|
index_msb = get_count_order(smp_num_siblings);
|
||||||
|
#ifdef CONFIG_X86_64
|
||||||
c->phys_proc_id = phys_pkg_id(index_msb);
|
c->phys_proc_id = phys_pkg_id(index_msb);
|
||||||
|
#else
|
||||||
|
c->phys_proc_id = phys_pkg_id(c->initial_apicid, index_msb);
|
||||||
|
#endif
|
||||||
|
|
||||||
smp_num_siblings = smp_num_siblings / c->x86_max_cores;
|
smp_num_siblings = smp_num_siblings / c->x86_max_cores;
|
||||||
|
|
||||||
@ -357,8 +361,13 @@ void __cpuinit detect_ht(struct cpuinfo_x86 *c)
|
|||||||
|
|
||||||
core_bits = get_count_order(c->x86_max_cores);
|
core_bits = get_count_order(c->x86_max_cores);
|
||||||
|
|
||||||
|
#ifdef CONFIG_X86_64
|
||||||
c->cpu_core_id = phys_pkg_id(index_msb) &
|
c->cpu_core_id = phys_pkg_id(index_msb) &
|
||||||
((1 << core_bits) - 1);
|
((1 << core_bits) - 1);
|
||||||
|
#else
|
||||||
|
c->cpu_core_id = phys_pkg_id(c->initial_apicid, index_msb) &
|
||||||
|
((1 << core_bits) - 1);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
out:
|
out:
|
||||||
|
Loading…
Reference in New Issue
Block a user