[SOS] Pagination (Rapport page_physique <-> page_virtuelle)

romain romain at hexanium.com
Sam 22 Oct 12:17:07 CEST 2005


Salut,

> En fait le sos_paging_map fait un 
> sos_physmem_ref_physpage_at(ppage_paddr);
> donc la page est incrémenté une deuxième fois voila pourquoi 
> on le décrément ici.

Ha, j'avais pas vu ce Ref_At, je vais regarder plus en détail !

Mais en effet ca laisserait la ressource utilisé....
Tu me diras dans l'article il précisent bien les ref_count.



sos_physmem_ref_physpage_new

sos_paging_map

sos_physmem_unref_physpage(ppage_new);



> -----Message d'origine-----
> De : sos-bounces at the-doors.enix.org 
> [mailto:sos-bounces at the-doors.enix.org] De la part de 
> anthoine.bourgeois
> Envoyé : vendredi 21 octobre 2005 20:42
> À : SOS mailing-list
> Objet : Re: RE : [SOS] Pagination (Rapport page_physique <-> 
> page_virtuelle)
> 
> 
> Bonsoir,
> 
> 
> > Message du 21/10/05 13:09
> > De : "romain" <romain at hexanium.com>
> > A : "'SOS mailing-list'" <sos at the-doors.enix.org>
> > Copie à :
> > Objet : RE : [SOS] Pagination (Rapport page_physique <-> 
> page_virtuelle)
> > 
> > Salut,
> > 
> > J'ai énormement de mal à comprend la pagination, je comprend à peut 
> > pres l'article 3, la gestion des pages "physiques", par 
> contre quand 
> > je passe à l'article 4 je suis paumé, c'est pas trop le 
> probleme, ca 
> > rentrera bien un jour, je vais me refader 10 fois les 
> articles si il 
> > le faut !
> > 
> > En fait j'ai déjà une question qui mais en branle tous ce que je 
> > croyais avoir compris et quelques question qui me permettraient 
> > d'avancer.
> > 
> > 
> > Question 1:
> > -----------
> > Dans l'article 4 et dans le main.c de l'article 4, vous effectuer 
> > cette suit d'instruction, dans cet ordre: (Je fais des affirmations 
> > mais c'est pour montrer ce que j'ai pus comprendre, c'est surement 
> > éronné)
> > 
> > 
> > 1/ ppage_new = sos_physmem_ref_physpage_new(FALSE);
> > Ok ca ca va a peut pres, on choppe une page libre !
> > 
> > 
> > 2/ sos_paging_map(ppage_new, vpage_tmp, FALSE, SOS_VM_MAP_ATOMIC | 
> > SOS_VM_MAP_PROT_READ | SOS_VM_MAP_PROT_WRITE); Bon ca je 
> pige pas trop 
> > dans le source pour le moment mais j'avais compris que la, on 
> > "associait" l'adresse virtuelle vpage_tmp à la page physique toute 
> > neuve récupérée plus haut.
> > 
> > 3/ Puis vous faite un truc qui me parait "fou": 
> > sos_physmem_unref_physpage(ppage_new);
> > Mais du coup cette page et libre et poura etre reallouée ? Bizard, 
> > puis qu'on à déjà mappé notre adresse virtuelle vpage_temp dessus. 
> > Donc quelque part la ressource est en cours d'utilisation, mais la 
> > page physique ne reflete pas cette etat, du coup si on refait un 
> > sos_physmem_ref_physpage_new(FALSE); on va se rechopper la 
> meme page ! 
> > (enfin on a des chances...)
> 
> En fait le sos_paging_map fait un 
> sos_physmem_ref_physpage_at(ppage_paddr);
> donc la page est incrémenté une deuxième fois voila pourquoi 
> on le décrément ici.
> 
> > 
> > 4/ La on utilise la ressources ( o_O ) tjrs bizard la page 
> "physique" 
> > est cencé etre libre.
> > 
> > 5/ La vous faites : sos_paging_unmap(vpage_tmp);
> > Pour défaire la relation Virtuellr -> Physique bon ok a la limite :D
> > 
> > 
> > Ce qui me chiffone c'est l'ordre, vous le spécifiez bien dans 
> > l'article, 4 (pdf) mais je ne trouve pas ca coherent ! Je dois me 
> > tromper ?
> > 
> > 
> > Si quelqu'un peu me permetre de comprendre pourquoi l'ordre du 
> > unref_physpage par rapport au paging_unmp n'est pas important...ca 
> > m'aiderai.
> 
> L'ordre est important.
> 
> > 
> > 
> > Question 2:
> > -----------
> > Est-ce qu'on peut dire que grace au "sos_paging_map" on associe une 
> > PAGE PHYSIQUE à une PAGE_VIRTUELLE ?
> 
> Oui c'est exactement ça
> 
> > 
> > 
> > Question 3:
> > -----------
> > Y'a-t-il d'autres solutions ormis celles exposées dans l'article 4 
> > (Celle de SOS "Mirroring © Copyright 2002 2005 Sos 
> Workgroup" ou celle 
> > de linux expliquée) pour que lorqu'on active la pagination 
> > l'instruction tous de suite apres l'activation (setup cr3 
> et cr0) se 
> > trouve dans la bonne page (virtuelle et physique) ? (je 
> comprend rien 
> > au
> > "Mirroring"...)
> 
> Je pense que oui mais je peux pas te donner d'exemple.
> > 
> > 
> > Question 4:
> > -----------
> > Question de base désolé, c'est quoi cette notion de 
> "volatile" ? Quel 
> > difference entre un "asm" et un "asm volatile" ?
> 
> Bonne question, si quelqu'un à la réponse
> > 
> > 
> > 
> > Merci
> > 
> > 
> 
> Anthoine Bourgeois
> 
> 
> 




Plus d'informations sur la liste de diffusion Sos