diff options
author | Andreas Herrmann <andreas.herrmann3@amd.com> | 2011-01-24 10:05:40 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2011-01-26 02:28:22 -0500 |
commit | d518573de63fb119e5e9a3137386544671387681 (patch) | |
tree | 79b4706b1d1a2fd54ed9025c7b8320a38c56b944 /arch/x86/kernel/smpboot.c | |
parent | 6663050edd9c2e8b1e1f55c09459144d84c045f0 (diff) |
x86, amd: Normalize compute unit IDs on multi-node processors
On multi-node CPUs we don't need the socket wide compute unit ID
but the node-wide compute unit ID. Thus we need to normalize the
value. This is similar to what we do with cpu_core_id.
A compute unit is then identified by physical_package_id,
node_id, and compute_unit_id.
Signed-off-by: Andreas Herrmann <andreas.herrmann3@amd.com>
LKML-Reference: <1295881543-572552-2-git-send-email-hans.rosenfeld@amd.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/smpboot.c')
-rw-r--r-- | arch/x86/kernel/smpboot.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c index 0cbe8c0b35ed..fbaa2229af5b 100644 --- a/arch/x86/kernel/smpboot.c +++ b/arch/x86/kernel/smpboot.c | |||
@@ -414,6 +414,7 @@ void __cpuinit set_cpu_sibling_map(int cpu) | |||
414 | 414 | ||
415 | if (cpu_has(c, X86_FEATURE_TOPOEXT)) { | 415 | if (cpu_has(c, X86_FEATURE_TOPOEXT)) { |
416 | if (c->phys_proc_id == o->phys_proc_id && | 416 | if (c->phys_proc_id == o->phys_proc_id && |
417 | per_cpu(cpu_llc_id, cpu) == per_cpu(cpu_llc_id, i) && | ||
417 | c->compute_unit_id == o->compute_unit_id) | 418 | c->compute_unit_id == o->compute_unit_id) |
418 | link_thread_siblings(cpu, i); | 419 | link_thread_siblings(cpu, i); |
419 | } else if (c->phys_proc_id == o->phys_proc_id && | 420 | } else if (c->phys_proc_id == o->phys_proc_id && |