From my recollection of the Intel documentation I think it's pretty explicit so knowing if you're dealing with a "real" core or a hyperthreading instance shouldn't be difficult. This is actually fairly critical to the work I'm doing with BareMetal as I'm using the cycle clock and cpu performance monitors to try to quantify the impact of non-aligned memory, cache misses, etc. along with general performance and improvements of 64-bit algorithms and overhead of vmx which BareMetal is clearly ideally suited for. Once I get into multiprocessing efforts this distinction will be critical. I'd rather BareMetal make this distinction explicit than implicit but I can't yet say what the impact will be on me until I try it.
Thus far, otherwise, I'm very pleased with BareMetal OS and hope to have some useful or at least interesting contributions to it. I'm curious - is uefi part of the road map for BareMetal OS?
-- Ben