From: Andrew Theurer <habanero@us.ibm.com>
To: Keir Fraser <Keir.Fraser@cl.cam.ac.uk>
Cc: xen-devel@lists.xensource.com
Subject: Re: [PATCH] changeset 8831 gets sockets, cores, and siblings wrong
Date: Thu, 16 Feb 2006 12:18:36 -0600 [thread overview]
Message-ID: <43F4C1FC.9000405@us.ibm.com> (raw)
In-Reply-To: <d78f897640ab3448e8e8a283497e9ff1@cl.cam.ac.uk>
[-- Attachment #1: Type: text/plain, Size: 1242 bytes --]
Keir Fraser wrote:
>
> On 15 Feb 2006, at 21:21, Andrew Theurer wrote:
>
>> FWIW, I noticed that changeset 8831 gets the sockets/cores/siblings
>> incorrect on my system. On 8830 I get 4 sockets per node, 2 cores
>> per socket, and 2 threads per core. On 8831 I get 1 socket per node,
>> 2 cores per socket, and 8 threads per core. Xen boot messages still
>> appear to show four distinct physical cpus (sockets). Just wondering
>> if anyone has noticed this behavior.
>
> This all stems from an incorrect value for smp_num_siblings. This
> could come from one of two places:
> 1. Do you get a message 'WARNING: 8 siblings found for CPUx, should
> be 2' during boot? If so, smpboot.c is screwing up the
> smp_num_siblings calculation.
> 2. Otherwise, detect_ht() in arch/x86/cpu/common.c must be the
> culprit, and you'll need to add some tracing to it to find out where
> the value '8' is coming from.
It looks like with changeset 8831 cpu_core_ids are no longer unique
across phys cpus. So, when we search for siblings to populate
cpu_sibling_map, just checking for same core IDs are not good enough.
Both core ID and phys cpu ID have to match. Patch attached fixes this.
-Andrew
<signed-off-by: habanero@us.ibm.com>
[-- Attachment #2: fix_sibling_calc-8849.patch --]
[-- Type: text/x-patch, Size: 685 bytes --]
diff -Naurp xen-unstable.hg-8849/xen/arch/x86/smpboot.c xen-unstable.hg-8849-sibling_fix/xen/arch/x86/smpboot.c
--- xen-unstable.hg-8849/xen/arch/x86/smpboot.c 2006-02-16 12:15:53.000000000 -0600
+++ xen-unstable.hg-8849-sibling_fix/xen/arch/x86/smpboot.c 2006-02-16 12:11:33.000000000 -0600
@@ -1093,7 +1093,8 @@ static void __init smp_boot_cpus(unsigne
for (i = 0; i < NR_CPUS; i++) {
if (!cpu_isset(i, cpu_callout_map))
continue;
- if (cpu_core_id[cpu] == cpu_core_id[i]) {
+ if (cpu_core_id[cpu] == cpu_core_id[i] &&
+ phys_proc_id[cpu] == phys_proc_id[i]) {
siblings++;
cpu_set(i, cpu_sibling_map[cpu]);
}
[-- Attachment #3: Type: text/plain, Size: 138 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
next prev parent reply other threads:[~2006-02-16 18:18 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-02-15 21:21 changeset 8831 gets sockets, cores, and siblings wrong Andrew Theurer
2006-02-16 11:45 ` Keir Fraser
2006-02-16 18:18 ` Andrew Theurer [this message]
2006-02-16 18:27 ` [PATCH] " Keir Fraser
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=43F4C1FC.9000405@us.ibm.com \
--to=habanero@us.ibm.com \
--cc=Keir.Fraser@cl.cam.ac.uk \
--cc=xen-devel@lists.xensource.com \
/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.