Re: How to detect multi-core and/or HT-enabled CPUs in 2.4.x and2.6.x kernels

From: Arjan van de Ven
Date: Wed Dec 27 2006 - 10:13:25 EST

> one piece of information that Ganglia collects for a node is the
> "number of CPUs", originally meaning "physical CPUs".

Ok I was afraid of that.

> With the
> introduction of HT and multi-core things are a bit more complex now. We
> have decided that HT sibblings do not qualify as "real" CPUs, while
> multi-cores do.

I think that decision is a mistake, and is probably based on experiences
with the first generation of HT capable Pentium 4 processors.

The original p4 HT to a large degree suffered from a too small cache
that now was shared. SMT in general isn't per se all that different in
performance than dual core, at least not on a fundamental level, it's
all a matter of how many resources each thread has on average. With dual
core sharing the cache for example, that already is part HT. Putting the
"boundary" at HT-but-not-dual-core is going to be highly artificial and
while it may work for the current hardware, in general it's not a good
way of separating things (just look at the PowerPC processors, those are
highly SMT as well), and I suspect that your distinction is just going
to break all the time over the next 10 years ;) Or even today on the
current "large cache" P4 processors with HT it already breaks. (just
those tend to be the expensive models so more rare)

I would strongly urge you to reconsider this decision; if you want to
show "sockets" that sounds reasonable, or even if you want to do it on
the "bus sharing" level (FSB/HT), but HT.. just sounds wrong.

if you want to mail me at work (you don't), use arjan (at)
Test the interaction between Linux and your BIOS via

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at