From: Yinghai Lu <yhlu.kernel@gmail.com>
To: Ingo Molnar <mingo@elte.hu>, Thomas Gleixner <tglx@linutronix.de>,
"H. Peter Anvin" <hpa@zytor.com>,
Andrew Morton <akpm@linux-foundation.org>
Cc: linux-kernel@vger.kernel.org, Yinghai Lu <yhlu.kernel@gmail.com>
Subject: [PATCH 10/16] x86: cpu common merge detect_ht
Date: Thu, 4 Sep 2008 20:09:08 -0700 [thread overview]
Message-ID: <1220584154-32497-10-git-send-email-yhlu.kernel@gmail.com> (raw)
In-Reply-To: <1220584154-32497-1-git-send-email-yhlu.kernel@gmail.com>
Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
---
arch/x86/kernel/cpu/common.c | 13 ++++++++++++-
arch/x86/kernel/cpu/common_64.c | 9 +++++++++
2 files changed, 21 insertions(+), 1 deletions(-)
diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
index f919120..b2018f7 100644
--- a/arch/x86/kernel/cpu/common.c
+++ b/arch/x86/kernel/cpu/common.c
@@ -330,6 +330,9 @@ void __cpuinit detect_ht(struct cpuinfo_x86 *c)
if (cpu_has(c, X86_FEATURE_CMP_LEGACY))
goto out;
+ if (cpu_has(c, X86_FEATURE_XTOPOLOGY))
+ return;
+
cpuid(1, &eax, &ebx, &ecx, &edx);
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);
+#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);
-
+#endif
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);
+#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) &
((1 << core_bits) - 1);
+#endif
}
out:
diff --git a/arch/x86/kernel/cpu/common_64.c b/arch/x86/kernel/cpu/common_64.c
index f7a2d52..7ac0a00 100644
--- a/arch/x86/kernel/cpu/common_64.c
+++ b/arch/x86/kernel/cpu/common_64.c
@@ -349,7 +349,11 @@ void __cpuinit detect_ht(struct cpuinfo_x86 *c)
}
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);
+#endif
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);
+#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) &
+ ((1 << core_bits) - 1);
+#endif
}
out:
--
1.5.4.5
next prev parent reply other threads:[~2008-09-05 3:12 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-09-05 3:08 [PATCH 01/16] x86: make detect_ht depends on X86_HT Yinghai Lu
2008-09-05 3:09 ` [PATCH 02/16] x86: make header file the same in common_xx.c Yinghai Lu
2008-09-05 3:09 ` [PATCH 03/16] x86: same gdt_page with marco Yinghai Lu
2008-09-05 3:09 ` [PATCH 04/16] x86: cpu common let 64bit code have 32bit only func Yinghai Lu
2008-09-05 3:09 ` [PATCH 05/16] x86: cpu common make 32bit have 64bit only funcs Yinghai Lu
2008-09-05 3:09 ` [PATCH 06/16] x86: cpu commont have same cpu_init with copying and macro Yinghai Lu
2008-09-05 3:09 ` [PATCH 07/16] x86: cpu common merge switch_to_new_gdt Yinghai Lu
2008-09-05 3:09 ` [PATCH 08/16] x86: cpu common merge default_init Yinghai Lu
2008-09-05 3:09 ` [PATCH 09/16] x86: cpu common merge display_cacheinfo Yinghai Lu
2008-09-05 3:09 ` Yinghai Lu [this message]
2008-09-05 3:09 ` [PATCH 11/16] x86: cpu common merge get_cpu_cap Yinghai Lu
2008-09-05 3:09 ` [PATCH 12/16] x86: cpu common merge early_identify_cpu Yinghai Lu
2008-09-05 3:09 ` [PATCH 13/16] x86: cpu common merge print_cpu_info Yinghai Lu
2008-09-05 3:09 ` [PATCH 14/16] x86: cpu common merge generic_identify Yinghai Lu
2008-09-05 3:09 ` [PATCH 15/16] x86: cpu common merge identify_cpu Yinghai Lu
2008-09-05 3:09 ` [PATCH 16/16] x86: use common.c for 64 bit Yinghai Lu
2008-09-05 7:46 ` Ingo Molnar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1220584154-32497-10-git-send-email-yhlu.kernel@gmail.com \
--to=yhlu.kernel@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.