Identification of HTT cores on newer (CPUID leaf 11) Intel
processors
Andrew Boyer
aboyer at averesystems.com
Wed Sep 14 20:02:47 UTC 2011
On Sep 14, 2011, at 3:56 PM, Andriy Gapon wrote:
> on 14/09/2011 20:59 Andrew Boyer said the following:
>> When FreeBSD examines the CPU topology using CPUID leaf 11 in
>> topo_probe_0xb(), it never sets hyperthreading_cpus. At the end of
>> topo_probe_0x4() it sets hyperthreading_cpus = cpu_logical.
>>
>> Adding that assignment to line 316 of sys/amd64/amd64/mp_machdep.c seems to
>> do the right thing on a system with two quad-core E5620 CPUs. The APIC IDs
>> that appear when SMT is enabled in the BIOS get marked AP/HT.
>>
>> Do you agree?
>
> I agree, but...
> But see this:
> http://thread.gmane.org/gmane.os.freebsd.devel.hackers/44007/focus=44024
>
> Someone long ago has decided that new HTT is not the same as old HTT and that
> some rules that apply to old HTT should not apply to new HTT. Even the name.
> I think that that's not correct.
> But it doesn't seem that I am able to engage into a discussion the person who
> made that decision. Also I can not find any other interested developer either.
>
> Anyway, hyperthreading_cpus variable is useless beyond dmesg cosmetics.
> And I don't think that any of my changes affected the dmesg output.
>
> In my "avgBSD" I have different SMP topology code, but it's not ready yet to be
> submitted for merge into the main tree.
>
> --
> Andriy Gapon
Actually, it's not useless. If you don't set it to something other than zero the machdep.hyperthreading_allowed tunable doesn't do anything, since it can't tell which CPUs are actually HTT.
-Andrew
--------------------------------------------------
Andrew Boyer aboyer at averesystems.com
More information about the freebsd-current
mailing list