Read the local apic id of the current logical processor

Edwin Bennink <[email protected]> Thu, 20 Jan 2011 11:38:14 +0100
Newsgroups org.kernel.vger.linux-smp
Message-ID <[email protected]>
Dear smp list members,


I'm looking for a way to read the local apic id (not the initial one) of 
the current logical processor in a simple user-space program.
According to the documentation I found, this local apic id is stored in 
a memory mapped msr register. Unfortunately I could not find a way to 
access this value from within user-space. All search results on the web 
involved kernel code...

The purpose of getting this id is to determine the processor hierarchy 
on a cluster; i.e. the number of logical processors, physical 
processors, packages, and nodes. The initial apic id (the one cpuid 
returns) is set by the bios and therefore it does not distinguish 
between the nodes in a cluster.

Any other way to get some kind of node id for the current logical 
processor makes me happy too :-)


Best,
Edwin