petit programme a tester s'il vous plait

petit programme a tester s'il vous plait - Divers - Programmation

Marsh Posté le 03-05-2005 à 01:29:11    

Salut tout le monde,
 
J'aurais besoin que plusieurs d'entre vous executent ce code et me renvoient le resultat.

Code :
  1. #include <stdio.h>
  2. static inline void cpuid(int op, int *eax, int *ebx, int *ecx, int *edx)
  3. {
  4.         __asm__("cpuid"
  5.                 : "=a" (*eax),
  6.                   "=b" (*ebx),
  7.                   "=c" (*ecx),
  8.                   "=d" (*edx)
  9.                 : "0" (op));
  10. }
  11. int main(void){
  12. int eax,ebx,ecx,edx;
  13. cpuid(1,&eax,&ebx,&ecx,&edx);
  14. printf("eax=%d ebx=%d ecx=%d edx=%d\n",eax,ebx,ecx,edx);
  15. return 0;
  16. }


 
J'ai surtout besoin d'un resultat de quelqu'un qui aurait un P4 HT. J'ai besoin de ces resultats pour voir quels bits sont positionnés a 1 pour indiquer que le processeur supporte l'hyperthreading.  
Ce programme ne fait rien de mal (vous pouvez le constater) et il pourrait me permettre de debugguer la derniere version de powernowd bugguée chez moi.


Message édité par Photonium le 04-05-2005 à 00:10:27

---------------
A savoir : la dimension de Hausdorff du chou-fleur a été calculée et vaut 2.33
Reply

Marsh Posté le 03-05-2005 à 01:29:11   

Reply

Marsh Posté le 03-05-2005 à 06:51:37    

De mémoire je dirais 29ème bit d'edx, mais ne me crois pas sur parole :o  
Il est un peu pénible de fouiller sur le site d'intel (à cause de la masse d'informations) mais ce que tu cherches s'y trouve très probablement.

Reply

Marsh Posté le 03-05-2005 à 12:00:13    

Pillow a écrit :

De mémoire je dirais 29ème bit d'edx, mais ne me crois pas sur parole :o  
Il est un peu pénible de fouiller sur le site d'intel (à cause de la masse d'informations) mais ce que tu cherches s'y trouve très probablement.


 
J'avais déjà cherché et trouvé. C'est normalement le 28 eme bit de edx.(ensuite le nombre de core est codé à partir du 16eme bit de ebx). Mais l'auteur de powernowd teste le 27 eme (edx & 0x08000000) dans son programme, ce qui est normalement incorrect.  Et il me dit que c'est intel qui ne respecte pas leurs specs (pour le centrino). Je voulais simplement m'assurer que c'était bien le 28 eme bit par l'experience. Voilou..
 
Rassurez-moi, le dothan n'a bien qu'un seul core ?


Message édité par Photonium le 03-05-2005 à 17:48:20

---------------
A savoir : la dimension de Hausdorff du chou-fleur a été calculée et vaut 2.33
Reply

Marsh Posté le 03-05-2005 à 12:47:12    

le pentium M est mono core.

Reply

Marsh Posté le 03-05-2005 à 12:55:07    

Merci de cette precision.
 
Au fait, pour compiler et executer le programme, il suffit de faire ceci, apres avoir recopié le code dans un fichier nommé hyperthreading.c :

Code :
  1. gcc -o hyperthreading hyperthreading.c && ./hyperthreading


 
Merci a ceux qui prendront le temps de faire ceci.


---------------
A savoir : la dimension de Hausdorff du chou-fleur a été calculée et vaut 2.33
Reply

Marsh Posté le 03-05-2005 à 13:22:02    

processor       : 0
vendor_id       : GenuineIntel
cpu family      : 15
model           : 2
model name      : Intel(R) Pentium(R) 4 CPU 2.66GHz
stepping        : 9
cpu MHz         : 2660.203
cache size      : 512 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 2
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
bogomips        : 5308.41
 
eax=00000f29 ebx=00010809 ecx=00004400 edx=bfebfbff
 
 

Reply

Marsh Posté le 03-05-2005 à 14:17:35    

Là je ne comprends plus rien. Mis à part le fait que les resultats sont en hexadecimal (tu as changé %d en %x dans printf, non ?), ni le 28 eme bit ni le 27 eme sont positionnés  à 1. Je vais chercher du coté du champ flags de    
/proc/cpuinfo , il y a peut-etre des trucs interessants.
 
Un grand merci pour ton resultat.
 
Si jamais vous voyez que je me trompe dites le moi.


---------------
A savoir : la dimension de Hausdorff du chou-fleur a été calculée et vaut 2.33
Reply

Marsh Posté le 03-05-2005 à 14:57:03    

Sur un P4 2.8 C

Code :
  1. eax=3877 ebx=133129 ecx=17408 edx=-1075053569


Reply

Marsh Posté le 03-05-2005 à 15:00:58    

sur un athlon64 :D
 

% ./a.out
eax=4032 ebx=2048 ecx=0 edx=126614527


---------------
--
Reply

Marsh Posté le 03-05-2005 à 17:54:01    

Merci, j'ai eu ce que je voulais.  
 
Pour information, je me suis trompé dans les registres dans un  
précédent message(que je viens de corriger).  
 
Maintenant, j'en suis sur, l'athlon64 n'a pas l'hyperthreading :D  


---------------
A savoir : la dimension de Hausdorff du chou-fleur a été calculée et vaut 2.33
Reply

Marsh Posté le 03-05-2005 à 17:54:01   

Reply

Marsh Posté le 03-05-2005 à 18:23:31    

Compile pas ton code... :fou:
 
$ gcc ht.c -o ht
ht.c: In function `cpuid':
ht.c:4: error: inconsistent operand constraints in an `asm'
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ok, c'est du G4 ---> []

Reply

Marsh Posté le 03-05-2005 à 22:29:16    

sur un  P4 3.2E
 

Code :
  1. eax=3905 ebx=16910336 ecx=17437 edx=-1075053569

Reply

Marsh Posté le 03-05-2005 à 23:07:54    

Sur un P3: eax=1670 ebx=2 ecx=0 edx=58980863

Reply

Marsh Posté le 03-05-2005 à 23:23:35    

bonsoir,  
 
désolé pour la lecture un peu tardive du post,
 
sur ma bécane ( voir conf ) cela donne :
 
eax=3892 ebx=133120 ecx=17437 edx=-1075053569
 
Amicalement :jlp

Reply

Marsh Posté le 04-05-2005 à 00:09:40    

Merci. Je trouve vraiment sympa vous perdez un peu de votre temps pour m'aider.  
 
Ces resultats m'ont été très utiles. Ils m'ont permis de voir que mon patch pour powernowd 0.95 est valide et que intel ne viole pas ses specs pour le centrino comme on me l'a dit (a moins que je me trompe : je prefere toujours prendre des pincettes).  
 
C'est bon ne vous archarnez plus.


---------------
A savoir : la dimension de Hausdorff du chou-fleur a été calculée et vaut 2.33
Reply

Marsh Posté le 04-05-2005 à 09:10:02    

et tu le diffuses en public ton patch  ? :)


---------------
Hobby eien /人◕ ‿‿ ◕人\
Reply

Marsh Posté le 04-05-2005 à 10:55:43    

Bonjour,
 

Tamahome a écrit :

et tu le diffuses en public ton patch  ? :)


C'est tout en bas de cette page : cherchez powernowd_ht.patch
http://bugs.debian.org/cgi-bin/bug [...] bug=306896
 
Rien d'exceptionnel, en fait mais je pense que ça fonctionne mieux avec. Voilou


---------------
A savoir : la dimension de Hausdorff du chou-fleur a été calculée et vaut 2.33
Reply

Marsh Posté le 04-05-2005 à 11:53:36    

merci :o


---------------
Hobby eien /人◕ ‿‿ ◕人\
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed