[Resolu] Intel(R) Celeron(R) CPU 2.40GHz et Hyper-Threading

Bonsoir,
Bon je persiste, vu que tout ce que je lis sur google ne m’apporte pas vraiment de réponses, ou alors, j’ai besoin d’aide pour les interpréter …
Ici, c’est pas mal débroussaillé : forum.debian-fr.org/viewtopic.php?t=3022

Alors, Intel® Celeron® CPU 2.40GHz et Hyper-Threading, Hérésie ?
Voici ce qu’on lit par ci par là :

[quote=“http://linuxfr.org/~prae/10281.html”]
Extraits de posts :
Si le flag ht est présent et que ton noyeau est SMP, alors je pense que l’hyper threading est actif et que deux processeurs virtuels -> un processeur physique.
Si pas de flag ht, il y a identité entre les deux nombres.
Si pas de smp tu ne verra jamais plus d’un seul processeur.
Réponse :
le flag ht ca veut un peu rien dire , j ai un celeron4 2ghz et le flag ht apparait , pourtant aucuns des celerons n est censé supporté l hyperthreading.
processor : 0
vendor_id : GenuineIntel
cpu family : 15
model : 2
model name : Intel® Celeron® CPU 2.00GHz
Réponse :
Merde, si Intel se met a inventer des systèmes pour detecter les capacités de ses processeurs et les utilise n’importe comment, où va-t-on ?
D’un autre coté les celeron ne supportent pas le SMP donc il ne peut y en avoir qu’un seul.
[/quote]
Bon ça c’était en 2004 … Le mieux je me dis, c’est d’aller voir sur Intel :

Je fais donc un [code]$ sudo apt-get install cpuid
$ cpuid
eax in eax ebx ecx edx
00000000 00000005 756e6547 6c65746e 49656e69
00000001 00000f33 00010800 0000041d bfebfbff
00000002 605b5101 00000000 00000000 003c7040
00000003 00000000 00000000 00000000 00000000
00000004 00000121 01c0003f 0000001f 00000000
00000005 00000040 00000040 00000000 00000000
80000000 80000008 00000000 00000000 00000000
80000001 00000000 00000000 00000000 00000000
80000002 20202020 20202020 20202020 20202020
80000003 65746e49 2952286c 6c654320 6e6f7265
80000004 20295228 20555043 30342e32 007a4847
80000005 00000000 00000000 00000000 00000000
80000006 00000000 00000000 01004040 00000000
80000007 00000000 00000000 00000000 00000000
80000008 00002028 00000000 00000000 00000000

Vendor ID: “GenuineIntel”; CPUID level 5

Intel-specific functions:
Version 00000f33:
Type 0 - Original OEM
Family 15 - Pentium 4
Extended family 0
Model 3 -
Stepping 3
Reserved 0

Extended brand string: " Intel® Celeron® CPU 2.40GHz"
CLFLUSH instruction cache line size: 8
Hyper threading siblings: 1

Feature flags bfebfbff:
FPU Floating Point Unit
VME Virtual 8086 Mode Enhancements
DE Debugging Extensions
PSE Page Size Extensions
TSC Time Stamp Counter
MSR Model Specific Registers
PAE Physical Address Extension
MCE Machine Check Exception
CX8 COMPXCHG8B Instruction
APIC On-chip Advanced Programmable Interrupt Controller present and enabled
SEP Fast System Call
MTRR Memory Type Range Registers
PGE PTE Global Flag
MCA Machine Check Architecture
CMOV Conditional Move and Compare Instructions
FGPAT Page Attribute Table
PSE-36 36-bit Page Size Extension
CLFSH CFLUSH instruction
DS Debug store
ACPI Thermal Monitor and Clock Ctrl
MMX MMX instruction set
FXSR Fast FP/MMX Streaming SIMD Extensions save/restore
SSE Streaming SIMD Extensions instruction set
SSE2 SSE2 extensions
SS Self Snoop
HT Hyper Threading
TM Thermal monitor
31 reserved

TLB and cache info:
51: Instruction TLB: 4KB and 2MB or 4MB pages, 128 entries
5b: Data TLB: 4KB and 4MB pages, 64 entries
60: unknown TLB/cache descriptor
40: No 2nd-level cache, or if 2nd-level cache exists, no 3rd-level cache
70: Trace cache: 12K-micro-op, 4-way set assoc
3c: unknown TLB/cache descriptor
Processor serial: 0000-0F33-0000-0000-0000-0000
[/code]
Peut-on m’aider à localiser le bit 28 dans edx please ?

ta colonne edx, c’est de l’hexa à priori, dc, representant 4 bits*, soit pour trouver le 22ême bit, dans le 6ême hexa **, soit le ‘e’ => 14 en hexa, c’est 1111 - 1, donc
1 . . . . 1 . . . . . (1) . . . . . 0
24ême bit 23ême (22ême) 21ême
Je dirais donc qu’il est à 1 et que ton processeur est HT Ready

Mais tu crois vraiment pas que l’install d’un noyau smp, pour en être sûr, ça serait pas plus simple ?
En fait, c’est peut être un gros troll velu ?

*2^4=16
**ça pourrait être des paires d’hexa en position alternée - big/little endian, je ne me souviens jamais ? - auquel cas il faudrait chercher dans le 5ême hexa le bon bit, mais vu comment c’est presenté en linéaire…

hé bien, dans menu.lst, je vois pas bien où rajouter cette option et sous quelle forme, append = … etc … ou acpismp=force ?

ben ça veut dire sans doute vu les options que tu dis, que ton celeron a toutes les caractèristiques d’un pentium HT, ce qui le qualifie comme ready, mais qu’il n’a pas le cache suffisant pour l’activer.
Alors comme j’imagine que tu ne peux pas booter sous xp pour voir s’il t’annonce deux proc, il te faut un noyau “garanti smp par debian”, pour être sûr que tu n’as pas loupé une option dans la compil de ton noyau perso (et aprés ça, ça te permettra d’avoir sous la main le diff de ton noyau avec le noyau de stock…

okay merci, donc, me suffirait d’installer une image du 2.6.16-smp ?
ou bien, pourquoi pas tenter un logiciel que je lance avec wine ?
je teste et :confused: $ sudo apt-get -su install linux-image-2.6.16-2-686-smp Lecture des listes de paquets... Fait Construction de l'arbre des dépendances... Fait Paquets suggérés : linux-doc-2.6.16 Paquets recommandés : libc6-i686 Les paquets suivants seront ENLEVÉS : grub Les NOUVEAUX paquets suivants seront installés : linux-image-2.6.16-2-686-smp 0 mis à jour, 1 nouvellement installés, 1 à enlever et 98 non mis à jour. Remv grub [0.95+cvs20040624-17] Inst linux-image-2.6.16-2-686-smp (2.6.16-17 Debian:testing) Conf linux-image-2.6.16-2-686-smp (2.6.16-17 Debian:testing) sans grub, c’est chooo ! En plus, je suis pas une arch 686 …

keskidi ? :open_mouth:

1/pourquoi tu n’as pas grub comme tout le monde ?
2/686 ou pas, si ça boote, tu sauras s’il te détecte les deux. Mais avecun celeron 2.4 de génération ht, c’est du 686, me semble t il, non ?

[quote=“MattOTop”]1/pourquoi tu n’as pas grub comme tout le monde ?
[/quote] si si, enfin, sarge, là je l’ai upgrader et j’ai pu installer l’image du smp.

ça boot, et cat /proc/cpuinfo, cpuid, et x86info me donne la même chose qu’avant …
J’ignore si c’est du 686, là, je crois qu’il y a des flags mis un peu n’importe comment par les constructeurs de proc … ht mon c… oui !! :imp:

oui, mais est ce que le boot t’indique 1 ou 2 processeurs ?
ça m’interresse de connaitre le debut de ton dmesg…

dis, tu n’a pas un noapic comme argument de noyau ?

okay, j’avais pas vu tes 2 derniers posts, pfff et j’ai remove le smp …
bon je réinstalle pour voir .
par contre j’ai un message d’erreur que je comprend pas bien :

[code]Les NOUVEAUX paquets suivants seront installés :
linux-image-2.6.16-2-686-smp
0 mis à jour, 1 nouvellement installés, 0 à enlever et 100 non mis à jour.
Il est nécessaire de prendre 0o/15,6Mo dans les archives.
Après dépaquetage, 45,4Mo d’espace disque supplémentaires seront utilisés.
Préconfiguration des paquets…
Sélection du paquet linux-image-2.6.16-2-686-smp précédemment désélectionné.
(Lecture de la base de données… 113746 fichiers et répertoires déjà installés.)
Dépaquetage de linux-image-2.6.16-2-686-smp (à partir de …/linux-image-2.6.16-2-686-smp_2.6.16-17_i386.deb) …
Done.
Paramétrage de linux-image-2.6.16-2-686-smp (2.6.16-17) …

Hmm. The package shipped with a symbolic link /lib/modules/2.6.16-2-686-smp/source
However, I can not read the target: Aucun fichier ou répertoire de ce type
Therefore, I am deleting /lib/modules/2.6.16-2-686-smp/source

Running depmod.
Finding valid ramdisk creators.
Using mkinitrd.yaird to build the ramdisk.
Running postinst hook /sbin/update-grub.
Searching for GRUB installation directory … found: /boot/grub
Testing for an existing GRUB menu.list file … found: /boot/grub/menu.lst
Searching for splash image … none found, skipping …
Found kernel: /boot/vmlinuz-2.6.17-acpi-ht
Found kernel: /boot/vmlinuz-2.6.16camiptables
Found kernel: /boot/vmlinuz-2.6.16-2-686-smp
Found kernel: /boot/vmlinuz-2.6.8-2-386
Found kernel: /boot/memtest86.bin
Found kernel: /boot/memtest86+.bin
Updating /boot/grub/menu.lst … done
[/code]
ok, je poste , je reboot, et je dmesg …

ça je crois que j’ai trouvé ici : linux-wizard.net/faq.php?sec … _article=6
Ainsi, je force acpismp … au cas où … :confused:

Matt, noapic, tu voulais pas dire plutot noht ?

[quote=“dmesg”] Linux version 2.6.16-2-686-smp (Debian 2.6.16-17) (waldi@debian.org) (gcc versio n 4.0.4 20060630 (prerelease) (Debian 4.0.3-4)) #1 SMP Sat Jul 15 22:33:00 UTC 2 006 BIOS-provided physical RAM map: BIOS-e820: 0000000000000000 - 000000000009fc00 (usable) BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved) BIOS-e820: 00000000000e6000 - 0000000000100000 (reserved) BIOS-e820: 0000000000100000 - 000000003f740000 (usable) BIOS-e820: 000000003f740000 - 000000003f750000 (ACPI data) BIOS-e820: 000000003f750000 - 000000003f800000 (ACPI NVS) BIOS-e820: 00000000ffbc0000 - 0000000100000000 (reserved) 0MB HIGHMEM available. 1015MB LOWMEM available. On node 0 totalpages: 259904 DMA zone: 4096 pages, LIFO batch:0 DMA32 zone: 0 pages, LIFO batch:0 Normal zone: 255808 pages, LIFO batch:31 HighMem zone: 0 pages, LIFO batch:0 DMI 2.3 present. ACPI: RSDP (v000 ACPIAM ) @ 0x000fa6d0 ACPI: RSDT (v001 A M I OEMRSDT 0x08000426 MSFT 0x00000097) @ 0x3f740000 ACPI: FADT (v002 A M I OEMFACP 0x08000426 MSFT 0x00000097) @ 0x3f740200 ACPI: MADT (v001 A M I OEMAPIC 0x08000426 MSFT 0x00000097) @ 0x3f740300 ACPI: OEMB (v001 A M I OEMBIOS 0x08000426 MSFT 0x00000097) @ 0x3f750040 ACPI: DSDT (v001 I65GV I65GV180 0x00000180 INTL 0x02002026) @ 0x00000000 ACPI: PM-Timer IO Port: 0x808 ACPI: Local APIC address 0xfee00000 ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled) Processor #0 15:3 APIC version 20 ACPI: LAPIC (acpi_id[0x02] lapic_id[0x81] disabled) ACPI: IOAPIC (id[0x01] address[0xfec00000] gsi_base[0]) IOAPIC[0]: apic_id 1, version 32, address 0xfec00000, GSI 0-23 ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl) ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level) ACPI: IRQ0 used by override. ACPI: IRQ2 used by override. ACPI: IRQ9 used by override. Enabling APIC mode: Flat. Using 1 I/O APICs More than 8 CPUs detected and CONFIG_X86_PC cannot handle it. Use CONFIG_X86_GENERICARCH or CONFIG_X86_BIGSMP. Using ACPI (MADT) for SMP configuration information Allocating PCI resources starting at 40000000 (gap: 3f800000:c03c0000) Built 1 zonelists Kernel command line: root=/dev/hda1 ro acpismp=force mapped APIC to ffffd000 (fee00000) mapped IOAPIC to ffffc000 (fec00000) Enabling fast FPU save and restore... done. Enabling unmasked SIMD FPU exception support... done. Initializing CPU#0 PID hash table entries: 4096 (order: 12, 65536 bytes) Detected 2394.190 MHz processor. Using pmtmr for high-res timesource Console: colour VGA+ 80x25 Dentry cache hash table entries: 131072 (order: 7, 524288 bytes) Inode-cache hash table entries: 65536 (order: 6, 262144 bytes) Memory: 1026080k/1039616k available (1505k kernel code, 12924k reserved, 545k da ta, 176k init, 0k highmem) Checking if this processor honours the WP bit even in supervisor mode... Ok. Calibrating delay using timer specific routine.. 4797.04 BogoMIPS (lpj=9594087) Security Framework v1.0.0 initialized SELinux: Disabled at boot. Capability LSM initialized Mount-cache hash table entries: 512 CPU: After generic identify, caps: bfebfbff 00000000 00000000 00000000 0000041d 00000000 00000000 CPU: After vendor identify, caps: bfebfbff 00000000 00000000 00000000 0000041d 0 0000000 00000000 monitor/mwait feature present. using mwait in idle threads. CPU: Trace cache: 12K uops, L1 D cache: 16K CPU: L2 cache: 256K CPU: Hyper-Threading is disabled CPU: After all inits, caps: bfebfbff 00000000 00000000 00000180 0000041d 0000000 0 00000000 Intel machine check architecture supported. Intel machine check reporting enabled on CPU#0. CPU0: Intel P4/Xeon Extended MCE MSRs (12) available CPU0: Thermal monitoring enabled Checking 'hlt' instruction... OK. CPU0: Intel(R) Celeron(R) CPU 2.40GHz stepping 03 Total of 1 processors activated (4797.04 BogoMIPS). ENABLING IO-APIC IRQs ..TIMER: vector=0x31 apic1=0 pin1=2 apic2=-1 pin2=-1 Brought up 1 CPUs migration_cost=0 checking if image is initramfs... it is Freeing initrd memory: 1161k freed
[/quote]
On tient le bon bout …moi je lis : “More than 8 CPUs detected and CONFIG_X86_PC cannot handle it” et aussi : “CPU: Hyper-Threading is disabled” … :open_mouth:
Disabled on Celeron or on Bios or on Kernel ? (je sors …).

non, mais ne cherches pas: si avec un noyau debian smp il ne te dit pas qu’il a trouvé 2 procs, c’est que ton celeron ne veut pas.
Je viens de tester sur mon celeron D au bureau (dernière génération 64bits), et j’ai aussi l’ht desactivé malgré mon noyau smp. :frowning:

Merci Matt, en ayant le flag HT je suppose … bon … ben … résolu.

Comment ca le “flag HT” ? ou ca ?

C’est courant pour les cpu de désactiver certaines fonctions pour bien differencier les gammes, ca ne leur couterais pas plus cher de le laisser mais bon…

ben je dis justement, pourquoi il l’enlève pas ce flag, si c’est désactivé ?
Je suis mirot ou bien ? ça fait des jours que je me/nous coltine le probleme lol … et :

  • sur le site d’intel, y te parle du bit 28 pour savoir via cpuid lancé quand EAX=1 (ou un truc du genre … heu man cpuid --> aucunes options pour cpuid) … faudrait peut-être lire tout leurs site pour savoir et se saturer de pub ? Allez savoir qu’est ce que c’est le EAX=1, style :
    osdev.berlios.de/cpuid.html#eax1 autant dire que j’ai pas compris grand chose …
  • tous les cpuid, les x86infos et consort, ne m’ont pas donné la référence exacte du proc, style xxxx:yyyy pour id vendor et id produit ( à la manière d’un lspci -n). Au point que je sais toujours pas avec précision quel cpu j’ai dans leurs gammes de vous m’avez compris …
    Et malgré tout, j’ai bien le flag [size=150]HT[/size] … moi … HT comme hours trashed ?

Bah si tu as un celeron 2.4 256k de L2, donc basé sur l’architechture du P4C (1er P4 avec le HT)…

Sinon un soft extrement bon pour détecter les cpu, si tu as un windows qui traine: cpuz