[SOS] article 7 et bochs

Anthoine Bourgeois anthoine.bourgeois at wanadoo.fr
Sam 17 Sep 12:40:42 CEST 2005


Bonjour à tous,

	Je suis nouveau sur la mailling-list de SOS, je me présente donc.
Voilà, je ne lis les articles de SOS que depuis le début de l'été mais
je m'intéresse aux systèmes d'exploitations. Félicitations à Thomas et
David pour leur série d'articles plus qu'intéressant.

	Maintenant je vais vous dire pourquoi je vous écris. J'ai lu l'article
7 de SOS hier. Parfais, tout va bien. Je compile les sources et je lance
SOS dans bochs. La rien. C'est pas grave il y a un patch sur le site.
J'applique le patch, je compile et je relance. Et là, j'obtiens la trace
suivante dans bochs:

Message in a bochs: This is SOS article 7.
Spawning myprog5:0
THR 0x615c: Prog5: Hello world 1 !
Spawning myprog5:1
THR 0x61d0: Prog5: Hello world 1 !
Spawning myprog5:2
THR 0x6244: Prog5: Hello world 1 !
Spawning myprog5:3
THR 0x62b8: Prog5: Hello world 1 !
Spawning myprog5:4
THR 0x632c: Prog5: Hello world 1 !
Spawning myprog1:0
THR 0x63a0: Prog1: Hello world 1 !
THR 0x63a0: Prog1: Hello world 2 !
THR 0x63a0: Prog1: Hello world 3 !
THR 0x63a0: Prog1: Hello world 4 !
THR 0x63a0: Prog1: Hello world 5 !
Spawning myprog1:1
THR 0x63a0: Prog1: Hello world 1 !
THR 0x63a0: Prog1: Hello world 2 !
THR 0x63a0: Prog1: Hello world 3 !
THR 0x63a0: Prog1: Hello world 4 !
THR 0x63a0: Prog1: Hello world 5 !
Spawning myprog1:2
THR 0x63a0: Prog1: Hello world 1 !
THR 0x63a0: Prog1: Hello world 2 !
THR 0x63a0: Prog1: Hello world 3 !
THR 0x63a0: Prog1: Hello world 4 !
THR 0x63a0: Prog1: Hello world 5 !
Spawning myprog1:3
THR 0x63a0: Prog1: Hello world 1 !
THR 0x63a0: Prog1: Hello world 2 !
THR 0x63a0: Prog1: Hello world 3 !
THR 0x63a0: Prog1: Hello world 4 !
THR 0x63a0: Prog1: Hello world 5 !
Spawning myprog1:4
THR 0x63a0: Prog1: Hello world 1 !
THR 0x63a0: Prog1: Hello world 2 !
THR 0x63a0: Prog1: Hello world 3 !
THR 0x63a0: Prog1: Hello world 4 !
THR 0x63a0: Prog1: Hello world 5 !
Spawning myprog1:5
THR 0x63a0: Prog1: Hello world 1 !
THR 0x63a0: Prog1: Hello world 2 !
THR 0x63a0: Prog1: Hello world 3 !
THR 0x63a0: Prog1: Hello world 4 !
THR 0x63a0: Prog1: Hello world 5 !
Spawning myprog1:6
THR 0x63a0: Prog1: Hello world 1 !
THR 0x63a0: Prog1: Hello world 2 !
THR 0x63a0: Prog1: Hello world 3 !
THR 0x63a0: Prog1: Hello world 4 !
THR 0x63a0: Prog1: Hello world 5 !
Spawning myprog1:7
THR 0x63a0: Prog1: Hello world 1 !
THR 0x63a0: Prog1: Hello world 2 !
THR 0x63a0: Prog1: Hello world 3 !
THR 0x63a0: Prog1: Hello world 4 !
THR 0x63a0: Prog1: Hello world 5 !
Spawning myprog1:8
THR 0x63a0: Prog1: Hello world 1 !
THR 0x63a0: Prog1: Hello world 2 !
THR 0x63a0: Prog1: Hello world 3 !
THR 0x63a0: Prog1: Hello world 4 !
THR 0x63a0: Prog1: Hello world 5 !
Spawning myprog1:9
THR 0x6414: Prog1: Hello world 1 !
THR 0x6414: Prog1: Hello world 2 !
THR 0x6414: Prog1: Hello world 3 !
THR 0x6414: Prog1: Hello world 4 !
THR 0x6414: Prog1: Hello world 5 !
Spawning myprog5:0
THR 0x6414: Prog5: Hello world 1 !
Spawning myprog6:0
THR 0x63a0: Prog6: Hello world 1 !
Spawning myprog6:1
THR 0x6488: Prog6: Hello world 1 !
Spawning myprog6:2
THR 0x64fc: Prog6: Hello world 1 !
Spawning myprog6:3
THR 0x6570: Prog6: Hello world 1 !
Spawning myprog6:4
THR 0x65e4: Prog6: Hello world 1 !
Spawning myprog6:5
THR 0x6658: Prog6: Hello world 1 !
Spawning myprog6:6
THR 0x66cc: Prog6: Hello world 1 !
Spawning myprog6:7
THR 0x6740: Prog6: Hello world 1 !
Spawning myprog6:8
THR 0x67b4: Prog6: Hello world 1 !
Spawning myprog6:9
THR 0x6828: Prog6: Hello world 1 !
Spawning myprog6:10
THR 0x689c: Prog6: Hello world 1 !
Spawning myprog6:11
THR 0x6910: Prog6: Hello world 1 !
Spawning myprog2:0
THR 0x6984: Prog2: Hello world A !
Spawning myprog2:1
THR 0x69f8: Prog2: Hello world A !
Spawning myprog2:2
THR 0x6a6c: Prog2: Hello world A !
Spawning myprog2:3
THR 0x6ae0: Prog2: Hello world A !
Spawning myprog2:4
THR 0x6b54: Prog2: Hello world A !
Spawning myprog2:5
THR 0x6bc8: Prog2: Hello world A !
Spawning myprog2:6
THR 0x6c3c: Prog2: Hello world A !
Spawning myprog2:7
THR 0x6cb0: Prog2: Hello world A !
Spawning myprog2:8
THR 0x6d24: Prog2: Hello world A !
Spawning myprog2:9
THR 0x6d98: Prog2: Hello world A !
Spawning myprog5:0
THR 0x6e0c: Prog5: Hello world 1 !
Spawning myprog3:0
THR 0x6e80: Prog3: Hello world A !
Spawning myprog3:1
THR 0x6ef4: Prog3: Hello world A !
Spawning myprog3:2
THR 0x6f68: Prog3: Hello world A !
Spawning myprog3:3
THR 0x6fdc: Prog3: Hello world A !
Spawning myprog3:4
THR 0x7050: Prog3: Hello world A !
Spawning myprog3:5
THR 0x70c4: Prog3: Hello world A !
Spawning myprog3:6
THR 0x7138: Prog3: Hello world A !
Spawning myprog3:7
THR 0x71ac: Prog3: Hello world A !
Spawning myprog3:8
THR 0x7220: Prog3: Hello world A !
Spawning myprog3:9
THR 0x7294: Prog3: Hello world A !
Spawning myprog5:0
THR 0x7308: Prog5: Hello world 1 !
Spawning myprog1:0
THR 0x737c: Prog1: Hello world 1 !
THR 0x737c: Prog1: Hello world 2 !
THR 0x737c: Prog1: Hello world 3 !
THR 0x737c: Prog1: Hello world 4 !
THR 0x737c: Prog1: Hello world 5 !
Spawning myprog1:1
THR 0x737c: Prog1: Hello world 1 !
THR 0x737c: Prog1: Hello world 2 !
THR 0x737c: Prog1: Hello world 3 !
THR 0x737c: Prog1: Hello world 4 !
THR 0x737c: Prog1: Hello world 5 !
Spawning myprog1:2
THR 0x737c: Prog1: Hello world 1 !
THR 0x737c: Prog1: Hello world 2 !
THR 0x737c: Prog1: Hello world 3 !
THR 0x737c: Prog1: Hello world 4 !
THR 0x737c: Prog1: Hello world 5 !
Spawning myprog1:3
THR 0x737c: Prog1: Hello world 1 !
THR 0x737c: Prog1: Hello world 2 !
THR 0x737c: Prog1: Hello world 3 !
THR 0x737c: Prog1: Hello world 4 !
THR 0x737c: Prog1: Hello world 5 !
Spawning myprog1:4
THR 0x737c: Prog1: Hello world 1 !
THR 0x737c: Prog1: Hello world 2 !
THR 0x737c: Prog1: Hello world 3 !
THR 0x737c: Prog1: Hello world 4 !
THR 0x737c: Prog1: Hello world 5 !
Spawning myprog1:5
THR 0x737c: Prog1: Hello world 1 !
THR 0x737c: Prog1: Hello world 2 !
THR 0x737c: Prog1: Hello world 3 !
THR 0x737c: Prog1: Hello world 4 !
THR 0x737c: Prog1: Hello world 5 !
Spawning myprog1:6
THR 0x737c: Prog1: Hello world 1 !
THR 0x737c: Prog1: Hello world 2 !
THR 0x737c: Prog1: Hello world 3 !
THR 0x737c: Prog1: Hello world 4 !
THR 0x737c: Prog1: Hello world 5 !
Spawning myprog1:7
THR 0x737c: Prog1: Hello world 1 !
THR 0x737c: Prog1: Hello world 2 !
THR 0x737c: Prog1: Hello world 3 !
THR 0x737c: Prog1: Hello world 4 !
THR 0x737c: Prog1: Hello world 5 !
Spawning myprog1:8
THR 0x737c: Prog1: Hello world 1 !
THR 0x737c: Prog1: Hello world 2 !
THR 0x737c: Prog1: Hello world 3 !
THR 0x737c: Prog1: Hello world 4 !
THR 0x737c: Prog1: Hello world 5 !
Spawning myprog1:9
THR 0x737c: Prog1: Hello world 1 !
THR 0x737c: Prog1: Hello world 2 !
THR 0x737c: Prog1: Hello world 3 !
THR 0x737c: Prog1: Hello world 4 !
THR 0x737c: Prog1: Hello world 5 !
Spawning myprog6:0
THR 0x737c: Prog6: Hello world 1 !
Spawning myprog6:1
THR 0x73f0: Prog6: Hello world 1 !
Spawning myprog6:2
THR 0x7464: Prog6: Hello world 1 !
Spawning myprog6:3
THR 0x74d8: Prog6: Hello world 1 !
Spawning myprog6:4
THR 0x754c: Prog6: Hello world 1 !
Spawning myprog6:5
THR 0x75c0: Prog6: Hello world 1 !
Spawning myprog6:6
THR 0x7634: Prog6: Hello world 1 !
Spawning myprog6:7
THR 0x76a8: Prog6: Hello world 1 !
Spawning myprog6:8
THR 0x6e80: Prog3: Hello world B !
THR 0x771c: Prog6: Hello world 1 !
Spawning myprog6:9
Unresolved USER page Fault at instruction 0x80000030 on access to
address 0x201000 (info=5)!
Terminating User thread
THR 0x7790: Prog6: Hello world 1 !
Spawning myprog6:10
THR 0x6e80: Prog6: Hello world 1 !
Spawning myprog6:11
THR 0x7804: Prog6: Hello world 1 !
Spawning myprog5:0
THR 0x7878: Prog5: Hello world 1 !
Spawning myprog4:0
THR 0x6ef4: Prog3: Hello world B !
THR 0x78ec: Prog4: Hello world A !
Spawning myprog4:1
Unresolved USER page Fault at instruction 0x80000030 on access to
address 0x201000 (info=5)!
Terminating User thread
THR 0x7960: Prog4: Hello world A !
Spawning myprog4:2
THR 0x6ef4: Prog4: Hello world A !
Spawning myprog4:3
THR 0x79d4: Prog4: Hello world A !
Spawning myprog4:4
Spawning myprog4:5
Spawning myprog4:6
Spawning myprog4:7
Spawning myprog4:8
Spawning myprog4:9
Spawning myprog5:0
Spawning myprog2:0
Spawning myprog2:1
Spawning myprog2:2
Spawning myprog2:3
Spawning myprog2:4
Spawning myprog2:5
Spawning myprog2:6
Spawning myprog2:7
Spawning myprog2:8
Spawning myprog2:9
Spawning myprog6:0
Spawning myprog6:1
Spawning myprog6:2
Spawning myprog6:3
Spawning myprog6:4
Spawning myprog6:5
Spawning myprog6:6
Spawning myprog6:7
Spawning myprog6:8
Spawning myprog6:9

Au début, ça marche mais à la fin ça recommence. Les applications
utilisateurs ne se lance plus comme avant que le patch ne soit appliqué.
De plus le temps entre deux "spawn" de thread devient grand. 25 minutes
entre les deux dernières de la trace et j'ai attendu plus d'une heure
après la dernière ligne avant de stopper bochs.

J'ai remarqué une chose. Pour le programme 6, qui provoque une général
protection exception, il n'y a pas de handler pour cette exception. J'ai
donc fait un patch pour corriger cela. Il est en pièce jointe.
Attention ce patch contient le patch du site.

J'en ai profité pour corriger également deux petites erreurs dans
build_image.sh:
1/ ligne 69. La variable IMG_FILE n'existe pas. C'est certainement
IMG_FNAME que vous avez voulu dire.
2/ ligne 109. 'head -1' -1 est une option obsolète. Il faut la remplacer
par 'head -n 1'.

Ce patch ne corrige pas tout car dès que la simulation des souris est
lancé les autres applications utilisateurs ne sont plus élus par
l'ordonnanceur des taches. Ce qui a pour conséquence que les 12 derniers
threads du programme 6 ne termine pas (ou plutôt ne sont pas terminés)
et que le threads STAT_THREAD qui compte le temps processeurs n'est plus
mis à jour.

Anthoine Bourgeois
-------------- section suivante --------------
Une pièce jointe non texte a été nettoyée...
Nom: patch-art7.diff
Type: text/x-patch
Taille: 7486 octets
Desc: non disponible
Url: http://the-doors.enix.org/pipermail/sos/attachments/20050917/ce3ca7c6/patch-art7.bin


Plus d'informations sur la liste de diffusion Sos