Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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

closed as off-topic by Braiam, Anthon, garethTheRed, Volker Siegel, Networker Sep 19 '14 at 8:59

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions describing a problem that can't be reproduced and seemingly went away on its own (or went away when a typo was fixed) are off-topic as they are unlikely to help future readers." – Braiam, Anthon, garethTheRed, Volker Siegel, Networker
If this question can be reworded to fit the rules in the help center, please edit the 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
You can add your solution as an answer; isn't needed to edit the question. – Renan Oct 24 '12 at 15:00

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

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


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

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