All of lore.kernel.org
 help / color / mirror / Atom feed
* [patch] x86: 2.6.31-rc7 crash due to buggy flat_phys_pkg_id
@ 2009-08-24 18:26 Ravikiran G Thirumalai
  2009-08-24 23:53 ` Yinghai Lu
  0 siblings, 1 reply; 28+ messages in thread
From: Ravikiran G Thirumalai @ 2009-08-24 18:26 UTC (permalink / raw)
  To: Ingo Molnar; +Cc: Yinghai Lu, torvalds, linux-kernel, shai

2.6.31-rc7 does not boot on vSMPowered systems.  The sched domains
seem to build incorrectly with error messages of the sort:

[    8.501108] CPU31: Thermal monitoring enabled (TM1)
[    8.501127] CPU 31 MCA banks SHD:2 SHD:3 SHD:5 SHD:6 SHD:8
[    8.650254] CPU31: Intel(R) Xeon(R) CPU           E5540  @ 2.53GHz
stepping 04
[    8.710324] Brought up 32 CPUs
[    8.713916] Total of 32 processors activated (162314.96 BogoMIPS).
[    8.721489] ERROR: parent span is not a superset of domain->span
[    8.727686] ERROR: domain->groups does not contain CPU0
[    8.733091] ERROR: groups don't span domain->span
[    8.737975] ERROR: domain->cpu_power not set
[    8.742416]

This is followed by oopsen in the scheduler code
with NULL pointer deference in find_busiest_group.

Git bisection pointed to the following commit:

commit 2759c3287de27266e06f1f4e82cbd2d65f6a044c
x86: don't call read_apic_id if !cpu_has_apic

Upon examining the history of the commit, the above commit seems to be a fix
for:

commit 4797f6b021a3fa399942245d07a1feb30df81bb8
x86: read apic ID in the !acpi_lapic case

However, there appears to be bug in the commit
2759c3287de27266e06f1f4e82cbd2d65f6a044c, where flat_phys_pkg_id
uses initial apic id instead of hard_smp_processor_id() on SMP machines.
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=2759c3287de27266e06f1f4e82cbd2d65f6a044c

This patch fixes the bug and causes vSMPowered systems to boot up
correctly,

Signed-off-by: Ravikiran Thirumalai <kiran@scalex86.org>
Cc: Yinghai Lu <yinghai@kernel.org>

Index: linux-2.6.31-rc6/arch/x86/kernel/apic/apic_flat_64.c
===================================================================
--- linux-2.6.31-rc6.orig/arch/x86/kernel/apic/apic_flat_64.c	2009-08-21 12:42:16.000000000 -0700
+++ linux-2.6.31-rc6/arch/x86/kernel/apic/apic_flat_64.c	2009-08-21 14:12:21.654837472 -0700
@@ -161,7 +161,8 @@ static int flat_apic_id_registered(void)
 
 static int flat_phys_pkg_id(int initial_apic_id, int index_msb)
 {
-	return initial_apic_id >> index_msb;
+	return cpu_has_apic ? hard_smp_processor_id() >> index_msb :
+	    initial_apic_id >> index_msb;
 }
 
 struct apic apic_flat =  {

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [patch] x86: 2.6.31-rc7 crash due to buggy flat_phys_pkg_id
  2009-08-24 18:26 [patch] x86: 2.6.31-rc7 crash due to buggy flat_phys_pkg_id Ravikiran G Thirumalai
@ 2009-08-24 23:53 ` Yinghai Lu
  2009-08-25  0:27   ` Yinghai Lu
  2009-08-25  1:26   ` Ravikiran G Thirumalai
  0 siblings, 2 replies; 28+ messages in thread
From: Yinghai Lu @ 2009-08-24 23:53 UTC (permalink / raw)
  To: Ravikiran G Thirumalai; +Cc: Ingo Molnar, torvalds, linux-kernel, shai

Ravikiran G Thirumalai wrote:
> 2.6.31-rc7 does not boot on vSMPowered systems.  The sched domains
> seem to build incorrectly with error messages of the sort:
> 
> [    8.501108] CPU31: Thermal monitoring enabled (TM1)
> [    8.501127] CPU 31 MCA banks SHD:2 SHD:3 SHD:5 SHD:6 SHD:8
> [    8.650254] CPU31: Intel(R) Xeon(R) CPU           E5540  @ 2.53GHz
> stepping 04
> [    8.710324] Brought up 32 CPUs
> [    8.713916] Total of 32 processors activated (162314.96 BogoMIPS).
> [    8.721489] ERROR: parent span is not a superset of domain->span
> [    8.727686] ERROR: domain->groups does not contain CPU0
> [    8.733091] ERROR: groups don't span domain->span
> [    8.737975] ERROR: domain->cpu_power not set
> [    8.742416]
> 
> This is followed by oopsen in the scheduler code
> with NULL pointer deference in find_busiest_group.
> 
> Git bisection pointed to the following commit:
> 
> commit 2759c3287de27266e06f1f4e82cbd2d65f6a044c
> x86: don't call read_apic_id if !cpu_has_apic
> 
> Upon examining the history of the commit, the above commit seems to be a fix
> for:
> 
> commit 4797f6b021a3fa399942245d07a1feb30df81bb8
> x86: read apic ID in the !acpi_lapic case
> 
> However, there appears to be bug in the commit
> 2759c3287de27266e06f1f4e82cbd2d65f6a044c, where flat_phys_pkg_id
> uses initial apic id instead of hard_smp_processor_id() on SMP machines.
> http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=2759c3287de27266e06f1f4e82cbd2d65f6a044c
> 
> This patch fixes the bug and causes vSMPowered systems to boot up
> correctly,
> 
> Signed-off-by: Ravikiran Thirumalai <kiran@scalex86.org>
> Cc: Yinghai Lu <yinghai@kernel.org>
> 
> Index: linux-2.6.31-rc6/arch/x86/kernel/apic/apic_flat_64.c
> ===================================================================
> --- linux-2.6.31-rc6.orig/arch/x86/kernel/apic/apic_flat_64.c	2009-08-21 12:42:16.000000000 -0700
> +++ linux-2.6.31-rc6/arch/x86/kernel/apic/apic_flat_64.c	2009-08-21 14:12:21.654837472 -0700
> @@ -161,7 +161,8 @@ static int flat_apic_id_registered(void)
>  
>  static int flat_phys_pkg_id(int initial_apic_id, int index_msb)
>  {
> -	return initial_apic_id >> index_msb;
> +	return cpu_has_apic ? hard_smp_processor_id() >> index_msb :
> +	    initial_apic_id >> index_msb;
>  }

it seems we should use initial apic id here.

can you check which calling for vsmp cause the problem?
arch/x86/kernel/cpu/addon_cpuid_features.c:     c->cpu_core_id = apic->phys_pkg_id(c->initial_apicid, ht_mask_width)
arch/x86/kernel/cpu/addon_cpuid_features.c:     c->phys_proc_id = apic->phys_pkg_id(c->initial_apicid, core_plus_mask_width
);
arch/x86/kernel/cpu/addon_cpuid_features.c:     c->apicid = apic->phys_pkg_id(c->initial_apicid, 0);
arch/x86/kernel/cpu/common.c:   c->phys_proc_id = apic->phys_pkg_id(c->initial_apicid, index_msb);
arch/x86/kernel/cpu/common.c:   c->cpu_core_id = apic->phys_pkg_id(c->initial_apicid, index_msb) &
arch/x86/kernel/cpu/common.c:           c->apicid = apic->phys_pkg_id(c->initial_apicid, 0);
arch/x86/kernel/cpu/common.c:   c->apicid = apic->phys_pkg_id(c->initial_apicid, 0);

YH

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [patch] x86: 2.6.31-rc7 crash due to buggy flat_phys_pkg_id
  2009-08-24 23:53 ` Yinghai Lu
@ 2009-08-25  0:27   ` Yinghai Lu
  2009-08-25  1:38     ` Ravikiran G Thirumalai
  2009-08-25  1:26   ` Ravikiran G Thirumalai
  1 sibling, 1 reply; 28+ messages in thread
From: Yinghai Lu @ 2009-08-25  0:27 UTC (permalink / raw)
  To: Ravikiran G Thirumalai; +Cc: Ingo Molnar, torvalds, linux-kernel, shai

Yinghai Lu wrote:
> Ravikiran G Thirumalai wrote:
>> 2.6.31-rc7 does not boot on vSMPowered systems.  The sched domains
>> seem to build incorrectly with error messages of the sort:
>>
>> [    8.501108] CPU31: Thermal monitoring enabled (TM1)
>> [    8.501127] CPU 31 MCA banks SHD:2 SHD:3 SHD:5 SHD:6 SHD:8
>> [    8.650254] CPU31: Intel(R) Xeon(R) CPU           E5540  @ 2.53GHz
>> stepping 04
>> [    8.710324] Brought up 32 CPUs
>> [    8.713916] Total of 32 processors activated (162314.96 BogoMIPS).
>> [    8.721489] ERROR: parent span is not a superset of domain->span
>> [    8.727686] ERROR: domain->groups does not contain CPU0
>> [    8.733091] ERROR: groups don't span domain->span
>> [    8.737975] ERROR: domain->cpu_power not set
>> [    8.742416]
>>
>> This is followed by oopsen in the scheduler code
>> with NULL pointer deference in find_busiest_group.
>>
>> Git bisection pointed to the following commit:
>>
>> commit 2759c3287de27266e06f1f4e82cbd2d65f6a044c
>> x86: don't call read_apic_id if !cpu_has_apic
>>
>> Upon examining the history of the commit, the above commit seems to be a fix
>> for:
>>
>> commit 4797f6b021a3fa399942245d07a1feb30df81bb8
>> x86: read apic ID in the !acpi_lapic case
>>
>> However, there appears to be bug in the commit
>> 2759c3287de27266e06f1f4e82cbd2d65f6a044c, where flat_phys_pkg_id
>> uses initial apic id instead of hard_smp_processor_id() on SMP machines.
>> http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=2759c3287de27266e06f1f4e82cbd2d65f6a044c
>>
>> This patch fixes the bug and causes vSMPowered systems to boot up
>> correctly,

can you check if this one fix your problem?

BTW: what does your /proc/cpuinfo print about apic id and initial apic id?

[PATCH] x86: use read_apic_id to get apic id

and leave phys_proc_id to use initial apic id.

---
 arch/x86/kernel/cpu/common.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Index: linux-2.6/arch/x86/kernel/cpu/common.c
===================================================================
--- linux-2.6.orig/arch/x86/kernel/cpu/common.c
+++ linux-2.6/arch/x86/kernel/cpu/common.c
@@ -715,7 +715,7 @@ static void __cpuinit generic_identify(s
 		c->initial_apicid = (cpuid_ebx(1) >> 24) & 0xFF;
 #ifdef CONFIG_X86_32
 # ifdef CONFIG_X86_HT
-		c->apicid = apic->phys_pkg_id(c->initial_apicid, 0);
+		c->apicid = read_apic_id();
 # else
 		c->apicid = c->initial_apicid;
 # endif
@@ -772,7 +772,7 @@ static void __cpuinit identify_cpu(struc
 	}
 
 #ifdef CONFIG_X86_64
-	c->apicid = apic->phys_pkg_id(c->initial_apicid, 0);
+	c->apicid = read_apic_id();
 #endif
 
 	/*


^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [patch] x86: 2.6.31-rc7 crash due to buggy flat_phys_pkg_id
  2009-08-24 23:53 ` Yinghai Lu
  2009-08-25  0:27   ` Yinghai Lu
@ 2009-08-25  1:26   ` Ravikiran G Thirumalai
  2009-08-25  5:12     ` Yinghai Lu
  1 sibling, 1 reply; 28+ messages in thread
From: Ravikiran G Thirumalai @ 2009-08-25  1:26 UTC (permalink / raw)
  To: Yinghai Lu; +Cc: Ingo Molnar, torvalds, linux-kernel, shai

On Mon, Aug 24, 2009 at 04:53:45PM -0700, Yinghai Lu wrote:
>Ravikiran G Thirumalai wrote:
>> 
>> Signed-off-by: Ravikiran Thirumalai <kiran@scalex86.org>
>> Cc: Yinghai Lu <yinghai@kernel.org>
>> 
>> Index: linux-2.6.31-rc6/arch/x86/kernel/apic/apic_flat_64.c
>> ===================================================================
>> --- linux-2.6.31-rc6.orig/arch/x86/kernel/apic/apic_flat_64.c	2009-08-21 12:42:16.000000000 -0700
>> +++ linux-2.6.31-rc6/arch/x86/kernel/apic/apic_flat_64.c	2009-08-21 14:12:21.654837472 -0700
>> @@ -161,7 +161,8 @@ static int flat_apic_id_registered(void)
>>  
>>  static int flat_phys_pkg_id(int initial_apic_id, int index_msb)
>>  {
>> -	return initial_apic_id >> index_msb;
>> +	return cpu_has_apic ? hard_smp_processor_id() >> index_msb :
>> +	    initial_apic_id >> index_msb;
>>  }
>
>it seems we should use initial apic id here.
>

Why?  The specs seem to indicate otherwise unless I am mistaken --
Intel  systems programming guide, Vol 3A Part1, chapter 7 section
7.5.5 - Identifying Logical Processors in a MP system:
<quote>
After the BIOS has completed the MP initialization protocol, each logical
processor can be uniquely identified by its local APIC ID. Software can
access these APIC IDs in either of the following ways
</quote>
phys_pkg_id() indicates that the logical package id is being looked up,
so local apic id should be used here no?
What am I missing?


>can you check which calling for vsmp cause the problem?
>arch/x86/kernel/cpu/addon_cpuid_features.c:     c->cpu_core_id = apic->phys_pkg_id(c->initial_apicid, ht_mask_width)
>arch/x86/kernel/cpu/addon_cpuid_features.c:     c->phys_proc_id = apic->phys_pkg_id(c->initial_apicid, core_plus_mask_width
>);
>arch/x86/kernel/cpu/addon_cpuid_features.c:     c->apicid = apic->phys_pkg_id(c->initial_apicid, 0);

The above are definitely problematic.  Anyplace that uses phys_pkg_id to get
the unique pkg id of a logical processor will have problems.

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [patch] x86: 2.6.31-rc7 crash due to buggy flat_phys_pkg_id
  2009-08-25  0:27   ` Yinghai Lu
@ 2009-08-25  1:38     ` Ravikiran G Thirumalai
  2009-08-25  5:03       ` Yinghai Lu
  0 siblings, 1 reply; 28+ messages in thread
From: Ravikiran G Thirumalai @ 2009-08-25  1:38 UTC (permalink / raw)
  To: Yinghai Lu; +Cc: Ingo Molnar, torvalds, linux-kernel, shai

[-- Attachment #1: Type: text/plain, Size: 317 bytes --]

On Mon, Aug 24, 2009 at 05:27:03PM -0700, Yinghai Lu wrote:
>Yinghai Lu wrote:
>> Ravikiran G Thirumalai wrote:
>can you check if this one fix your problem?
>

Nope it doesn't :(


>BTW: what does your /proc/cpuinfo print about apic id and initial apic id?
>

Here's a sample cpuinfo from an older kernel (attached)


[-- Attachment #2: cpuinfo --]
[-- Type: text/plain, Size: 42736 bytes --]

processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 0
siblings	: 4
core id		: 0
cpu cores	: 4
cpu cores	: 4
apicid		: 0
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5871.22
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 1
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 0
siblings	: 4
core id		: 1
cpu cores	: 4
cpu cores	: 4
apicid		: 2
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5852.70
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 2
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 0
siblings	: 4
core id		: 2
cpu cores	: 4
cpu cores	: 4
apicid		: 4
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5852.83
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 3
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 0
siblings	: 4
core id		: 3
cpu cores	: 4
cpu cores	: 4
apicid		: 6
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5852.59
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 4
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 1
siblings	: 4
core id		: 0
cpu cores	: 4
cpu cores	: 4
apicid		: 16
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5853.76
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 5
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 1
siblings	: 4
core id		: 1
cpu cores	: 4
cpu cores	: 4
apicid		: 18
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5853.72
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 6
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 1
siblings	: 4
core id		: 2
cpu cores	: 4
cpu cores	: 4
apicid		: 20
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5856.30
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 7
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 1
siblings	: 4
core id		: 3
cpu cores	: 4
cpu cores	: 4
apicid		: 22
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5856.34
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 8
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 2
siblings	: 4
core id		: 0
cpu cores	: 4
cpu cores	: 4
apicid		: 32
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5865.94
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 9
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 2
siblings	: 4
core id		: 1
cpu cores	: 4
cpu cores	: 4
apicid		: 34
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5866.71
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 10
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 2
siblings	: 4
core id		: 2
cpu cores	: 4
cpu cores	: 4
apicid		: 36
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5867.00
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 11
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 2
siblings	: 4
core id		: 3
cpu cores	: 4
cpu cores	: 4
apicid		: 38
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5866.25
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 12
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 3
siblings	: 4
core id		: 0
cpu cores	: 4
cpu cores	: 4
apicid		: 48
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5867.65
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 13
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 3
siblings	: 4
core id		: 1
cpu cores	: 4
cpu cores	: 4
apicid		: 50
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5867.00
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 14
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 3
siblings	: 4
core id		: 2
cpu cores	: 4
cpu cores	: 4
apicid		: 52
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5869.20
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 15
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 3
siblings	: 4
core id		: 3
cpu cores	: 4
cpu cores	: 4
apicid		: 54
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5868.63
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 16
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 4
siblings	: 4
core id		: 0
cpu cores	: 4
cpu cores	: 4
apicid		: 64
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5866.64
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 17
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 4
siblings	: 4
core id		: 1
cpu cores	: 4
cpu cores	: 4
apicid		: 66
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5867.55
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 18
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 4
siblings	: 4
core id		: 2
cpu cores	: 4
cpu cores	: 4
apicid		: 68
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5867.31
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 19
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 4
siblings	: 4
core id		: 3
cpu cores	: 4
cpu cores	: 4
apicid		: 70
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5867.64
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 20
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 5
siblings	: 4
core id		: 0
cpu cores	: 4
cpu cores	: 4
apicid		: 80
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5868.43
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 21
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 5
siblings	: 4
core id		: 1
cpu cores	: 4
cpu cores	: 4
apicid		: 82
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5869.26
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 22
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 5
siblings	: 4
core id		: 2
cpu cores	: 4
cpu cores	: 4
apicid		: 84
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5867.89
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 23
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 5
siblings	: 4
core id		: 3
cpu cores	: 4
cpu cores	: 4
apicid		: 86
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5870.31
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 24
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 6
siblings	: 4
core id		: 0
cpu cores	: 4
cpu cores	: 4
apicid		: 96
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5867.04
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 25
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 6
siblings	: 4
core id		: 1
cpu cores	: 4
cpu cores	: 4
apicid		: 98
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5866.62
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 26
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 6
siblings	: 4
core id		: 2
cpu cores	: 4
cpu cores	: 4
apicid		: 100
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5865.17
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 27
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 6
siblings	: 4
core id		: 3
cpu cores	: 4
cpu cores	: 4
apicid		: 102
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5864.31
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 28
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 7
siblings	: 4
core id		: 0
cpu cores	: 4
cpu cores	: 4
apicid		: 112
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5867.86
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 29
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 7
siblings	: 4
core id		: 1
cpu cores	: 4
cpu cores	: 4
apicid		: 114
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5868.98
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 30
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 7
siblings	: 4
core id		: 2
cpu cores	: 4
cpu cores	: 4
apicid		: 116
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5869.39
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 31
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 7
siblings	: 4
core id		: 3
cpu cores	: 4
cpu cores	: 4
apicid		: 118
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5866.46
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 32
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 8
siblings	: 4
core id		: 0
cpu cores	: 4
cpu cores	: 4
apicid		: 128
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5868.26
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 33
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 8
siblings	: 4
core id		: 1
cpu cores	: 4
cpu cores	: 4
apicid		: 130
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5867.83
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 34
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 8
siblings	: 4
core id		: 2
cpu cores	: 4
cpu cores	: 4
apicid		: 132
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5866.41
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 35
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 8
siblings	: 4
core id		: 3
cpu cores	: 4
cpu cores	: 4
apicid		: 134
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5866.10
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 36
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 9
siblings	: 4
core id		: 0
cpu cores	: 4
cpu cores	: 4
apicid		: 144
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5867.94
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 37
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 9
siblings	: 4
core id		: 1
cpu cores	: 4
cpu cores	: 4
apicid		: 146
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5868.10
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 38
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 9
siblings	: 4
core id		: 2
cpu cores	: 4
cpu cores	: 4
apicid		: 148
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5868.16
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 39
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 9
siblings	: 4
core id		: 3
cpu cores	: 4
cpu cores	: 4
apicid		: 150
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5870.76
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 40
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 10
siblings	: 4
core id		: 0
cpu cores	: 4
cpu cores	: 4
apicid		: 160
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5867.80
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 41
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 10
siblings	: 4
core id		: 1
cpu cores	: 4
cpu cores	: 4
apicid		: 162
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5868.70
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 42
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 10
siblings	: 4
core id		: 2
cpu cores	: 4
cpu cores	: 4
apicid		: 164
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5868.25
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 43
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 10
siblings	: 4
core id		: 3
cpu cores	: 4
cpu cores	: 4
apicid		: 166
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5866.27
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 44
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 11
siblings	: 4
core id		: 0
cpu cores	: 4
cpu cores	: 4
apicid		: 176
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5869.09
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 45
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 11
siblings	: 4
core id		: 1
cpu cores	: 4
cpu cores	: 4
apicid		: 178
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5869.89
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 46
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 11
siblings	: 4
core id		: 2
cpu cores	: 4
cpu cores	: 4
apicid		: 180
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5871.30
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 47
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 11
siblings	: 4
core id		: 3
cpu cores	: 4
cpu cores	: 4
apicid		: 182
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5869.35
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 48
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 12
siblings	: 4
core id		: 0
cpu cores	: 4
cpu cores	: 4
apicid		: 192
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5868.68
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 49
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 12
siblings	: 4
core id		: 1
cpu cores	: 4
cpu cores	: 4
apicid		: 194
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5867.43
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 50
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 12
siblings	: 4
core id		: 2
cpu cores	: 4
cpu cores	: 4
apicid		: 196
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5865.60
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 51
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 12
siblings	: 4
core id		: 3
cpu cores	: 4
cpu cores	: 4
apicid		: 198
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5866.01
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 52
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 13
siblings	: 4
core id		: 0
cpu cores	: 4
cpu cores	: 4
apicid		: 208
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5868.82
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 53
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 13
siblings	: 4
core id		: 1
cpu cores	: 4
cpu cores	: 4
apicid		: 210
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5869.69
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 54
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 13
siblings	: 4
core id		: 2
cpu cores	: 4
cpu cores	: 4
apicid		: 212
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5867.73
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 55
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 13
siblings	: 4
core id		: 3
cpu cores	: 4
cpu cores	: 4
apicid		: 214
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5866.55
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 56
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 14
siblings	: 4
core id		: 0
cpu cores	: 4
cpu cores	: 4
apicid		: 224
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5868.81
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 57
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 14
siblings	: 4
core id		: 1
cpu cores	: 4
cpu cores	: 4
apicid		: 226
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5869.90
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 58
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 14
siblings	: 4
core id		: 2
cpu cores	: 4
cpu cores	: 4
apicid		: 228
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5870.19
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 59
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 14
siblings	: 4
core id		: 3
cpu cores	: 4
cpu cores	: 4
apicid		: 230
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5870.07
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 60
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 15
siblings	: 4
core id		: 0
cpu cores	: 4
cpu cores	: 4
apicid		: 240
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5869.63
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 61
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 15
siblings	: 4
core id		: 1
cpu cores	: 4
cpu cores	: 4
apicid		: 242
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5870.38
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 62
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 15
siblings	: 4
core id		: 2
cpu cores	: 4
cpu cores	: 4
apicid		: 244
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5870.10
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 63
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
stepping	: 5
cpu MHz		: 2926.327
cache size	: 8192 KB
physical id	: 15
siblings	: 4
core id		: 3
cpu cores	: 4
cpu cores	: 4
apicid		: 246
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc pni ds_cpl vmx est tm2 ssse3 cx16 xtpr dca popcnt lahf_lm
bogomips	: 5870.64
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:


^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [patch] x86: 2.6.31-rc7 crash due to buggy flat_phys_pkg_id
  2009-08-25  1:38     ` Ravikiran G Thirumalai
@ 2009-08-25  5:03       ` Yinghai Lu
  0 siblings, 0 replies; 28+ messages in thread
From: Yinghai Lu @ 2009-08-25  5:03 UTC (permalink / raw)
  To: Ravikiran G Thirumalai; +Cc: Ingo Molnar, torvalds, linux-kernel, shai

Ravikiran G Thirumalai wrote:
> On Mon, Aug 24, 2009 at 05:27:03PM -0700, Yinghai Lu wrote:
>> Yinghai Lu wrote:
>>> Ravikiran G Thirumalai wrote:
>> can you check if this one fix your problem?
>>
> 
> Nope it doesn't :(

then there is other path

> 
> 
>> BTW: what does your /proc/cpuinfo print about apic id and initial apic id?
>>
> 
> Here's a sample cpuinfo from an older kernel (attached)
> 
> 

why there is two lines cores?

also we should have initial apic id field...

YH

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [patch] x86: 2.6.31-rc7 crash due to buggy flat_phys_pkg_id
  2009-08-25  1:26   ` Ravikiran G Thirumalai
@ 2009-08-25  5:12     ` Yinghai Lu
  2009-08-25 17:17       ` Ravikiran G Thirumalai
  0 siblings, 1 reply; 28+ messages in thread
From: Yinghai Lu @ 2009-08-25  5:12 UTC (permalink / raw)
  To: Ravikiran G Thirumalai
  Cc: Ingo Molnar, torvalds, linux-kernel, shai, Suresh Siddha

Ravikiran G Thirumalai wrote:
> On Mon, Aug 24, 2009 at 04:53:45PM -0700, Yinghai Lu wrote:
>> Ravikiran G Thirumalai wrote:
>>> Signed-off-by: Ravikiran Thirumalai <kiran@scalex86.org>
>>> Cc: Yinghai Lu <yinghai@kernel.org>
>>>
>>> Index: linux-2.6.31-rc6/arch/x86/kernel/apic/apic_flat_64.c
>>> ===================================================================
>>> --- linux-2.6.31-rc6.orig/arch/x86/kernel/apic/apic_flat_64.c	2009-08-21 12:42:16.000000000 -0700
>>> +++ linux-2.6.31-rc6/arch/x86/kernel/apic/apic_flat_64.c	2009-08-21 14:12:21.654837472 -0700
>>> @@ -161,7 +161,8 @@ static int flat_apic_id_registered(void)
>>>  
>>>  static int flat_phys_pkg_id(int initial_apic_id, int index_msb)
>>>  {
>>> -	return initial_apic_id >> index_msb;
>>> +	return cpu_has_apic ? hard_smp_processor_id() >> index_msb :
>>> +	    initial_apic_id >> index_msb;
>>>  }
>> it seems we should use initial apic id here.
>>
> 
> Why?  The specs seem to indicate otherwise unless I am mistaken --
> Intel  systems programming guide, Vol 3A Part1, chapter 7 section
> 7.5.5 - Identifying Logical Processors in a MP system:
> <quote>
> After the BIOS has completed the MP initialization protocol, each logical
> processor can be uniquely identified by its local APIC ID. Software can
> access these APIC IDs in either of the following ways
> </quote>
> phys_pkg_id() indicates that the logical package id is being looked up,
> so local apic id should be used here no?
> What am I missing?

initial apic id : it can not changed, there is fixed mapping from that to physical processor id aka socket id / node id.

apic id: could be changed by BIOS to any value. there is no good way to get phys_pkg_id from that.

> 
> 
>> can you check which calling for vsmp cause the problem?
>> arch/x86/kernel/cpu/addon_cpuid_features.c:     c->cpu_core_id = apic->phys_pkg_id(c->initial_apicid, ht_mask_width)
>> arch/x86/kernel/cpu/addon_cpuid_features.c:     c->phys_proc_id = apic->phys_pkg_id(c->initial_apicid, core_plus_mask_width
>> );
>> arch/x86/kernel/cpu/addon_cpuid_features.c:     c->apicid = apic->phys_pkg_id(c->initial_apicid, 0);
> 
> The above are definitely problematic.  Anyplace that uses phys_pkg_id to get
> the unique pkg id of a logical processor will have problems.

that is from intel new cpuid(0x0b) leaf, that is with initial_apicid according to intel EDS.

we need to figure out your initial apic id. and find out good way for phys_pkg_id.
and may need to modify apic->phys_pkg_id member according to dmi info.

YH

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [patch] x86: 2.6.31-rc7 crash due to buggy flat_phys_pkg_id
  2009-08-25  5:12     ` Yinghai Lu
@ 2009-08-25 17:17       ` Ravikiran G Thirumalai
  2009-08-25 18:15         ` Ingo Molnar
  0 siblings, 1 reply; 28+ messages in thread
From: Ravikiran G Thirumalai @ 2009-08-25 17:17 UTC (permalink / raw)
  To: Yinghai Lu; +Cc: Ingo Molnar, torvalds, linux-kernel, shai, Suresh Siddha

On Mon, Aug 24, 2009 at 10:12:01PM -0700, Yinghai Lu wrote:
>Ravikiran G Thirumalai wrote:
>> On Mon, Aug 24, 2009 at 04:53:45PM -0700, Yinghai Lu wrote:
>>> Ravikiran G Thirumalai wrote:
>>>> Signed-off-by: Ravikiran Thirumalai <kiran@scalex86.org>
>>>> Cc: Yinghai Lu <yinghai@kernel.org>
>>>>
>>>
>> 
>> Why?  The specs seem to indicate otherwise unless I am mistaken --
>> Intel  systems programming guide, Vol 3A Part1, chapter 7 section
>> 7.5.5 - Identifying Logical Processors in a MP system:
>> <quote>
>> After the BIOS has completed the MP initialization protocol, each logical
>> processor can be uniquely identified by its local APIC ID. Software can
>> access these APIC IDs in either of the following ways
>> </quote>
>> phys_pkg_id() indicates that the logical package id is being looked up,
>> so local apic id should be used here no?
>> What am I missing?
>
>initial apic id : it can not changed, there is fixed mapping from that to physical processor id aka socket id / node id.
>
>apic id: could be changed by BIOS to any value. there is no good way to get phys_pkg_id from that.
>

But BIOS is supposed to change it to a sane value.  Until 2.6.30, local apic
id has been used to get phys_pkg_id for the 'flat' apics!  What changed?  Was
this changed for a BIOS bug?  Even the intel books seem to indicate local
apic usage!

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [patch] x86: 2.6.31-rc7 crash due to buggy flat_phys_pkg_id
  2009-08-25 17:17       ` Ravikiran G Thirumalai
@ 2009-08-25 18:15         ` Ingo Molnar
  2009-08-25 18:31           ` Cyrill Gorcunov
  2009-08-25 18:35           ` Yinghai Lu
  0 siblings, 2 replies; 28+ messages in thread
From: Ingo Molnar @ 2009-08-25 18:15 UTC (permalink / raw)
  To: Ravikiran G Thirumalai
  Cc: Yinghai Lu, torvalds, linux-kernel, shai, Suresh Siddha


* Ravikiran G Thirumalai <kiran@scalex86.org> wrote:

> On Mon, Aug 24, 2009 at 10:12:01PM -0700, Yinghai Lu wrote:
> >Ravikiran G Thirumalai wrote:
> >> On Mon, Aug 24, 2009 at 04:53:45PM -0700, Yinghai Lu wrote:
> >>> Ravikiran G Thirumalai wrote:
> >>>> Signed-off-by: Ravikiran Thirumalai <kiran@scalex86.org>
> >>>> Cc: Yinghai Lu <yinghai@kernel.org>
> >>>>
> >>>
> >> 
> >> Why?  The specs seem to indicate otherwise unless I am mistaken --
> >> Intel  systems programming guide, Vol 3A Part1, chapter 7 section
> >> 7.5.5 - Identifying Logical Processors in a MP system:
> >> <quote>
> >> After the BIOS has completed the MP initialization protocol, each logical
> >> processor can be uniquely identified by its local APIC ID. Software can
> >> access these APIC IDs in either of the following ways
> >> </quote>
> >> phys_pkg_id() indicates that the logical package id is being looked up,
> >> so local apic id should be used here no?
> >> What am I missing?
> >
> >initial apic id : it can not changed, there is fixed mapping from that to physical processor id aka socket id / node id.
> >
> >apic id: could be changed by BIOS to any value. there is no good way to get phys_pkg_id from that.
> >
> 
> But BIOS is supposed to change it to a sane value.  Until 2.6.30, 
> local apic id has been used to get phys_pkg_id for the 'flat' 
> apics!  What changed?  Was this changed for a BIOS bug?  Even the 
> intel books seem to indicate local apic usage!

We should revert to the .30 behavior unless there's a good reason 
(even in that case we'll solve the regression and do a workaround 
for vSMP). Yinghai?

	Ingo

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [patch] x86: 2.6.31-rc7 crash due to buggy flat_phys_pkg_id
  2009-08-25 18:15         ` Ingo Molnar
@ 2009-08-25 18:31           ` Cyrill Gorcunov
  2009-08-25 18:50             ` Yinghai Lu
  2009-08-25 19:20             ` Ravikiran G Thirumalai
  2009-08-25 18:35           ` Yinghai Lu
  1 sibling, 2 replies; 28+ messages in thread
From: Cyrill Gorcunov @ 2009-08-25 18:31 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Ravikiran G Thirumalai, Yinghai Lu, torvalds, linux-kernel, shai,
	Suresh Siddha

[Ingo Molnar - Tue, Aug 25, 2009 at 08:15:00PM +0200]
| 
| * Ravikiran G Thirumalai <kiran@scalex86.org> wrote:
| 
| > On Mon, Aug 24, 2009 at 10:12:01PM -0700, Yinghai Lu wrote:
| > >Ravikiran G Thirumalai wrote:
| > >> On Mon, Aug 24, 2009 at 04:53:45PM -0700, Yinghai Lu wrote:
| > >>> Ravikiran G Thirumalai wrote:
| > >>>> Signed-off-by: Ravikiran Thirumalai <kiran@scalex86.org>
| > >>>> Cc: Yinghai Lu <yinghai@kernel.org>
| > >>>>
| > >>>
| > >> 
| > >> Why?  The specs seem to indicate otherwise unless I am mistaken --
| > >> Intel  systems programming guide, Vol 3A Part1, chapter 7 section
| > >> 7.5.5 - Identifying Logical Processors in a MP system:
| > >> <quote>
| > >> After the BIOS has completed the MP initialization protocol, each logical
| > >> processor can be uniquely identified by its local APIC ID. Software can
| > >> access these APIC IDs in either of the following ways
| > >> </quote>
| > >> phys_pkg_id() indicates that the logical package id is being looked up,
| > >> so local apic id should be used here no?
| > >> What am I missing?
| > >
| > >initial apic id : it can not changed, there is fixed mapping from that to physical processor id aka socket id / node id.
| > >
| > >apic id: could be changed by BIOS to any value. there is no good way to get phys_pkg_id from that.
| > >
| > 
| > But BIOS is supposed to change it to a sane value.  Until 2.6.30, 
| > local apic id has been used to get phys_pkg_id for the 'flat' 
| > apics!  What changed?  Was this changed for a BIOS bug?  Even the 
| > intel books seem to indicate local apic usage!
| 
| We should revert to the .30 behavior unless there's a good reason 
| (even in that case we'll solve the regression and do a workaround 
| for vSMP). Yinghai?
| 
| 	Ingo

I'm definitely not APIC expert but since I was partially involved
letme turn in.

Original commit which causes problem for vSMP seems to be due
to cpu_has_apic bit turned off (ie due to being manually disabled
or acpi table broken) so further read apic id will return plain
zero (we're talking about 64 bits now). So frnakly I don't understand
what is wrong with Ravikiran's patch. In case of apic disabled
initial apic value will be used anyway (which is latched but
actually may be changed, but it's not our case).

Or perhaps there is an issue in srat numa nodes numbering?

	-- Cyrill

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [patch] x86: 2.6.31-rc7 crash due to buggy flat_phys_pkg_id
  2009-08-25 18:15         ` Ingo Molnar
  2009-08-25 18:31           ` Cyrill Gorcunov
@ 2009-08-25 18:35           ` Yinghai Lu
  1 sibling, 0 replies; 28+ messages in thread
From: Yinghai Lu @ 2009-08-25 18:35 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Ravikiran G Thirumalai, torvalds, linux-kernel, shai, Suresh Siddha

Ingo Molnar wrote:
> * Ravikiran G Thirumalai <kiran@scalex86.org> wrote:
> 
>> On Mon, Aug 24, 2009 at 10:12:01PM -0700, Yinghai Lu wrote:
>>> Ravikiran G Thirumalai wrote:
>>>> On Mon, Aug 24, 2009 at 04:53:45PM -0700, Yinghai Lu wrote:
>>>>> Ravikiran G Thirumalai wrote:
>>>>>> Signed-off-by: Ravikiran Thirumalai <kiran@scalex86.org>
>>>>>> Cc: Yinghai Lu <yinghai@kernel.org>
>>>>>>
>>>> Why?  The specs seem to indicate otherwise unless I am mistaken --
>>>> Intel  systems programming guide, Vol 3A Part1, chapter 7 section
>>>> 7.5.5 - Identifying Logical Processors in a MP system:
>>>> <quote>
>>>> After the BIOS has completed the MP initialization protocol, each logical
>>>> processor can be uniquely identified by its local APIC ID. Software can
>>>> access these APIC IDs in either of the following ways
>>>> </quote>
>>>> phys_pkg_id() indicates that the logical package id is being looked up,
>>>> so local apic id should be used here no?
>>>> What am I missing?
>>> initial apic id : it can not changed, there is fixed mapping from that to physical processor id aka socket id / node id.
>>>
>>> apic id: could be changed by BIOS to any value. there is no good way to get phys_pkg_id from that.
>>>
>> But BIOS is supposed to change it to a sane value.  Until 2.6.30, 
>> local apic id has been used to get phys_pkg_id for the 'flat' 
>> apics!  What changed?  Was this changed for a BIOS bug?  Even the 
>> intel books seem to indicate local apic usage!
> 
> We should revert to the .30 behavior unless there's a good reason 
> (even in that case we'll solve the regression and do a workaround 
> for vSMP). Yinghai?

we should stop overloading phys_pkg_id to get physical processor id (socket id ?) and apic id.

we need to find out what vSMP initial apic id looks like. and have one better phys_pkg_id for it.

otherwise we have problem with intel system that have apic id changing by BIOS too.

YH

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [patch] x86: 2.6.31-rc7 crash due to buggy flat_phys_pkg_id
  2009-08-25 18:31           ` Cyrill Gorcunov
@ 2009-08-25 18:50             ` Yinghai Lu
  2009-08-25 18:57               ` Linus Torvalds
                                 ` (2 more replies)
  2009-08-25 19:20             ` Ravikiran G Thirumalai
  1 sibling, 3 replies; 28+ messages in thread
From: Yinghai Lu @ 2009-08-25 18:50 UTC (permalink / raw)
  To: Cyrill Gorcunov
  Cc: Ingo Molnar, Ravikiran G Thirumalai, torvalds, linux-kernel,
	shai, Suresh Siddha

Cyrill Gorcunov wrote:
> [Ingo Molnar - Tue, Aug 25, 2009 at 08:15:00PM +0200]
> | 
> | * Ravikiran G Thirumalai <kiran@scalex86.org> wrote:
> | 
> | > On Mon, Aug 24, 2009 at 10:12:01PM -0700, Yinghai Lu wrote:
> | > >Ravikiran G Thirumalai wrote:
> | > >> On Mon, Aug 24, 2009 at 04:53:45PM -0700, Yinghai Lu wrote:
> | > >>> Ravikiran G Thirumalai wrote:
> | > >>>> Signed-off-by: Ravikiran Thirumalai <kiran@scalex86.org>
> | > >>>> Cc: Yinghai Lu <yinghai@kernel.org>
> | > >>>>
> | > >>>
> | > >> 
> | > >> Why?  The specs seem to indicate otherwise unless I am mistaken --
> | > >> Intel  systems programming guide, Vol 3A Part1, chapter 7 section
> | > >> 7.5.5 - Identifying Logical Processors in a MP system:
> | > >> <quote>
> | > >> After the BIOS has completed the MP initialization protocol, each logical
> | > >> processor can be uniquely identified by its local APIC ID. Software can
> | > >> access these APIC IDs in either of the following ways
> | > >> </quote>
> | > >> phys_pkg_id() indicates that the logical package id is being looked up,
> | > >> so local apic id should be used here no?
> | > >> What am I missing?
> | > >
> | > >initial apic id : it can not changed, there is fixed mapping from that to physical processor id aka socket id / node id.
> | > >
> | > >apic id: could be changed by BIOS to any value. there is no good way to get phys_pkg_id from that.
> | > >
> | > 
> | > But BIOS is supposed to change it to a sane value.  Until 2.6.30, 
> | > local apic id has been used to get phys_pkg_id for the 'flat' 
> | > apics!  What changed?  Was this changed for a BIOS bug?  Even the 
> | > intel books seem to indicate local apic usage!
> | 
> | We should revert to the .30 behavior unless there's a good reason 
> | (even in that case we'll solve the regression and do a workaround 
> | for vSMP). Yinghai?
> | 
> | 	Ingo
> 
> I'm definitely not APIC expert but since I was partially involved
> letme turn in.
> 
> Original commit which causes problem for vSMP seems to be due
> to cpu_has_apic bit turned off (ie due to being manually disabled
> or acpi table broken) so further read apic id will return plain
> zero (we're talking about 64 bits now). So frnakly I don't understand
> what is wrong with Ravikiran's patch. In case of apic disabled
> initial apic value will be used anyway (which is latched but
> actually may be changed, but it's not our case).

initial apic id and apic id could be different.

and we should use initial apic id to get correct phys pkg id in case BIOS set crazy apic id.

YH

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [patch] x86: 2.6.31-rc7 crash due to buggy flat_phys_pkg_id
  2009-08-25 18:50             ` Yinghai Lu
@ 2009-08-25 18:57               ` Linus Torvalds
  2009-08-25 19:12                 ` Ingo Molnar
  2009-08-25 18:59               ` Cyrill Gorcunov
  2009-08-25 19:27               ` Ravikiran G Thirumalai
  2 siblings, 1 reply; 28+ messages in thread
From: Linus Torvalds @ 2009-08-25 18:57 UTC (permalink / raw)
  To: Yinghai Lu
  Cc: Cyrill Gorcunov, Ingo Molnar, Ravikiran G Thirumalai,
	linux-kernel, shai, Suresh Siddha



On Tue, 25 Aug 2009, Yinghai Lu wrote:
> 
> initial apic id and apic id could be different.
> 
> and we should use initial apic id to get correct phys pkg id in case BIOS set crazy apic id.

Yinghai - I think you missed Cyrills' point.  Let me repeat it:

	"cpu_has_apic bit turned off"

there's no apic. No "initial apic id". No "phys pkg id". No nothing. 

Discussions about "correct phys pkg id" are pointless.

			Linus

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [patch] x86: 2.6.31-rc7 crash due to buggy flat_phys_pkg_id
  2009-08-25 18:50             ` Yinghai Lu
  2009-08-25 18:57               ` Linus Torvalds
@ 2009-08-25 18:59               ` Cyrill Gorcunov
  2009-08-25 19:27               ` Ravikiran G Thirumalai
  2 siblings, 0 replies; 28+ messages in thread
From: Cyrill Gorcunov @ 2009-08-25 18:59 UTC (permalink / raw)
  To: Yinghai Lu
  Cc: Ingo Molnar, Ravikiran G Thirumalai, torvalds, linux-kernel,
	shai, Suresh Siddha

[Yinghai Lu - Tue, Aug 25, 2009 at 11:50:56AM -0700]
...
| > | We should revert to the .30 behavior unless there's a good reason 
| > | (even in that case we'll solve the regression and do a workaround 
| > | for vSMP). Yinghai?
| > | 
| > | 	Ingo
| > 
| > I'm definitely not APIC expert but since I was partially involved
| > letme turn in.
| > 
| > Original commit which causes problem for vSMP seems to be due
| > to cpu_has_apic bit turned off (ie due to being manually disabled
| > or acpi table broken) so further read apic id will return plain
| > zero (we're talking about 64 bits now). So frnakly I don't understand
| > what is wrong with Ravikiran's patch. In case of apic disabled
| > initial apic value will be used anyway (which is latched but
| > actually may be changed, but it's not our case).
| 
| initial apic id and apic id could be different.

yes, I know. initial one is latched by pins though still
could be changed (not always).

| 
| and we should use initial apic id to get correct phys pkg id in case BIOS set crazy apic id.

indeed, as function name implies. Need more code reading...
So (64 bits) at least generic_identify is not guilty since it uses initial
one from scratch. Need more code reading...

| 
| YH
| 
	-- Cyrill

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [patch] x86: 2.6.31-rc7 crash due to buggy flat_phys_pkg_id
  2009-08-25 18:57               ` Linus Torvalds
@ 2009-08-25 19:12                 ` Ingo Molnar
  2009-08-25 19:17                   ` Yinghai Lu
  2009-08-25 19:53                   ` [patch] x86: 2.6.31-rc7 crash due to buggy flat_phys_pkg_id Ravikiran G Thirumalai
  0 siblings, 2 replies; 28+ messages in thread
From: Ingo Molnar @ 2009-08-25 19:12 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Yinghai Lu, Cyrill Gorcunov, Ravikiran G Thirumalai,
	linux-kernel, shai, Suresh Siddha


* Linus Torvalds <torvalds@linux-foundation.org> wrote:

> On Tue, 25 Aug 2009, Yinghai Lu wrote:
> > 
> > initial apic id and apic id could be different.
> > 
> > and we should use initial apic id to get correct phys pkg id in 
> > case BIOS set crazy apic id.
> 
> Yinghai - I think you missed Cyrills' point.  Let me repeat it:
> 
> 	"cpu_has_apic bit turned off"
> 
> there's no apic. No "initial apic id". No "phys pkg id". No 
> nothing.
> 
> Discussions about "correct phys pkg id" are pointless.

that's not the case here though:

[    8.713916] Total of 32 processors activated (162314.96 BogoMIPS).

so APICs are active. The real difference is i think this aspect of 
commit 2759c3287:

 static int flat_phys_pkg_id(int initial_apic_id, int index_msb)
 {
-       return hard_smp_processor_id() >> index_msb;
+       return initial_apic_id >> index_msb;
 }

We need to revert back to .30 behavior here. (In case of which 
environment to trust we almost always trust whatever booted millions 
of Linux boxes in the past already.)

Furthermore, commit 2759c3287 did not declare any side-effects and 
clearly causes a side-effect on vSMP which apparently has an 
overlapping set of initial APIC ids.

Ravikiran, your patch does not do a clear revert of this bit though. 
If you do a plain revert of the line above alone, does that fix the 
problem too?

	Ingo

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [patch] x86: 2.6.31-rc7 crash due to buggy flat_phys_pkg_id
  2009-08-25 19:12                 ` Ingo Molnar
@ 2009-08-25 19:17                   ` Yinghai Lu
  2009-08-25 19:24                     ` Ingo Molnar
  2009-08-25 19:53                   ` [patch] x86: 2.6.31-rc7 crash due to buggy flat_phys_pkg_id Ravikiran G Thirumalai
  1 sibling, 1 reply; 28+ messages in thread
From: Yinghai Lu @ 2009-08-25 19:17 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Linus Torvalds, Cyrill Gorcunov, Ravikiran G Thirumalai,
	linux-kernel, shai, Suresh Siddha

Ingo Molnar wrote:
> * Linus Torvalds <torvalds@linux-foundation.org> wrote:
> 
>> On Tue, 25 Aug 2009, Yinghai Lu wrote:
>>> initial apic id and apic id could be different.
>>>
>>> and we should use initial apic id to get correct phys pkg id in 
>>> case BIOS set crazy apic id.
>> Yinghai - I think you missed Cyrills' point.  Let me repeat it:
>>
>> 	"cpu_has_apic bit turned off"
>>
>> there's no apic. No "initial apic id". No "phys pkg id". No 
>> nothing.
>>
>> Discussions about "correct phys pkg id" are pointless.
> 
> that's not the case here though:
> 
> [    8.713916] Total of 32 processors activated (162314.96 BogoMIPS).
> 
> so APICs are active. The real difference is i think this aspect of 
> commit 2759c3287:
> 
>  static int flat_phys_pkg_id(int initial_apic_id, int index_msb)
>  {
> -       return hard_smp_processor_id() >> index_msb;
> +       return initial_apic_id >> index_msb;
>  }
> 
> We need to revert back to .30 behavior here. (In case of which 
> environment to trust we almost always trust whatever booted millions 
> of Linux boxes in the past already.)
> 
> Furthermore, commit 2759c3287 did not declare any side-effects and 
> clearly causes a side-effect on vSMP which apparently has an 
> overlapping set of initial APIC ids.
> 
> Ravikiran, your patch does not do a clear revert of this bit though. 
> If you do a plain revert of the line above alone, does that fix the 
> problem too?

how about patch phys_pkg_id for vsmp?

diff --git a/arch/x86/kernel/apic/probe_64.c b/arch/x86/kernel/apic/probe_64.c
index f3b1037..65edc18 100644
--- a/arch/x86/kernel/apic/probe_64.c
+++ b/arch/x86/kernel/apic/probe_64.c
@@ -44,6 +44,11 @@ static struct apic *apic_probe[] __initdata = {
 	NULL,
 };
 
+static int apicid_phys_pkg_id(int initial_apic_id, int index_msb)
+{
+	return hard_smp_processor_id() >> index_msb;
+}
+
 /*
  * Check the APIC IDs in bios_cpu_apicid and choose the APIC mode.
  */
@@ -69,6 +74,11 @@ void __init default_setup_apic_routing(void)
 		printk(KERN_INFO "Setting APIC routing to %s\n", apic->name);
 	}
 
+	if (is_vsmp_box()) {
+		/* need to update phys_pkg_id */
+		apic->phys_pkg_id = apicid_phys_pkg_id;
+	}
+
 	/*
 	 * Now that apic routing model is selected, configure the
 	 * fault handling for intr remapping.

^ permalink raw reply related	[flat|nested] 28+ messages in thread

* Re: [patch] x86: 2.6.31-rc7 crash due to buggy flat_phys_pkg_id
  2009-08-25 18:31           ` Cyrill Gorcunov
  2009-08-25 18:50             ` Yinghai Lu
@ 2009-08-25 19:20             ` Ravikiran G Thirumalai
  2009-08-25 19:26               ` Ingo Molnar
  2009-08-25 19:40               ` Cyrill Gorcunov
  1 sibling, 2 replies; 28+ messages in thread
From: Ravikiran G Thirumalai @ 2009-08-25 19:20 UTC (permalink / raw)
  To: Cyrill Gorcunov
  Cc: Ingo Molnar, Yinghai Lu, torvalds, linux-kernel, shai, Suresh Siddha

On Tue, Aug 25, 2009 at 10:31:30PM +0400, Cyrill Gorcunov wrote:
>[Ingo Molnar - Tue, Aug 25, 2009 at 08:15:00PM +0200]
>| 
>
>I'm definitely not APIC expert but since I was partially involved
>letme turn in.
>
>Original commit which causes problem for vSMP seems to be due
>to cpu_has_apic bit turned off (ie due to being manually disabled
>or acpi table broken) so further read apic id will return plain
>zero (we're talking about 64 bits now). So frnakly I don't understand
>what is wrong with Ravikiran's patch. In case of apic disabled
>initial apic value will be used anyway (which is latched but
>actually may be changed, but it's not our case).
>

Exactly my thinking.  I hoped the patch I posted solves both cases --
does not depend on local apic id for the "fix crash on certain UP configs"
case in the commit here:

http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=2759c3287de27266e06f1f4e82cbd2d65f6a044c

And fixes vsmp too.

>Or perhaps there is an issue in srat numa nodes numbering?
>

Don't think so, local apic id has been used for for 'flat' and 'cluster'
apic (which was used prior to 'flat') for atleast 15 major releases.

Cyrill/Yinghai, can you test and confirm if the patch attached does not
regress the 'UP crash case' mentioned in
commit 2759c3287de27266e06f1f4e82cbd2d65f6a044c please?

---

2.6.31-rc7 does not boot on vSMPowered systems.  The sched domains
seem to build incorrectly with error messages of the sort:

[    8.501108] CPU31: Thermal monitoring enabled (TM1)
[    8.501127] CPU 31 MCA banks SHD:2 SHD:3 SHD:5 SHD:6 SHD:8
[    8.650254] CPU31: Intel(R) Xeon(R) CPU           E5540  @ 2.53GHz
stepping 04
[    8.710324] Brought up 32 CPUs
[    8.713916] Total of 32 processors activated (162314.96 BogoMIPS).
[    8.721489] ERROR: parent span is not a superset of domain->span
[    8.727686] ERROR: domain->groups does not contain CPU0
[    8.733091] ERROR: groups don't span domain->span
[    8.737975] ERROR: domain->cpu_power not set
[    8.742416]

This is followed by oopsen in the scheduler code
with NULL pointer deference in find_busiest_group.

Git bisection pointed to the following commit:

commit 2759c3287de27266e06f1f4e82cbd2d65f6a044c
x86: don't call read_apic_id if !cpu_has_apic

Upon examining the history of the commit, the above commit seems to be a fix
for:

commit 4797f6b021a3fa399942245d07a1feb30df81bb8
x86: read apic ID in the !acpi_lapic case

However, there appears to be bug in the commit
2759c3287de27266e06f1f4e82cbd2d65f6a044c, where flat_phys_pkg_id
uses initial apic id instead of hard_smp_processor_id() on SMP machines.
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=2759c3287de27266e06f1f4e82cbd2d65f6a044c

This patch fixes the bug and causes vSMPowered systems to boot up
correctly,

Signed-off-by: Ravikiran Thirumalai <kiran@scalex86.org>
Cc: Yinghai Lu <yinghai@kernel.org>

Index: linux-2.6.31-rc6/arch/x86/kernel/apic/apic_flat_64.c
===================================================================
--- linux-2.6.31-rc6.orig/arch/x86/kernel/apic/apic_flat_64.c	2009-08-21 12:42:16.000000000 -0700
+++ linux-2.6.31-rc6/arch/x86/kernel/apic/apic_flat_64.c	2009-08-21 14:12:21.654837472 -0700
@@ -161,7 +161,8 @@ static int flat_apic_id_registered(void)
 
 static int flat_phys_pkg_id(int initial_apic_id, int index_msb)
 {
-	return initial_apic_id >> index_msb;
+	return cpu_has_apic ? hard_smp_processor_id() >> index_msb :
+	    initial_apic_id >> index_msb;
 }
 
 struct apic apic_flat =  {



^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [patch] x86: 2.6.31-rc7 crash due to buggy flat_phys_pkg_id
  2009-08-25 19:17                   ` Yinghai Lu
@ 2009-08-25 19:24                     ` Ingo Molnar
  2009-08-25 20:36                       ` Ravikiran G Thirumalai
  0 siblings, 1 reply; 28+ messages in thread
From: Ingo Molnar @ 2009-08-25 19:24 UTC (permalink / raw)
  To: Yinghai Lu
  Cc: Linus Torvalds, Cyrill Gorcunov, Ravikiran G Thirumalai,
	linux-kernel, shai, Suresh Siddha


* Yinghai Lu <yinghai@kernel.org> wrote:

> Ingo Molnar wrote:
> > * Linus Torvalds <torvalds@linux-foundation.org> wrote:
> > 
> >> On Tue, 25 Aug 2009, Yinghai Lu wrote:
> >>> initial apic id and apic id could be different.
> >>>
> >>> and we should use initial apic id to get correct phys pkg id in 
> >>> case BIOS set crazy apic id.
> >> Yinghai - I think you missed Cyrills' point.  Let me repeat it:
> >>
> >> 	"cpu_has_apic bit turned off"
> >>
> >> there's no apic. No "initial apic id". No "phys pkg id". No 
> >> nothing.
> >>
> >> Discussions about "correct phys pkg id" are pointless.
> > 
> > that's not the case here though:
> > 
> > [    8.713916] Total of 32 processors activated (162314.96 BogoMIPS).
> > 
> > so APICs are active. The real difference is i think this aspect of 
> > commit 2759c3287:
> > 
> >  static int flat_phys_pkg_id(int initial_apic_id, int index_msb)
> >  {
> > -       return hard_smp_processor_id() >> index_msb;
> > +       return initial_apic_id >> index_msb;
> >  }
> > 
> > We need to revert back to .30 behavior here. (In case of which 
> > environment to trust we almost always trust whatever booted millions 
> > of Linux boxes in the past already.)
> > 
> > Furthermore, commit 2759c3287 did not declare any side-effects and 
> > clearly causes a side-effect on vSMP which apparently has an 
> > overlapping set of initial APIC ids.
> > 
> > Ravikiran, your patch does not do a clear revert of this bit though. 
> > If you do a plain revert of the line above alone, does that fix the 
> > problem too?
> 
> how about patch phys_pkg_id for vsmp?
> 
> diff --git a/arch/x86/kernel/apic/probe_64.c b/arch/x86/kernel/apic/probe_64.c
> index f3b1037..65edc18 100644
> --- a/arch/x86/kernel/apic/probe_64.c
> +++ b/arch/x86/kernel/apic/probe_64.c
> @@ -44,6 +44,11 @@ static struct apic *apic_probe[] __initdata = {
>  	NULL,
>  };
>  
> +static int apicid_phys_pkg_id(int initial_apic_id, int index_msb)
> +{
> +	return hard_smp_processor_id() >> index_msb;
> +}
> +
>  /*
>   * Check the APIC IDs in bios_cpu_apicid and choose the APIC mode.
>   */
> @@ -69,6 +74,11 @@ void __init default_setup_apic_routing(void)
>  		printk(KERN_INFO "Setting APIC routing to %s\n", apic->name);
>  	}
>  
> +	if (is_vsmp_box()) {
> +		/* need to update phys_pkg_id */
> +		apic->phys_pkg_id = apicid_phys_pkg_id;
> +	}

Hm, this is rather tempting simply because it only affects vSMP 
systems and we are in late -rc's. Ravikiran, does Yinghai's patch 
solve the crash for you too?

	Ingo

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [patch] x86: 2.6.31-rc7 crash due to buggy flat_phys_pkg_id
  2009-08-25 19:20             ` Ravikiran G Thirumalai
@ 2009-08-25 19:26               ` Ingo Molnar
  2009-08-25 19:40               ` Cyrill Gorcunov
  1 sibling, 0 replies; 28+ messages in thread
From: Ingo Molnar @ 2009-08-25 19:26 UTC (permalink / raw)
  To: Ravikiran G Thirumalai
  Cc: Cyrill Gorcunov, Yinghai Lu, torvalds, linux-kernel, shai, Suresh Siddha


* Ravikiran G Thirumalai <kiran@scalex86.org> wrote:

> On Tue, Aug 25, 2009 at 10:31:30PM +0400, Cyrill Gorcunov wrote:
> >[Ingo Molnar - Tue, Aug 25, 2009 at 08:15:00PM +0200]
> >| 
> >
> >I'm definitely not APIC expert but since I was partially involved
> >letme turn in.
> >
> >Original commit which causes problem for vSMP seems to be due
> >to cpu_has_apic bit turned off (ie due to being manually disabled
> >or acpi table broken) so further read apic id will return plain
> >zero (we're talking about 64 bits now). So frnakly I don't understand
> >what is wrong with Ravikiran's patch. In case of apic disabled
> >initial apic value will be used anyway (which is latched but
> >actually may be changed, but it's not our case).
> >
> 
> Exactly my thinking.  I hoped the patch I posted solves both cases --
> does not depend on local apic id for the "fix crash on certain UP configs"
> case in the commit here:
> 
> http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=2759c3287de27266e06f1f4e82cbd2d65f6a044c
> 
> And fixes vsmp too.

Sidenote for .32: i am somewhat worried about the spreading of 
various cpu_has_apic checks. We should separate it out more cleanly 
and provide an apic-> callback instead and avoid this ugly flaggery.

	Ingo

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [patch] x86: 2.6.31-rc7 crash due to buggy flat_phys_pkg_id
  2009-08-25 18:50             ` Yinghai Lu
  2009-08-25 18:57               ` Linus Torvalds
  2009-08-25 18:59               ` Cyrill Gorcunov
@ 2009-08-25 19:27               ` Ravikiran G Thirumalai
  2009-08-25 19:33                 ` Ingo Molnar
  2009-08-25 19:36                 ` Yinghai Lu
  2 siblings, 2 replies; 28+ messages in thread
From: Ravikiran G Thirumalai @ 2009-08-25 19:27 UTC (permalink / raw)
  To: Yinghai Lu
  Cc: Cyrill Gorcunov, Ingo Molnar, torvalds, linux-kernel, shai,
	Suresh Siddha

On Tue, Aug 25, 2009 at 11:50:56AM -0700, Yinghai Lu wrote:
>Cyrill Gorcunov wrote:
>
>initial apic id and apic id could be different.
>
>and we should use initial apic id to get correct phys pkg id in case BIOS set crazy apic id.
>

Is there a specific bug we are fixing here?  Again, this behavior was
present from atleast 2.6.15-2.6.30 on 'flat' and older 'cluster' apics, and intel
documentation suggests local apic be used.  Is there a specific bios bug
that is being fixed?

(The BIOS is not supposed to set a crazy apic ID.  The BIOS is buggy in that
case --  Quoting section 9.4.6 from Intel System programming guide vol 3A
part 1:

<quote>
9.4.6 Local APIC ID
At power up, system hardware assigns a unique APIC ID to each local APIC on
the system bus (for Pentium 4 and Intel Xeon processors) or on the APIC bus
(for P6 family and Pentium processors). The hardware assigned APIC ID is
based on system topology and includes encoding for socket position and
cluster information (see Figure 7-2).
In MP systems, the local APIC ID is also used as a processor ID by the BIOS
and the operating system....
</quote>)

Thanks,
Kiran

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [patch] x86: 2.6.31-rc7 crash due to buggy flat_phys_pkg_id
  2009-08-25 19:27               ` Ravikiran G Thirumalai
@ 2009-08-25 19:33                 ` Ingo Molnar
  2009-08-25 19:36                 ` Yinghai Lu
  1 sibling, 0 replies; 28+ messages in thread
From: Ingo Molnar @ 2009-08-25 19:33 UTC (permalink / raw)
  To: Ravikiran G Thirumalai
  Cc: Yinghai Lu, Cyrill Gorcunov, torvalds, linux-kernel, shai, Suresh Siddha


* Ravikiran G Thirumalai <kiran@scalex86.org> wrote:

> On Tue, Aug 25, 2009 at 11:50:56AM -0700, Yinghai Lu wrote:
> >Cyrill Gorcunov wrote:
> >
> >initial apic id and apic id could be different.
> >
> >and we should use initial apic id to get correct phys pkg id in case BIOS set crazy apic id.
> >
> 
> Is there a specific bug we are fixing here?  Again, this behavior 
> was present from atleast 2.6.15-2.6.30 on 'flat' and older 
> 'cluster' apics, and intel documentation suggests local apic be 
> used.  Is there a specific bios bug that is being fixed?
> 
> (The BIOS is not supposed to set a crazy apic ID.  The BIOS is 
> buggy in that case -- Quoting section 9.4.6 from Intel System 
> programming guide vol 3A part 1:

That means very little. If Yinghai fixed a real bug in an existing 
system we should consider it. Yinghai?

	Ingo

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [patch] x86: 2.6.31-rc7 crash due to buggy flat_phys_pkg_id
  2009-08-25 19:27               ` Ravikiran G Thirumalai
  2009-08-25 19:33                 ` Ingo Molnar
@ 2009-08-25 19:36                 ` Yinghai Lu
  1 sibling, 0 replies; 28+ messages in thread
From: Yinghai Lu @ 2009-08-25 19:36 UTC (permalink / raw)
  To: Ravikiran G Thirumalai
  Cc: Cyrill Gorcunov, Ingo Molnar, torvalds, linux-kernel, shai,
	Suresh Siddha

Ravikiran G Thirumalai wrote:
> On Tue, Aug 25, 2009 at 11:50:56AM -0700, Yinghai Lu wrote:
>> Cyrill Gorcunov wrote:
>>
>> initial apic id and apic id could be different.
>>
>> and we should use initial apic id to get correct phys pkg id in case BIOS set crazy apic id.
>>
> 
> Is there a specific bug we are fixing here?  Again, this behavior was
> present from atleast 2.6.15-2.6.30 on 'flat' and older 'cluster' apics, and intel
> documentation suggests local apic be used.  Is there a specific bios bug
> that is being fixed?
> 
> (The BIOS is not supposed to set a crazy apic ID.  The BIOS is buggy in that

we can not stop BIOS doing crazy thing.

for AMD 8 socket 4 cores system. BSP apic id : 4 or 8, and initial apic id is 0:

with apic id in phys_pkg_id, will get pkg id: 1, 2, ...

with initial apic id will get pkg id: 0, 1, 2, 3.

when I was working on LinuxBIOS, I did have one porting to have 
BSP: 0
AP: start from 5, 6, 7...
that will have strange in pkg_id.

YH

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [patch] x86: 2.6.31-rc7 crash due to buggy flat_phys_pkg_id
  2009-08-25 19:20             ` Ravikiran G Thirumalai
  2009-08-25 19:26               ` Ingo Molnar
@ 2009-08-25 19:40               ` Cyrill Gorcunov
  1 sibling, 0 replies; 28+ messages in thread
From: Cyrill Gorcunov @ 2009-08-25 19:40 UTC (permalink / raw)
  To: Ravikiran G Thirumalai
  Cc: Ingo Molnar, Yinghai Lu, torvalds, linux-kernel, shai, Suresh Siddha

[Ravikiran G Thirumalai - Tue, Aug 25, 2009 at 12:20:55PM -0700]
| On Tue, Aug 25, 2009 at 10:31:30PM +0400, Cyrill Gorcunov wrote:
| >[Ingo Molnar - Tue, Aug 25, 2009 at 08:15:00PM +0200]
| >| 
| >
| >I'm definitely not APIC expert but since I was partially involved
| >letme turn in.
| >
| >Original commit which causes problem for vSMP seems to be due
| >to cpu_has_apic bit turned off (ie due to being manually disabled
| >or acpi table broken) so further read apic id will return plain
| >zero (we're talking about 64 bits now). So frnakly I don't understand
| >what is wrong with Ravikiran's patch. In case of apic disabled
| >initial apic value will be used anyway (which is latched but
| >actually may be changed, but it's not our case).
| >
| 
| Exactly my thinking.  I hoped the patch I posted solves both cases --
| does not depend on local apic id for the "fix crash on certain UP configs"
| case in the commit here:
| 
| http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=2759c3287de27266e06f1f4e82cbd2d65f6a044c
| 
| And fixes vsmp too.
| 
| >Or perhaps there is an issue in srat numa nodes numbering?
| >
| 
| Don't think so, local apic id has been used for for 'flat' and 'cluster'
| apic (which was used prior to 'flat') for atleast 15 major releases.
| 
| Cyrill/Yinghai, can you test and confirm if the patch attached does not
| regress the 'UP crash case' mentioned in
| commit 2759c3287de27266e06f1f4e82cbd2d65f6a044c please?
| 
| ---
| 

I would like to but I can;t. I don;t even know where were we hanging
at this crash case. I was only reading commit changelog and since
it was said about "not apic bit set" I thought about disabled apic case.

Personally I like much more quirk Yinghai posted which leaves phys id function
_bared_ and simple as it should be :)

And since it's too late before kernel release -- introducing read apic back
seems to be dangerous I suppose: there are a number of configs which could
be having side effect. At moment they are tested _with_ Yinghai patch and
only vSMP is issued. Though the problem need to be investigated more
closely. But I'm not knowing that much in this area.

	-- Cyrill

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [patch] x86: 2.6.31-rc7 crash due to buggy flat_phys_pkg_id
  2009-08-25 19:12                 ` Ingo Molnar
  2009-08-25 19:17                   ` Yinghai Lu
@ 2009-08-25 19:53                   ` Ravikiran G Thirumalai
  1 sibling, 0 replies; 28+ messages in thread
From: Ravikiran G Thirumalai @ 2009-08-25 19:53 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Linus Torvalds, Yinghai Lu, Cyrill Gorcunov, linux-kernel, shai,
	Suresh Siddha

On Tue, Aug 25, 2009 at 09:12:31PM +0200, Ingo Molnar wrote:
>
>* Linus Torvalds <torvalds@linux-foundation.org> wrote:
>
>
>Furthermore, commit 2759c3287 did not declare any side-effects and 
>clearly causes a side-effect on vSMP which apparently has an 
>overlapping set of initial APIC ids.
>
>Ravikiran, your patch does not do a clear revert of this bit though. 
>If you do a plain revert of the line above alone, does that fix the 
>problem too?
>

Yes it does.  However, it probably reads local apic id when it shouldn't.

I am right now trying out the other patch Yinghai posted (based on
is_vsmp_box()), and report results in a few.


^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [patch] x86: 2.6.31-rc7 crash due to buggy flat_phys_pkg_id
  2009-08-25 19:24                     ` Ingo Molnar
@ 2009-08-25 20:36                       ` Ravikiran G Thirumalai
  2009-08-25 20:44                         ` [PATCH] x86: fix vsmp booting with phys_pkg_id changing Yinghai Lu
  0 siblings, 1 reply; 28+ messages in thread
From: Ravikiran G Thirumalai @ 2009-08-25 20:36 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Yinghai Lu, Linus Torvalds, Cyrill Gorcunov, linux-kernel, shai,
	Suresh Siddha

On Tue, Aug 25, 2009 at 09:24:16PM +0200, Ingo Molnar wrote:
>> ...
>> > Furthermore, commit 2759c3287 did not declare any side-effects and 
>> > clearly causes a side-effect on vSMP which apparently has an 
>> > overlapping set of initial APIC ids.
>> > 
>> > Ravikiran, your patch does not do a clear revert of this bit though. 
>> > If you do a plain revert of the line above alone, does that fix the 
>> > problem too?
>> 
>> how about patch phys_pkg_id for vsmp?
>> 
>> diff --git a/arch/x86/kernel/apic/probe_64.c b/arch/x86/kernel/apic/probe_64.c
>> index f3b1037..65edc18 100644
>> --- a/arch/x86/kernel/apic/probe_64.c
>> +++ b/arch/x86/kernel/apic/probe_64.c
>> @@ -44,6 +44,11 @@ static struct apic *apic_probe[] __initdata = {
>>  	NULL,
>>  };
>>  
>> +static int apicid_phys_pkg_id(int initial_apic_id, int index_msb)
>> +{
>> +	return hard_smp_processor_id() >> index_msb;
>> +}
>> +
>>  /*
>>   * Check the APIC IDs in bios_cpu_apicid and choose the APIC mode.
>>   */
>> @@ -69,6 +74,11 @@ void __init default_setup_apic_routing(void)
>>  		printk(KERN_INFO "Setting APIC routing to %s\n", apic->name);
>>  	}
>>  
>> +	if (is_vsmp_box()) {
>> +		/* need to update phys_pkg_id */
>> +		apic->phys_pkg_id = apicid_phys_pkg_id;
>> +	}
>
>Hm, this is rather tempting simply because it only affects vSMP 
>systems and we are in late -rc's. Ravikiran, does Yinghai's patch 
>solve the crash for you too?
>

Yes it does.  Tested and confirmed.

Thanks,
Kiran

^ permalink raw reply	[flat|nested] 28+ messages in thread

* [PATCH] x86: fix vsmp booting with phys_pkg_id changing
  2009-08-25 20:36                       ` Ravikiran G Thirumalai
@ 2009-08-25 20:44                         ` Yinghai Lu
  2009-08-26  8:08                           ` Ingo Molnar
  2009-08-26  8:15                           ` [tip:x86/urgent] x86: Fix vSMP boot crash tip-bot for Yinghai Lu
  0 siblings, 2 replies; 28+ messages in thread
From: Yinghai Lu @ 2009-08-25 20:44 UTC (permalink / raw)
  To: Ingo Molnar, Thomas Gleixner
  Cc: Ravikiran G Thirumalai, Linus Torvalds, Cyrill Gorcunov,
	linux-kernel, shai, Suresh Siddha


2.6.31-rc7 does not boot on vSMPowered systems. 

[    8.501108] CPU31: Thermal monitoring enabled (TM1)
[    8.501127] CPU 31 MCA banks SHD:2 SHD:3 SHD:5 SHD:6 SHD:8
[    8.650254] CPU31: Intel(R) Xeon(R) CPU           E5540  @ 2.53GHz stepping 04
[    8.710324] Brought up 32 CPUs
[    8.713916] Total of 32 processors activated (162314.96 BogoMIPS).
[    8.721489] ERROR: parent span is not a superset of domain->span
[    8.727686] ERROR: domain->groups does not contain CPU0
[    8.733091] ERROR: groups don't span domain->span
[    8.737975] ERROR: domain->cpu_power not set
[    8.742416]

bisected to
|
| commit 2759c3287de27266e06f1f4e82cbd2d65f6a044c
| x86: don't call read_apic_id if !cpu_has_apic
|

need to use apic id in phys_pkg_id for vsmp...

Reported-and-Tested-by: Ravikiran Thirumalai <kiran@scalex86.org>
Signed-off-by: Yinghai Lu <yinghai@kernel.org>

---
 arch/x86/kernel/apic/probe_64.c |   10 ++++++++++
 1 file changed, 10 insertions(+)

Index: linux-2.6/arch/x86/kernel/apic/probe_64.c
===================================================================
--- linux-2.6.orig/arch/x86/kernel/apic/probe_64.c
+++ linux-2.6/arch/x86/kernel/apic/probe_64.c
@@ -44,6 +44,11 @@ static struct apic *apic_probe[] __initd
 	NULL,
 };
 
+static int apicid_phys_pkg_id(int initial_apic_id, int index_msb)
+{
+	return hard_smp_processor_id() >> index_msb;
+}
+
 /*
  * Check the APIC IDs in bios_cpu_apicid and choose the APIC mode.
  */
@@ -69,6 +74,11 @@ void __init default_setup_apic_routing(v
 		printk(KERN_INFO "Setting APIC routing to %s\n", apic->name);
 	}
 
+	if (is_vsmp_box()) {
+		/* need to update phys_pkg_id */
+		apic->phys_pkg_id = apicid_phys_pkg_id;
+	}
+
 	/*
 	 * Now that apic routing model is selected, configure the
 	 * fault handling for intr remapping.

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH] x86: fix vsmp booting with phys_pkg_id changing
  2009-08-25 20:44                         ` [PATCH] x86: fix vsmp booting with phys_pkg_id changing Yinghai Lu
@ 2009-08-26  8:08                           ` Ingo Molnar
  2009-08-26  8:15                           ` [tip:x86/urgent] x86: Fix vSMP boot crash tip-bot for Yinghai Lu
  1 sibling, 0 replies; 28+ messages in thread
From: Ingo Molnar @ 2009-08-26  8:08 UTC (permalink / raw)
  To: Yinghai Lu
  Cc: Thomas Gleixner, Ravikiran G Thirumalai, Linus Torvalds,
	Cyrill Gorcunov, linux-kernel, shai, Suresh Siddha


* Yinghai Lu <yinghai@kernel.org> wrote:

> 2.6.31-rc7 does not boot on vSMPowered systems. 
> 
> [    8.501108] CPU31: Thermal monitoring enabled (TM1)
> [    8.501127] CPU 31 MCA banks SHD:2 SHD:3 SHD:5 SHD:6 SHD:8
> [    8.650254] CPU31: Intel(R) Xeon(R) CPU           E5540  @ 2.53GHz stepping 04
> [    8.710324] Brought up 32 CPUs
> [    8.713916] Total of 32 processors activated (162314.96 BogoMIPS).
> [    8.721489] ERROR: parent span is not a superset of domain->span
> [    8.727686] ERROR: domain->groups does not contain CPU0
> [    8.733091] ERROR: groups don't span domain->span
> [    8.737975] ERROR: domain->cpu_power not set
> [    8.742416]
> 
> bisected to
> |
> | commit 2759c3287de27266e06f1f4e82cbd2d65f6a044c
> | x86: don't call read_apic_id if !cpu_has_apic
> |
> 
> need to use apic id in phys_pkg_id for vsmp...
> 
> Reported-and-Tested-by: Ravikiran Thirumalai <kiran@scalex86.org>
> Signed-off-by: Yinghai Lu <yinghai@kernel.org>
> 
> ---
>  arch/x86/kernel/apic/probe_64.c |   10 ++++++++++
>  1 file changed, 10 insertions(+)
> 
> Index: linux-2.6/arch/x86/kernel/apic/probe_64.c
> ===================================================================
> --- linux-2.6.orig/arch/x86/kernel/apic/probe_64.c
> +++ linux-2.6/arch/x86/kernel/apic/probe_64.c
> @@ -44,6 +44,11 @@ static struct apic *apic_probe[] __initd
>  	NULL,
>  };
>  
> +static int apicid_phys_pkg_id(int initial_apic_id, int index_msb)
> +{
> +	return hard_smp_processor_id() >> index_msb;
> +}
> +
>  /*
>   * Check the APIC IDs in bios_cpu_apicid and choose the APIC mode.
>   */
> @@ -69,6 +74,11 @@ void __init default_setup_apic_routing(v
>  		printk(KERN_INFO "Setting APIC routing to %s\n", apic->name);
>  	}
>  
> +	if (is_vsmp_box()) {
> +		/* need to update phys_pkg_id */
> +		apic->phys_pkg_id = apicid_phys_pkg_id;
> +	}

Ok, this looks like a rather straightforward quirk - and vSMP is 
indeed special in that it sets up overlapping APIC ids. It's also 
the smaller patch with basically zero cross section to other 
systems, so a lot more -rc7 worthy.

So i've applied it to x86/urgent (with small edits to the 
changelog). Any objections from anyone?

Note, should any other, real hardware show problems with , we might 
still have to consider reverting the original change in 2759c32. 
It's borderline.

Btw., the code is still not fully clean. For example this bit in 
generic_identify():

#ifdef CONFIG_X86_32
# ifdef CONFIG_X86_HT
                c->apicid = apic->phys_pkg_id(c->initial_apicid, 0);
# else
                c->apicid = c->initial_apicid;
# endif
#endif

and in another place we have:

#ifdef CONFIG_X86_64
        c->apicid = apic->phys_pkg_id(c->initial_apicid, 0);
#endif

This ifdeffery could probably be removed and we could call 
->phys_pkg_id() all the time, right?

	Ingo

^ permalink raw reply	[flat|nested] 28+ messages in thread

* [tip:x86/urgent] x86: Fix vSMP boot crash
  2009-08-25 20:44                         ` [PATCH] x86: fix vsmp booting with phys_pkg_id changing Yinghai Lu
  2009-08-26  8:08                           ` Ingo Molnar
@ 2009-08-26  8:15                           ` tip-bot for Yinghai Lu
  1 sibling, 0 replies; 28+ messages in thread
From: tip-bot for Yinghai Lu @ 2009-08-26  8:15 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: linux-kernel, hpa, mingo, yinghai, torvalds, shai, gorcunov,
	kiran, suresh.b.siddha, tglx, mingo

Commit-ID:  295594e9cf6ae2efd73371777aa8feba0f87f42f
Gitweb:     http://git.kernel.org/tip/295594e9cf6ae2efd73371777aa8feba0f87f42f
Author:     Yinghai Lu <yinghai@kernel.org>
AuthorDate: Tue, 25 Aug 2009 13:44:44 -0700
Committer:  Ingo Molnar <mingo@elte.hu>
CommitDate: Wed, 26 Aug 2009 10:13:17 +0200

x86: Fix vSMP boot crash

2.6.31-rc7 does not boot on vSMP systems:

[    8.501108] CPU31: Thermal monitoring enabled (TM1)
[    8.501127] CPU 31 MCA banks SHD:2 SHD:3 SHD:5 SHD:6 SHD:8
[    8.650254] CPU31: Intel(R) Xeon(R) CPU           E5540  @ 2.53GHz stepping 04
[    8.710324] Brought up 32 CPUs
[    8.713916] Total of 32 processors activated (162314.96 BogoMIPS).
[    8.721489] ERROR: parent span is not a superset of domain->span
[    8.727686] ERROR: domain->groups does not contain CPU0
[    8.733091] ERROR: groups don't span domain->span
[    8.737975] ERROR: domain->cpu_power not set
[    8.742416]

Ravikiran Thirumalai bisected it to:

| commit 2759c3287de27266e06f1f4e82cbd2d65f6a044c
| x86: don't call read_apic_id if !cpu_has_apic

The problem is that on vSMP systems the CPUID derived
initial-APICIDs are overlapping - so we need to fall
back on hard_smp_processor_id() which reads the local
APIC.

Both come from the hardware (influenced by firmware
though) so it's a tough call which one to trust.

Doing the quirk expresses the vSMP property properly
and also does not affect other systems, so we go for
this solution instead of a revert.

Reported-and-Tested-by: Ravikiran Thirumalai <kiran@scalex86.org>
Signed-off-by: Yinghai Lu <yinghai@kernel.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Cyrill Gorcunov <gorcunov@gmail.com>
Cc: Shai Fultheim <shai@scalex86.org>
Cc: Suresh Siddha <suresh.b.siddha@intel.com>
LKML-Reference: <4A944D3C.5030100@kernel.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>


---
 arch/x86/kernel/apic/probe_64.c |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/arch/x86/kernel/apic/probe_64.c b/arch/x86/kernel/apic/probe_64.c
index bc3e880..fcec2f1 100644
--- a/arch/x86/kernel/apic/probe_64.c
+++ b/arch/x86/kernel/apic/probe_64.c
@@ -44,6 +44,11 @@ static struct apic *apic_probe[] __initdata = {
 	NULL,
 };
 
+static int apicid_phys_pkg_id(int initial_apic_id, int index_msb)
+{
+	return hard_smp_processor_id() >> index_msb;
+}
+
 /*
  * Check the APIC IDs in bios_cpu_apicid and choose the APIC mode.
  */
@@ -69,6 +74,11 @@ void __init default_setup_apic_routing(void)
 		printk(KERN_INFO "Setting APIC routing to %s\n", apic->name);
 	}
 
+	if (is_vsmp_box()) {
+		/* need to update phys_pkg_id */
+		apic->phys_pkg_id = apicid_phys_pkg_id;
+	}
+
 	/*
 	 * Now that apic routing model is selected, configure the
 	 * fault handling for intr remapping.

^ permalink raw reply related	[flat|nested] 28+ messages in thread

end of thread, other threads:[~2009-08-26  8:16 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-08-24 18:26 [patch] x86: 2.6.31-rc7 crash due to buggy flat_phys_pkg_id Ravikiran G Thirumalai
2009-08-24 23:53 ` Yinghai Lu
2009-08-25  0:27   ` Yinghai Lu
2009-08-25  1:38     ` Ravikiran G Thirumalai
2009-08-25  5:03       ` Yinghai Lu
2009-08-25  1:26   ` Ravikiran G Thirumalai
2009-08-25  5:12     ` Yinghai Lu
2009-08-25 17:17       ` Ravikiran G Thirumalai
2009-08-25 18:15         ` Ingo Molnar
2009-08-25 18:31           ` Cyrill Gorcunov
2009-08-25 18:50             ` Yinghai Lu
2009-08-25 18:57               ` Linus Torvalds
2009-08-25 19:12                 ` Ingo Molnar
2009-08-25 19:17                   ` Yinghai Lu
2009-08-25 19:24                     ` Ingo Molnar
2009-08-25 20:36                       ` Ravikiran G Thirumalai
2009-08-25 20:44                         ` [PATCH] x86: fix vsmp booting with phys_pkg_id changing Yinghai Lu
2009-08-26  8:08                           ` Ingo Molnar
2009-08-26  8:15                           ` [tip:x86/urgent] x86: Fix vSMP boot crash tip-bot for Yinghai Lu
2009-08-25 19:53                   ` [patch] x86: 2.6.31-rc7 crash due to buggy flat_phys_pkg_id Ravikiran G Thirumalai
2009-08-25 18:59               ` Cyrill Gorcunov
2009-08-25 19:27               ` Ravikiran G Thirumalai
2009-08-25 19:33                 ` Ingo Molnar
2009-08-25 19:36                 ` Yinghai Lu
2009-08-25 19:20             ` Ravikiran G Thirumalai
2009-08-25 19:26               ` Ingo Molnar
2009-08-25 19:40               ` Cyrill Gorcunov
2009-08-25 18:35           ` Yinghai Lu

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.