cancel
Showing results for 
Search instead for 
Did you mean: 

linux cpu id

Carrez_1
Occasional Advisor

linux cpu id

I am wondering why on a HP Proliant DL 140 with two Xeon cpu when HT is disabled the cat /proc/cpuinfo displays the two cpu with the same physical ID 0

As the two cpu are physical (not logical HT is disabled) the cpu physical ID should be different (e.g 0 and 6)

In my case DL 140 running redhat EL 3 with smp kernel 2.4.21.37 the ID are identical
12 REPLIES
Muthukumar_5
Honored Contributor

Re: linux cpu id

http://softwareforums.intel.com/ids/board/message?board.id=42&message.id=782
Easy to suggest when don't know about the problem!
Muthukumar_5
Honored Contributor

Re: linux cpu id

same type of cpuinfo informations are with this posting.

http://lists.rlug.org/pipermail/rlug/2004-December/003237.html

hth.
Easy to suggest when don't know about the problem!
Sergejs Svitnevs
Honored Contributor

Re: linux cpu id

Check out the following Intel document: "Detecting Support for Hyper-Threading".

http://www.intel.com/cd/ids/developer/asmo-na/eng/dc/threading/knowledgebase/20416.htm?page=1

Seems that on dual processors host all processors return same CPUID.

The only difference between CPU is a serial number but cpuinfo does not return this info.

Regards,
Sergejs
Carrez_1
Occasional Advisor

Re: linux cpu id

CPUID are identical in case of logical cpu when HT is enabled and in that case the sibling is equal to 2 with a sibling map.

But when HT is disabled, sibling is equal to 1 and I don't see why the cpuid should be equal as the two cpu are distinct and physical, the cpuid (returned by /proc/cpuinfo) should be different at least it works like this and the two physical cpu are different on a dell server with two Xeon processor and the same linux kernel.

Now, I can add that I check the serial number ID using the linux command dmidecode and this command returns the two processor but with the same ID ie 29 0F 00 00 FF FB EB BF

strange isn't it?

same cpuid and same ID using dmidecode for two physical processor
Sergejs Svitnevs
Honored Contributor

Re: linux cpu id

I highly recommend you to upgrade your bios-System ROM.

You can get new software at:
http://h18004.www1.hp.com/support/files/server/us/locate/101_5616.html

Regards,
Sergejs
Carrez_1
Occasional Advisor

Re: linux cpu id

But I have already an BIOS up to date for the server DL140

I load the BIOS upgrade from

http://h18023.www1.hp.com/support/files/server/us/locate/101_5771.html

without any succes in resolve my problem

another point the redhat EL 3 used is certified by HP to run on DL140 server...

So either I can find a solution to check that the two cpu are correctly used (and in that case cpu physical ID should be different) or I am sure that there is a bug from HP maybe in the BIOS?

sample codes find on http://www.intel.com/cd/ids/developer/asmo-na/eng/dc/threading/knowledgebase/20416.htm?page=1
are not very usefull because unfortunatly I can not succeed to make it run and compile under linux

But do someone agree with me when I say that without Hyperthreading two physical cpu should have two different physical id?
Sergejs Svitnevs
Honored Contributor

Re: linux cpu id

I also have DL140 server with Debian 3.1 and HT enabled.

/proc/cpuinfo output shows:
processor : 0
vendor_id : GenuineIntel
cpu family : 15
model : 2
model name : Intel(R) Xeon(TM) CPU 2.40GHz
stepping : 9
cpu MHz : 2399.398
cache size : 512 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht t
m pbe cid
bogomips : 4784.12

processor : 1
vendor_id : GenuineIntel
cpu family : 15
model : 2
model name : Intel(R) Xeon(TM) CPU 2.40GHz
stepping : 9
cpu MHz : 2399.398
cache size : 512 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht t
m pbe cid
bogomips : 4797.23

processor : 2
vendor_id : GenuineIntel
cpu family : 15
model : 2
model name : Intel(R) Xeon(TM) CPU 2.40GHz
stepping : 9
cpu MHz : 2399.398
cache size : 512 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht t
m pbe cid
bogomips : 4797.23

processor : 3
vendor_id : GenuineIntel
cpu family : 15
model : 2
model name : Intel(R) Xeon(TM) CPU 2.40GHz
stepping : 9
cpu MHz : 2399.398
cache size : 512 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht t
m pbe cid
bogomips : 4797.23


Processor ID 's are different.

Regards,
Sergejs
Carrez_1
Occasional Advisor

Re: linux cpu id

when I talk about processor cpu id I do not mean the number affected to each processor. You have a DL 140 running debian and HT enabled so you get 4 cpu (number 0 to 3) but in fact there is 4 logical cpu. Unfortunatly in your case the command /proc/cpuinfo does not give you access to the cpu physical id may be try dmesg to get the cpu physical id

as a example cat /proc/cpuinfo in my case (with redhat)

processor : 0
vendor_id : GenuineIntel
cpu family : 15
model : 2
model name : Intel(R) Xeon(TM) CPU 3.06GHz
stepping : 9
cpu MHz : 3065.913
cache size : 512 KB
physical id : 0
siblings : 1
runqueue : 0
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm
bogomips : 6121.06

processor : 1
vendor_id : GenuineIntel
cpu family : 15
model : 2
model name : Intel(R) Xeon(TM) CPU 3.06GHz
stepping : 9
cpu MHz : 3065.913
cache size : 512 KB
physical id : 0
siblings : 1
runqueue : 1
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm
bogomips : 6121.06

As you can see you can get the physical id of the cpu. And here the problem is that the cpu id are identical for two physical cpu

now on a HT enabled system

processor : 0
vendor_id : GenuineIntel
cpu family : 15
model : 2
model name : Intel(R) Xeon(TM) CPU 3.06GHz
stepping : 9
cpu MHz : 3065.930
cache size : 512 KB
physical id : 0
siblings : 2
runqueue : 0
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm
bogomips : 6121.06

processor : 1
vendor_id : GenuineIntel
cpu family : 15
model : 2
model name : Intel(R) Xeon(TM) CPU 3.06GHz
stepping : 9
cpu MHz : 3065.930
cache size : 512 KB
physical id : 0
siblings : 2
runqueue : 0
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm
bogomips : 6121.06

processor : 2
vendor_id : GenuineIntel
cpu family : 15
model : 2
model name : Intel(R) Xeon(TM) CPU 3.06GHz
stepping : 9
cpu MHz : 3065.930
cache size : 512 KB
physical id : 6
siblings : 2
runqueue : 2
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm
bogomips : 6121.06

processor : 3
vendor_id : GenuineIntel
cpu family : 15
model : 2
model name : Intel(R) Xeon(TM) CPU 3.06GHz
stepping : 9
cpu MHz : 3065.930
cache size : 512 KB
physical id : 6
siblings : 2
runqueue : 2
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm
bogomips : 6121.06

and two logical cpu share the same physical id

David Timms
Frequent Advisor

Re: linux cpu id

Carrez, are you running a normal or SMP kernel when you get these results ?
Carrez_1
Occasional Advisor

Re: linux cpu id

I am running a smp kernel 2.4.21-37 but same result with smp kernel 2.4.21-27

In order to get the two proc activated you obviously have to run a smp kernel
Craig Gilmore
Trusted Contributor

Re: linux cpu id

What you are seeing is normal on HP systems running Linux. The physical id field in /proc/cpuinfo file is usually set to zero. The exception would have this value set to something else.

I've tested this on HP Netservers and ProLiants of various models.

The real question should be, is this a concern? I don't think so, as the processor field is populated.

If you really have to check the physical id field, using lshw is my recommendation.
Carrez_1
Occasional Advisor

Re: linux cpu id

So the behaviour (two cpu with the same physical ID) seems to be "normal" but in that case how explains that when HT is enabled the system detects four cpu (two logical processor by physical cpu) with the correct ID i.e cpu #0 and #1 (logical from the first physical processor) with ID 0 and cpu #2 and #3 (logical from the second physical processor) with ID 3 (I have also checked that with HT enabled the sibling map is correct)?

In that case physical ID are different so I have still the question why when HT is disables physical ID are identical