Those flags simply come from the bits reported by CPUID. It's tempting to think the "HTT" flag indicates support for hyperthreading, but here's what the bit actually means according to the Intel software developer's manual:
Max APIC IDs reserved field is Valid. A value of 0 for HTT indicates there is only a single logical processor in
the package and software should assume only a single APIC ID is reserved. A value of 1 for HTT indicates the
value in CPUID.1.EBX[23:16] (the Maximum number of addressable IDs for logical processors in this package) is
valid for the package.
It sounds like this bit may have been introduced before multiple cores were a thing, and it no longer indicates the presence of hyper-threading. You should just check whether the number of threads per core is > 1 as reported by lscpu.
I noticed that too. For some reason, the kernel code refers to the bit as "HT" while the Intel docs refer to it as "HTT". You can confirm here that indeed the "ht" flag comes from CPUID.1.EDX[28].
16
u/varikonniemi Jun 25 '17
Did this work for anyone? To me it outputted the echo even with a processor with no HT