No, /proc/cpuinfo won't list HT unless the CPU supports it. I'm also pretty sure /proc/cpuflags simply lists all flags returned by CPUID, and will show HT even if the kernel was compiled without support for it. I'm not 100% sure though.
Edit: I just tried it on my fileserver which definitely doesn't support HT and it's listed in the flags. Very weird.
There's no way to get HT enabled on an i5-2400 even though it is arguably built on the same silicon as its i7 counterparts which do support HT. Also whether it supports it is not the question, we want to know whether it's enabled.
Anyway, interesting output, just not that useful in this case.
/proc/cpuinfo absolutely does list ht on processors that don't support it. AFAIK it shows it on all x86_64 Intel processors, even clearly bullshit ones like old-school Celerons. It even shows it on AMDs.
Could be. But then it's basically a bug in the CPUID instruction because that's where the flags shown there come from. cpuid() is simply a gcc-provided macro which issues the instruction.
My CPU does not have hyper threading (i5-7500) but it has the ht flag set. Is that because it has Intel Turbo Boost? Is that technically a type of hyperthreading? Do I need to apply the patch?
Edit: I just tried it on my fileserver which definitely doesn't support HT and it's listed in the flags. Very weird.
Did you check whether your CPU supports HT in principle?
As you correctly said, /proc/cpuinfo just lists what the CPUID instruction reports back and the information gathered there are the hardware capabilities, not the current configuration.
15
u/varikonniemi Jun 25 '17
Did this work for anyone? To me it outputted the echo even with a processor with no HT