Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

Problem solved!

After speaking to Dell's support they realized that I had to remove the option acpi=off from my /boot/grub/menu.1st config file. Apparently ACPI support is essential for hyper-threading, but is turned off by default when installing CentOS 6.2.


I have a Dell server with two Intel Xeon E5645 cpus, each cpu has 6 cores, and each core is hyperthreaded (i.e. should be equivalent to two virtual cores). I installed CentOS 6.2 on this server and it seems to detect only 12 cores (although there should be 24 virtual cores altogether).

When I look at /proc/cpuinfo I get for each cpu:

cpu cores: 6
siblings: 6

Which seems to indicate that number of cores equals number of virtual cores, or hyperthreading not detected/enabled.

When I run dmidecode I can see that HT flag is turned on and I do see the following, which seem to indicate that the BIOS is configured correctly for hyperthreading.

Core Count: 6
Core Enabled: 6
Thread Count: 12

Is there some configuration that I am missing in order to make Linux detect all virtual cores?

share|improve this question
    
The processor model is Intel Xeon E5645 –  Oren Mel Oct 18 '12 at 11:23
    
What says if you type grep -c processor /proc/cpuinfo? –  Renan Oct 18 '12 at 14:22
    
I get the following: 12 –  Oren Mel Oct 18 '12 at 14:37
    
There isn't anything special that has to be done on our dual E5649 box. Except make sure its on in the BIOS. (Ours is Supermicro, not Dell. And Debian, not CentOS) –  derobert Oct 18 '12 at 17:21
10  
You can add your solution as an answer; isn't needed to edit the question. –  Renan Oct 24 '12 at 15:00
show 2 more comments

2 Answers 2

Did you check your BIOS settings, i.e. if hyperthreading is not turned on in your BIOS, then it is not operational.

share|improve this answer
    
The OP says: "When I run dmidecode I can see that HT flag is turned on and I do see the following, which seem to indicate that the BIOS is configured correctly for hyperthreading." –  Renan Oct 18 '12 at 14:21
    
I checked. The BIOS settings seem okay. To the best of my understanding the relevant option is "logical processor" and it is enabled. –  Oren Mel Oct 18 '12 at 14:27
add comment

In the Linux kernel configuration, there's an option called

CONFIG_NR_CPUS

Its description in the kernel documentation:

This allows you to specify the maximum number of CPUs which this kernel will support. The maximum supported value is 512 and the minimum value which makes sense is 2.

Check this value, and increase it if needed. Of course, you need to re-compile your kernel afterwards.

share|improve this answer
    
Here are the relevant config options on my server. They all seem ok to me.CONFIG_MAXSMP=y CONFIG_NR_CPUS=4096 CONFIG_SCHED_SMT=y –  Oren Mel Oct 18 '12 at 14:24
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.