I know it should be a simple matter of grep -wl ht /proc/cpuinfo
but that's not always accurate.
I have an i5-7440HQ CPU which doesn't support hyper-threading (Intel, WikiPedia, and my BIOS agree on this).
Yet /proc/cpuinfo
and dmidecode
both show that hyperthreading is supported (but disabled). Kernel 4.10.8
When running a report of all machines that are HT capable, but have it disabled, this machine shows as a false positive... I'd like to fix that.
Is there a more accurate test that will show that this CPU really doesn't have HT?
Edit:
The related question Checking if HyperThreading is enabled or not? asks how to tell if it's enabled, which is not what I'm asking. Some of the answers to that question mistakenly attempt to answer this question instead, but none of them provide a correct answer (as noted above).
/proc/cpuinfo
is pretty much a 1-1 representation of the information provided by the CPU itself with theCPUID
instruction. How does the BIOS know that HT isn’t supported, if the CPU claims it is? Curious... – Stephen Kitt Apr 09 '17 at 07:57cpuid | grep hyper-threading
output? (Usingcpuid
which is probably packaged for your distribution.) – Stephen Kitt Apr 12 '17 at 08:48hyper-threading / multi-core supported = true
– TheAmigo Apr 12 '17 at 19:07cpuid
just reports the results of theCPUID
instruction). What doeslscpu | grep " per "
report? Do you have any other 7440HQs to test against? – Stephen Kitt Apr 12 '17 at 20:05Thread(s) per core: 1
, but that's really just saying that hyperthreading isn't currently turned on, right? No, I don't have any other 7440HQs (too new), but it's likely that more will show up in the office in the coming months. – TheAmigo Apr 12 '17 at 22:56