[Kos-dev] Quelques idées

Thomas Petazzoni kos-dev@enix.org
Tue, 29 Apr 2003 23:15:50 +0200


Raphaël Junqueira <fenix@club-internet.fr> writes:

Hello,

> En fait on peut facilement avoir un truc pas trop mal en ajoutant une gestion 
> des MLK dans les primitives d'allocation du noyau. On peut meme atteindre des 
> beaux raffinements en jouant avec les droits d'acces au pages et avec les 
> page faults (mais ca devient plus risquer pour la stabilite du noya)

Ouais, pour ce truc précis, j'avoue que je préfererais de
l'instrumentation externe : Bochs est fait pour ça. Par contre, le
problème c'est la mémoire virtuelle : on peut avoir plein plein de
contextes, c'est un peu le bordel. Je vois pas trop comment gérer
ça. Faudrait que Bochs lui même sache associer des listes d'octets
initialisés à des contextes (des valeurs de CR3).

Et en plus, faudrait que quand on fasse kfree(), la zone mémoire soit
reconnu par Bochs comme étant non initialisé, donc il faudrait pouvoir
lui signaler, en faisant un opcode invalide que Bochs comprendra, ou
en écrivant sur un port d'I/O quelconque.

Peut être un bon sujet de TX pour l'UTBM. Hum hum, pourquoi pas ;-)

> En fait j'ai developpe un profileur avec des contraintes similaires 
> et ca marche pas trop mal. Mais le mieux c qd meme le profileur "statistique" 
> qui recupere une pile tous les dt et qui fournit de belles stats comme on les 
> aime ;)

Effectivement le profiling ça marche comme ça d'habitude, mais je vois
pas du tout, mais pas du tout l'intéret. Il me semble qu'une solution
ou tu comptes le nombre de cycles à l'entrée et a la sortie sera plus
précis, non ? Evidemment, tu laisses tourner le machin 10000 fois, et
tu fais une moyenne. Ca c'est faisable.

En revanche, si on veut les pourcentages de temps passé dans telle ou
telle fonction, faut faire un graphe des appels, et ça on va pas
s'amuser à le coder, il *faudrait* pouvoir réutiliser gprof.

Enfin, bon tout ça, c'est bien gentil, mais ça fait du boulot quand
même.

Thomas
-- 
PETAZZONI Thomas - thomas.petazzoni@enix.org - UIN : 34937744
http://www.enix.org/~thomas/
KOS: http://kos.enix.org/ - Lolut: http://lolut.utbm.info
Fingerprint : 0BE1 4CF3 CEA4 AC9D CC6E  1624 F653 CB30 98D3 F7A7