[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