# i7-2600 errata anyone?

## DaggyStyle

I've booted 3.2.9 today and noticed this:

```
[    0.038236] CPU0: Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz stepping 07

[    0.144503] Performance Events: PEBS fmt1+, SandyBridge events, Intel PMU driver.

[    0.144702] PEBS disabled due to CPU errata.

[    0.144773] ... version:                3

[    0.144842] ... bit width:              48

[    0.144912] ... generic registers:      4

[    0.144982] ... value mask:             0000ffffffffffff

[    0.145052] ... max period:             000000007fffffff

[    0.145122] ... fixed-purpose events:   3

[    0.145191] ... event mask:             000000070000000f

[    0.191039] Booting Node   0, Processors  #1

[    0.191101] smpboot cpu 1: start_ip = 9b000

[    0.317340]  #2

[    0.317373] smpboot cpu 2: start_ip = 9b000

[    0.443639]  #3

[    0.443671] smpboot cpu 3: start_ip = 9b000

[    0.569938]  #4

[    0.569970] smpboot cpu 4: start_ip = 9b000

[    0.696238]  #5

[    0.696270] smpboot cpu 5: start_ip = 9b000

[    0.822536]  #6

[    0.822568] smpboot cpu 6: start_ip = 9b000

[    0.948835]  #7 Ok.

[    0.948905] smpboot cpu 7: start_ip = 9b000

[    1.061914] Brought up 8 CPUs
```

has anyone else noticed this?

----------

## Mepho

This is normal "quirk" workaround in kernel. Probably nothing to worry about, if you need it for some reason, join kernel devel team  :Smile: 

If you want warning to disappear, set lesser verbosity in "kernel hacking" section of menuconfig, it will disable printk with "KERN_WARNING" priority.

```
static void intel_sandybridge_quirks(void)

{

   printk(KERN_WARNING "PEBS disabled due to CPU errata.\n");

   x86_pmu.pebs = 0;

   x86_pmu.pebs_constraints = NULL;

}
```

----------

## DaggyStyle

 *Mepho wrote:*   

> This is normal "quirk" workaround in kernel. Probably nothing to worry about, if you need it for some reason, join kernel devel team 
> 
> If you want warning to disappear, set lesser verbosity in "kernel hacking" section of menuconfig, it will disable printk with "KERN_WARNING" priority.
> 
> ```
> ...

 

thats ok, I was just wondering  :Smile: 

----------

## miket

 *Mepho wrote:*   

> If you want warning to disappear, set lesser verbosity in "kernel hacking" section of menuconfig, it will disable printk with "KERN_WARNING" priority.
> 
> 

 

Actually, I wouldn't care about the message itself if it weren't for the problem behind it.  I got a computer with a Sandy Bridge processor (i5-2320) with the expectation that it would have hyperthreading.  After ensuring that the BIOS had ACPI and hyperthreading enabled, I never got to see eight penguins (and 8 CPU's in /proc/cpuinfo) instead of 4.  After a lot of digging, I came to the conclusion that without a working PEBS structure, the kernel is unable to support hyperthreading.

The fault lies with Intel, not with the kernel developers (unless things are now actually OK at microcode level 0x1a, in which case I'd comment out a line in arch/x86/kernel/cpu/perf_event_intel.c).  Has anyone heard of a microcode fix for the CPU for this?  If they make the fix, wouldn't the chip have to identify itself with a different model number? (the current number, 42, seems alas not to be the Ultimate Answer).

----------

## DaggyStyle

 *miket wrote:*   

>  *Mepho wrote:*   If you want warning to disappear, set lesser verbosity in "kernel hacking" section of menuconfig, it will disable printk with "KERN_WARNING" priority.
> 
>  
> 
> Actually, I wouldn't care about the message itself if it weren't for the problem behind it.  I got a computer with a Sandy Bridge processor (i5-2320) with the expectation that it would have hyperthreading.  After ensuring that the BIOS had ACPI and hyperthreading enabled, I never got to see eight penguins (and 8 CPU's in /proc/cpuinfo) instead of 4.  After a lot of digging, I came to the conclusion that without a working PEBS structure, the kernel is unable to support hyperthreading.
> ...

 

sorry dude, the fault is yours, not Intel's nor the kernel dev.

i5-2320 doesn't have ht, see: http://ark.intel.com/products/53446 , it has 4 cores and 4 threads, the i7 has 4 cores and 8 threads.

with that errata showing and ht enabled I have 8 threads.

----------

## miket

Oh, man, do I feel sadly deceived!

I was in a rush to replace a machine that had died, so I was going a lot by marketing materials.  Instead of my usual route of being careful in choosing a motherboard and processor and other parts so I could assemble the machine, I looked up the specs for retail machines and gritted my teeth that I would be paying the Microsoft Tax.  There were a number of references I saw to hyperthreading.  Too bad I never saw that particular specsheet page you pointed out.

Alas, information I got from the kernel perpetuated the hoax.  Not the least is the fact that /proc/cpuinfo reports the ht flag, not to mention the PEBS message.

I've got a Core i3 that's a year older, and that's got hyperthreading.  I've since figured out Intel's rule of thumb, though:  i3's have two cores plus hyperthreading (four penguins); i5's have four cores and no hyperthreading (still four penguins).  There are exceptions in Intel's i3 and i5 lines, but that's the general pattern.

So I take this consolation:  I've got 4 real SMP cores, not just 2 pretending they are 4.

----------

## DaggyStyle

that happens, but look on the bright side:

you have a true quad and not pseudo quad.

the i5 is still a very good cpu indeed.

next time you'll get a cpu part, you most probably won't do the same mistake.

----------

## eccerr0r

Looks like the 2700K didn't get fixed... :(  Looks like it's just a binned part versus a different Si rev.

```
ACPI: Core revision 20110623

Enabling APIC mode:  Flat.  Using 1 I/O APICs

..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1

CPU0: Intel(R) Core(TM) i7-2700K CPU @ 3.50GHz stepping 07

Performance Events: PEBS fmt1+, SandyBridge events, Intel PMU driver.

PEBS disabled due to CPU errata.

... version:                3

... bit width:              48

... generic registers:      4

... value mask:             0000ffffffffffff

... max period:             000000007fffffff

... fixed-purpose events:   3

... event mask:             000000070000000f

```

I guess I don't use much performance monitoring anyway...

The i5 is a good part.  A lot of the times HT doesn't make much difference, a full core is definitely faster than a HT virtual.

I did end up getting a good 15% or so higher on one particular benchmarks when using my old Prescott with HT.  Each individual thread was slower but the aggregate sum was higher than running the benchmark single threaded...  I'm not sure how much the i7 will speed up running HT... I'm still using -j8 for the heck of it though...

----------

