So it looks like the recipe should be:

Is the ht flag set?  If not, there is no hyperthreading.  If yes, check
for the physical id field.  If it is not present, then assume that each
CPU is distinct.  If physical id is present, looking at sibling number to
determine if there are multipple hyperthreading cores. (Is it even 
possible to have a physical id with no sibling field??)

Maybe a sanity check would be, if siblings=2, make sure there are 2 CPUs
with the same physical id.

--Rick


> I just took a look at the source code to see what the story was.  There
> are two fields: physical id and siblings.  The physical id is the
> physical processor ID as return by a CPUID call.  The siblings is the
> number of hyperthreading cores in that physical CPU.  A sibling value of
> 1 indicates that hyperthreading is disabled.  These fields are not valid
> unless there is also a HT flag in the capabilities field.
> 
> Regards,
>  Robert.
> 


Reply via email to