# [Hyperthreading] Pentium IV HT - Seulement un coeur !

## jaypeche

Bonjour à tous,

Dernièrement j'ai migré vers SystemD et gnome-shell, j'étais auparavant en OpenRC et gnome-2.

Depuis ma migration seulement un coeur est effectif d'après la commande nproc :

```
dbox2 portage # nproc

1

dbox2 portage # nproc --all

2

dbox2 portage # uname -a

Linux dbox2.arg.org 3.14.0-gentoo #1 SMP Tue Apr 15 12:37:19 CEST 2014 x86_64 Intel(R) Pentium(R) 4 CPU 3.00GHz GenuineIntel GNU/Linux

```

Avant ma migration nproc me retournait 2 coeurs effectifs, depuis seulement un alors que l'hyperthreading permet d'emuler 2 coeurs physiques (dire si je me trompe !). L'HT est pourtant activer dans le bios et dans ma config kernel.

Je n'arrive pas à comprendre le pourquoi du comment ? Quelqu'un aurait-il un élément de réponse ?

Emerge --info : http://bpaste.net/show/263357/

Kernel config : http://bpaste.net/show/263364/

----------

## xaviermiller

Et que donne le contenu de /proc/cpuinfo ?

As-tu vérifié ton noyau, car c'est à ce niveau que ça se configure, et ce n'est probablement pas dû à systemd.

----------

## jaypeche

Bonsoir Xavier,

Bizzarement depuis la migration, mon cpu tournait sur une patte, le CPU0 n'étant quasiment jamais utilisé.

nproc me retournait 1 coeur logiciel alors que j'en avais deux disponibles.

Assez curieusement, et entre temps j'ai fais une mise à jour systeme et mon bouzzin tourne maintenant sur ces deux pattes.

```
dbox2 app-benchmarks # nproc

2

```

Je peux enfin profiter de mon CPU a plein régime car ce bug reduisait de moitié la puissance de calcul. Je ne m'explique pas ce qui a fait que, je n'ai pourtant rien touché d'autres. Du fait, je ne vais peut etre pas passé ce post en résolu bien que cela fonctionne chez moi.

```
dbox2 app-benchmarks # cat /proc/cpuinfo 

processor   : 0

vendor_id   : GenuineIntel

cpu family   : 15

model      : 4

model name   : Intel(R) Pentium(R) 4 CPU 3.00GHz

stepping   : 3

microcode   : 0x5

cpu MHz      : 3000.000

cache size   : 2048 KB

physical id   : 0

siblings   : 2

core id      : 0

cpu cores   : 1

apicid      : 0

initial apicid   : 0

fpu      : yes

fpu_exception   : yes

cpuid level   : 5

wp      : yes

flags      : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc pebs bts nopl pni dtes64 monitor ds_cpl est cid cx16 xtpr

bogomips   : 5999.99

clflush size   : 64

cache_alignment   : 128

address sizes   : 36 bits physical, 48 bits virtual

power management:

processor   : 1

vendor_id   : GenuineIntel

cpu family   : 15

model      : 4

model name   : Intel(R) Pentium(R) 4 CPU 3.00GHz

stepping   : 3

microcode   : 0x5

cpu MHz      : 3000.000

cache size   : 2048 KB

physical id   : 0

siblings   : 2

core id      : 0

cpu cores   : 1

apicid      : 1

initial apicid   : 1

fpu      : yes

fpu_exception   : yes

cpuid level   : 5

wp      : yes

flags      : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc pebs bts nopl pni dtes64 monitor ds_cpl est cid cx16 xtpr

bogomips   : 5999.99

clflush size   : 64

cache_alignment   : 128

address sizes   : 36 bits physical, 48 bits virtual

power management:

```

----------

## xaviermiller

Hello,

Désolé de te refroidir, mais l'hyperthreading n'est pas 2 coeurs, c'est juste une simulation de 2 coeurs dans un coeur physique.

Donc en fait, ton CPU a toujours été utilisé à 100%  :Wink: 

----------

## jaypeche

C vrai mais sur ce genre de proc l'optimisation 64bits et 2 coeurs simulés apportent de bien meilleurs performances quant à la gestion des ressourcoes.

Auparavant, je n'avais pas à lancé une compilation et une session xbmc, alors que maintenant ca fonctionne sans sourciller.

C'est d'ailleurs tout l'intéret de Gentoo, merçi pour l'info   :Smile: 

----------

## xaviermiller

En effet, l'hyper-threading du P4HT était vraiment efficace pour faire du traitement lourd sans faire ramer l'interface.

----------

## anigel

Bonsoir,

Le pipeline était tellement long qu'enquiller 2 instructions dedans en même temps marchait 90% du temps  :Wink: . Comme quoi même quand Intel fait des erreurs de conception il arrive à s'en sortir. Quel talent !

 :Laughing: 

----------

