Anatomie d'un bug
By Samuel D. - 14/12/2004
Sommaire:

 

Apparition du bug

 

Alors que le code décrit plus haut fonctionne sans problème avec la majorité des plate-formes, plusieurs partenaires et utilisateurs ont constatés un bug étrange lorsqu'un P4 Prescott LGA775 et une carte i915/925 était utilisée. Dans ce cas précis, on constate souvent l'apparition d'un bug au niveau de l'affichage du FSB :

 

 

Comme on le voit, la valeur obtenue pour le FSB est affichée à 0 MHz ! Comme la fréquence mémoire est obtenue par FSB * ram_ratio, il est logique que la fréquence RAM soit également de 0 MHz. La question est donc : Pourquoi le FSB retournée est 0 ?

 

 

Comme nous l'avons vu plus haut, vu le code, la valeur calculée peut difficilement être 0. Nous avons donc ajouté un peu de code afin d'afficher les résultats de la division :

 

 

Le but étant de ce servir de la fonction "princ_ecc_err()" pour afficher les valeurs après division, de "extclock", de "coef" et de "fsb". Voyons le résultat :

 

 

La première ligne doit contenir la valeur "extclock", c'est à dire la fréquence du CPU en KHz. On obtient ainsi 0x0031030Ch en hexadécimal, soit 3212044 KHz en décimal. Le CPU est donc bien cadencé à 3212 MHz, comme on le fois en haut à gauche de l'écran. Cette valeur est donc bien placée. La seconde entrée que nous allons tester est la valeur "coef". Affichant 0x10 et donc 16 en décimal, on a bien ici le coefficient du Prescott 3.2 GHz utilisé pour les tests. Dans ces conditions, comment le résultat de la division peut être 0 ?? Nous sommes ici en présence d'un comportement de l'application et du processeur tout a fait étrange. Partant du principe que ce bug ne survient *QUE* avec le Prescott LGA775, il y a de quoi ce poser des questions. Sans compter qu'un simple changement du Prescott par un P4 EE permet de régler le problème...

 

 

Suite ( L'Explication du bug )

Fermer