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. >