[Kos-dev] Comportement étrange ...

Anthony Jaguenaud capello at jaguenaud.org
Thu Sep 30 05:42:35 CEST 2004


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Anthony Jaguenaud wrote:

| Thomas Petazzoni wrote:
|
| | Salut, | | On Wed, Sep 29, 2004 at 12:35:19AM +0200, Thomas
| Petazzoni wrote : | |> J'ai un comportement assez étrange dans
| Bochs lors du partage de |> pages. Si ça se trouve, je me plante
| complètement, je ne sais |> pas. Enfin voilà ce qui se passe : | |
| | J'ai trouvé la raison du problème : notre compère gcc. Il se la |
|  joue un peu trop genre "moa j'suis trop baleze, j'optimise ton
| code | à fond les manettes" ! | | Voilà l'explication : | | 1) Si
| on prend le code C suivant : | | 1. data = (unsigned *) va2; 2.
| data[123] = 0xDEADBEEF; 3. data = | (unsigned *) va3; 4. Lecture de
|  la donnée data[123] pour affichage
|
| Essaye de déclarer ta variable en volatile : volatile int toto; Ca
| oblige gcc a recharger la valeur de la variable, car il considère
| qu'elle peut avoir changé avec un autre thread, ou une
| entrée/sortie.

En fait, je crois que j'ai di une connerie, ça ne devrait pas marcher...

Par contre, je suppose que tu compiles en -O3, essaye du -O2 je pense
qu'il fait moins de prefetch.

Sinon, une solution qui marche peut-être, c'est d'avoir une fonction nil :
void nil()
{
}
~ dans un fichier à part : nil.c (pour obliger l'appel de la fonction)
et de remplacer tes boucles par cet appel.

J'espère que cette fois je dis pas de bétises, par ce que je me suis
réveillé il y a une demi heure et impossible de redormir :-(

A+
Anthony

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFBW4Cqt24pl+ydWOwRAmj8AJ4zJQM2kb3tG/Szkv76ulVUJ+CVlQCeNo1f
pUDwecwX/JbPtBz0G3Z2OiE=
=m+MV
-----END PGP SIGNATURE-----



More information about the Kos-dev mailing list