2

I'm running the following command:

cat /proc/cpuinfo | /bin/egrep 'processor|model name|cache size|core|sibling|physical'

Which gives this output:

processor   : 0
model name  : Intel(R) Xeon(R) CPU           E5520  @ 2.27GHz
cache size  : 8192 KB
physical id : 0
siblings    : 8
core id     : 0
cpu cores   : 4
address sizes   : 40 bits physical, 48 bits virtual
processor   : 1
model name  : Intel(R) Xeon(R) CPU           E5520  @ 2.27GHz
cache size  : 8192 KB
physical id : 0
siblings    : 8
core id     : 1
cpu cores   : 4
address sizes   : 40 bits physical, 48 bits virtual

So I can tell Hyperthreading is ON, given the ht flag in the full cpuinfo output, and also because siblings are twice the cpu cores.

Does this mean I have one physical quad core processor with HT enabled and that's it?

It's not clear to me why there are only 2 processor records listed (core ids 0 and 1). Shouldn't there be 2 other records for cores 2 and 3?

*Note: Running lscpu gives me an error "failed to determine number of CPUs"

Jk33
  • 123

1 Answers1

1

In the output of cat /proc/cpuinfo above you can see the following information:

physical id : 0
siblings    : 8
core id     : 0
cpu cores   : 4

Looking at this Intel page about your processor specification, It is clear that your processor has 4 cores. So, cpuinfo is correct.

Also, you can see the count of siblings is 8 and cpu cores are 4. cpu cores being 4 is that total number of cores in the processor.

Most new processors are designed to save power and battery, meaning not necessary that all the cores are running at the same time. The contents of /proc/cpuinfo is somewhat implementation dependent and misleading, so it is not necessary to correctly report the hardware information. In fact, /proc/cpuinfo is one of the few places in Linux where you get complete information about what hardware you have.

In order to count the correct number of CPUs Use the command [nproc][1] which is part of coreutils. This command prints the number of processing units available to the current process.

To find the number of all installed cores/processors, run the command nprocas follows:

nproc --all
--all  print the number of installed processors

More information about /proc/cpuinfo and the number of processors can be reached here