Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

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  
share|improve this question
1  
Can you type on both computers " sudo dmidecode -t processor | grep HTT" –  Luis Alvarado Aug 17 '13 at 14:46
    
Both say HTT (Multi-threading) –  madmax Aug 19 '13 at 6:04
1  
@madmax there is lots of Core i5 CPUs. Are you sure those are the same? –  sajjadG Aug 22 '13 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 '13 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 '13 at 10:31
show 6 more comments

3 Answers

up vote 2 down vote accepted
+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.

share|improve this answer
    
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 '13 at 8:23
add comment

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.

share|improve this answer
    
Yes, but my CPU's are identical. Both say model name : Intel(R) Core(TM) i5-2410M CPU @ 2.30GHz –  madmax Aug 23 '13 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 '13 at 10:38
    
@madmax also lshw -class cpu is useful –  sajjadG Aug 23 '13 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 '13 at 11:51
add comment

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.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.