FAQ/HyperthreadingDoesNotWork

My CPU says it can do hyperthreading. Why do I only see one thread?

This is a normal issue which people often ask about. There are a number of common reasons why a CPU that claims hyperthreading capability does not show multiple threads per core.

What is hypertheading?

Hyperthreading is an optional feature in newer Intel CPUs which presents two virtual CPU cores running on a single physical core. In effect, the extra thread will execute when the first thread is busy waiting on something else. In some CPU cores, both threads can even execute simultaneously as long as they use different functional units. Wikipedia has a page describing it in much more detail.

Single threaded core

A number of processor models have hyperthreading capabilities in the architecture, but only one thread per core.

Early P4 CPUs

Some early P4 CPUs came with HT in the architecture, but only one thread per core.

Hyperthreading with a Dual Core CPU?

Intel's Core Duo CPU is based on the same architecture that supports hyperthreading technology. If you run "cpuid" on such a CPU it will report that the chip supports hyperthreading. However, this is misleading. While the architecture supports this feature, this particular CPU model only contains one thread per core. On an SMP kernel both cores will show up as CPUs, but that is all.

Not running an SMP kernel

But I only have one CPU. Why do I need an SMP kernel?

This is an often asked question. The answer is quite simple: a hyperthreaded CPU (with multiple threads) presents multiple virtual CPUs to the operating system. In order to use multiple virtual CPUs, you need an SMP kernel.