2007-01-08 09:51:09

by Robin H. Johnson

[permalink] [raw]
Subject: Intel Core Duo/Duo2 T2300/E6400 - Hyper-Threading (the absence of)

(Please CC me, I am not subscribed to LKML [I have set the
Mail-Followup-To header accordingly]).

On two of my new machines, with Intel Core Duo T2300 and Core2 Duo E6400
chips respectively, I noticed some weirdness in how many CPUs are
present.

If the hyper-threading bit is present in the CPU info, should there
always be a an extra CPU presented to the system per physical core?

Both the Core1 and Core2 chips I have the ht bit set, but present only
their two physical cores to the system. No access to the hyper-threading
capabilities at all. I also see no configuration options in the BIOS to
enable or disable hyper-threading. That is, /proc/cpuinfo and all
topology data only shows 2 CPUs present, and that they are not the HT
pair.
(CONFIG_NR_CPUS=8 is set).

(This was originally triggered by somebody else's code that read the CPU
flags, saw hyper-threading, and decided there were 2x cpus for each
physical core. Said code has already been taken out back and shot
repeatedly).

--
Robin Hugh Johnson
Gentoo Linux Developer
E-Mail : [email protected]
GnuPG FP : 11AC BA4F 4778 E3F6 E4ED F38E B27B 944E 3488 4E85


Attachments:
(No filename) (1.11 kB)
(No filename) (240.00 B)
Download all attachments

2007-01-08 10:01:54

by Jakub Jelinek

[permalink] [raw]
Subject: Re: Intel Core Duo/Duo2 T2300/E6400 - Hyper-Threading (the absence of)

On Mon, Jan 08, 2007 at 01:44:32AM -0800, Robin H. Johnson wrote:
> (Please CC me, I am not subscribed to LKML [I have set the
> Mail-Followup-To header accordingly]).
>
> On two of my new machines, with Intel Core Duo T2300 and Core2 Duo E6400
> chips respectively, I noticed some weirdness in how many CPUs are
> present.
>
> If the hyper-threading bit is present in the CPU info, should there
> always be a an extra CPU presented to the system per physical core?

No. The ht flag just says whether HT reporting via CPUID is supported.
Core2 Duo E6400 is AFAIK not hyper-threaded, you just have 2 real sibling
CPUs (except that they share L2 cache).

Jakub

2007-01-09 02:07:32

by David Schwartz

[permalink] [raw]
Subject: RE: Intel Core Duo/Duo2 T2300/E6400 - Hyper-Threading (the absence of)


> On two of my new machines, with Intel Core Duo T2300 and Core2 Duo E6400
> chips respectively, I noticed some weirdness in how many CPUs are
> present.
>
> If the hyper-threading bit is present in the CPU info, should there
> always be a an extra CPU presented to the system per physical core?

No. That just means the CPU supports hyper-threading technology. That
doesn't mean it actually has an extra CPU per physical core, or that even if
it did, that that core was enabled.

> Both the Core1 and Core2 chips I have the ht bit set, but present only
> their two physical cores to the system. No access to the hyper-threading
> capabilities at all. I also see no configuration options in the BIOS to
> enable or disable hyper-threading. That is, /proc/cpuinfo and all
> topology data only shows 2 CPUs present, and that they are not the HT
> pair.
> (CONFIG_NR_CPUS=8 is set).

Intel considers multiple physical cores on a chip to be hyper-threading too.
HT is a marketing term, not a technical one.

> (This was originally triggered by somebody else's code that read the CPU
> flags, saw hyper-threading, and decided there were 2x cpus for each
> physical core. Said code has already been taken out back and shot
> repeatedly).

Yeah, that's wrong for many reasons. Even if the CPU does support an extra
logical core per physical core, it may or may not be enabled and in use.
Basically, the HT bit being set tells you that you should continue to
determine the number of logical and physical cores present. It's just a step
in the detection sequence.

DS