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?


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).

  • 1
    The annoying thing about the latter linked question is that the accepted answer is wrong (although it does point to a correct, if sub-optimal, answer). :-( – Stephen Kitt Apr 7 '17 at 5:40
  • @StephenKitt that's really a different question. When hyperthreading is disabled, it could be because it's turned off in BIOS or because the CPU doesn't support it. The way to check if it's supported (my question) is different than the check to see if it's enabled (the other question). – TheAmigo Apr 9 '17 at 1:09
  • The odd thing here is that /proc/cpuinfo is pretty much a 1-1 representation of the information provided by the CPU itself with the CPUID instruction. How does the BIOS know that HT isn’t supported, if the CPU claims it is? Curious... – Stephen Kitt Apr 9 '17 at 7:57
  • @StephenKitt exactly, it's very odd, that's why I wanted to ask the question. – TheAmigo Apr 9 '17 at 14:13
  • What does cpuid | grep hyper-threading output? (Using cpuid which is probably packaged for your distribution.) – Stephen Kitt Apr 12 '17 at 8:48

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.