4

I have a strange situation. I have two computers with identical hardware, both Core i5, exactly the same model. The only difference is the OS, one has 12.04 32-bit and the other one has 12.04 64-bit.

The problem is that hyperthreading is only enabled on the 32-bit OS and not on the 64-bit OS. Can you tell me why, and how I can enable it?

I looked in the BIOS and both have exactly the same settings, both hyperthreading enabled in BIOS but not in the OS.

2 logical processors:

 Architecture:          x86_64  
CPU op-mode(s):        32-bit, 64-bit  
Byte Order:            Little Endian  
CPU(s):                2  
On-line CPU(s) list:   0,1  
Thread(s) per core:    1  
Core(s) per socket:    2  
Socket(s):             1  
NUMA node(s):          1  
Vendor ID:             GenuineIntel  
CPU family:            6  
Model:                 42  
Stepping:              7  
CPU MHz:               2294.665  
BogoMIPS:              4589.73  
Virtualization:        VT-x  
L1d cache:             32K   
L1i cache:             32K  
L2 cache:              256K  
L3 cache:              3072K  
NUMA node0 CPU(s):     0,1 

4 logical processors:

Architecture:          i686  
CPU op-mode(s):        32-bit, 64-bit  
Byte Order:            Little Endian  
CPU(s):                4  
On-line CPU(s) list:   0-3  
Thread(s) per core:    2  
Core(s) per socket:    2  
Socket(s):             1  
Vendor ID:             GenuineIntel  
CPU family:            6  
Model:                 42  
Stepping:              7  
CPU MHz:               800.000  
BogoMIPS:              4589.36  
Virtualization:        VT-x  
L1d cache:             32K  
L1i cache:             32K  
L2 cache:              256K  
L3 cache:              3072K  
11
  • 1
    Can you type on both computers " sudo dmidecode -t processor | grep HTT" Aug 17, 2013 at 14:46
  • Both say HTT (Multi-threading)
    – madmax
    Aug 19, 2013 at 6:04
  • 1
    @madmax there is lots of Core i5 CPUs. Are you sure those are the same?
    – sajjadG
    Aug 22, 2013 at 16:25
  • Yes, cpuinfo on both machines gets me this info: model name : Intel(R) Core(TM) i5-2410M CPU @ 2.30GHz
    – madmax
    Aug 23, 2013 at 9:59
  • @madmax Well, you must have two different kernels. IMHO this is the issue. You can also try booting with acpi=ht
    – Symin
    Aug 23, 2013 at 10:31

3 Answers 3

5
+100

Make sure you don't boot with acpi=off as this disables hyperthreading. You can boot with acpi=ht, which is just like acpi=off, but enables just the required parts of acpi to use hyperthreading.

1
  • This was the problem! Now HT is working although the system is slower! Also when I type in terminal I have a delay in seeing my characters appear...
    – madmax
    Aug 26, 2013 at 8:23
2

There are plenty of CPUs under Core i5 name. take a look at this link to see a complete list of them.

There are core i5 CPUs with 2 cores (codename Clarkdale and Arrandale) and 4 cores (codename Lynnfield) for more information see this link.

4
  • Yes, but my CPU's are identical. Both say model name : Intel(R) Core(TM) i5-2410M CPU @ 2.30GHz
    – madmax
    Aug 23, 2013 at 9:57
  • @madmax Are you sure about it? Use dmidecode and see if they are identical. Note that cpuinfo can change overtime. specially the clock part. If you are 100% sure they are identical then it's the kernel fault and this is so much strange.
    – sajjadG
    Aug 23, 2013 at 10:38
  • @madmax also lshw -class cpu is useful
    – sajjadG
    Aug 23, 2013 at 10:41
  • Yes, they are identical. The only difference is the version field in lshw: version: 6.10.7, other one version: Intel(R) Core(TM) i5-2410M CPU @ 2.30GHz
    – madmax
    Aug 23, 2013 at 11:51
2

When you need to know whether hyper-threading is enabled without the need to reboot the system (and consulting the BIOS), you can simply look at the output of cat /proc/cpuinfo and compare the siblings with the CPU cores fields.

Even though cat /proc/cpuinfo shows you all the logical CPUs (processor field) in the system, the siblings field holds the number of logical CPUs for the physical CPU this entry belongs to (including both the cores and the hyper-threaded LCPUs).

In other words, if you see:

processor : 8
physical id : 9
siblings : 4
cpu cores : 2

It means that LCPU #8 (the eight logical CPU in your system) is one of the 4 logical CPUs on the physical CPU that has 2 cores. So yes, hyper-threading is enabled.

If the number of CPU cores is the same as the number of siblings, hyper-threading is disabled.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .