cpuinfo_x86 and apicid

Stephane Eranian
2006-07-06T15:09:37Z

Hello,

In the context of the perfmon2 subsystem for processor with HyperThreading,
we need to know on which thread we are currently running. This comes from
the fact that the performance counters are shared between the two threads.

We use the thread id (smt_id) because we split the counters in half
between the two threads such that two threads on the same core can run
with monitoring on. We are currently computing the smt_id from the
apicid as returned by a CPUID instruction. This is not very efficient.

I looked through the i386 code and could not find a function nor
structure that would return this smt_id. In the cpuinfo_x86 structure
there is an apicid field that looks good, yet it does not seem to be
initialized nor used.

Is cpuinfo_x86->apicid field obsolete?
If so, what is replacing it?

Thanks.

--
-Stephane