<div dir="auto">Je to odpovÄÄ. DÃky.</div><div class="gmail_extra"><br><div class="gmail_quote">On 8 Nov 2017 20:03, "Vojtech Horky" <<a href="mailto:horky@d3s.mff.cuni.cz">horky@d3s.mff.cuni.cz</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Dne 8.11.2017 v 18:44 AT napsal(a):<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Mám doplÅujÃcà otázku k pÅedchozà otázce (ASID): PÃÅ¡ete<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
 ZruÅ¡enÃm daného VASu se uvolÅuje jeho ASID.<br>
</blockquote>
Jak poznáme, že se má VAS zruÅ¡it? Ãloha pro to nedefinuje žádné API, v<br>
ukázkové implementaci se to vůbec nedÄje. PÅedpokládám, že naÅ¡Ãm<br>
úkolem nenà pÅepisovat funkci thread_finish Äi nÄjakou jinou.<br>
</blockquote>
Nedefinovánà urÄitých Äástà implementacà může být (a je) souÄástà úlohy.<br>
<br>
NapÅ. vzhledem k API je korektnÃ, pokud je ASID pÅiÅazen až v okamžiku vytvoÅenà prvnà oblasti. A podobnÄ, pÅi odmapovánà poslednà oblasti může být ASID odregistrován. Takže lze ASIDy recyklovat i bez existence funkce vmm_destroy().<br>
<br>
Je tedy na Vás jakou strategii zvolÃte a jak se k daným omezenÃm postavÃte.<br>
<br>
Je to odpovÄÄ na VaÅ¡i otázku nebo jsem to jenom vÃce zamlžil?<br>
<br>
- VH<br>
<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
<a href="tel:2017-11-08%209" value="+420201711089" target="_blank">2017-11-08 9</a>:51 GMT+01:00 Vojtech Horky <<a href="mailto:horky@d3s.mff.cuni.cz" target="_blank">horky@d3s.mff.cuni.cz</a>>:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Dne 8.11.2017 v 09:26 Roman Firment napsal(a):<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Este k tomu poslednemu bodu:<br>
<br>
* je postacujuce v implementacii pridelovania ASIDov pouzit indexovane<br>
pole pripadne bitovu mapu?<br>
</blockquote>
Ano, bitmapa je celkem rozumné ÅeÅ¡enÃ.<br>
<br>
Pokud by úloha nebyla hodnocena binárnÄ, tak by urÄitÄ byly body navÃc za<br>
bitmapu, kde je hledánà volného bitu stylem next-fit, tj. neprohledávat vždy<br>
od úplného zaÄátku.<br>
<br>
- VH<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Roman Firment<br>
<br>
<a href="tel:2017-11-08%208" value="+420201711088" target="_blank">2017-11-08 8</a>:40 GMT+01:00 Vojtech Horky <<a href="mailto:horky@d3s.mff.cuni.cz" target="_blank">horky@d3s.mff.cuni.cz</a><br>
<mailto:<a href="mailto:horky@d3s.mff.cuni.cz" target="_blank">horky@d3s.mff.cuni.cz</a>><wbr>>:<br>
<br>
<br>
   Dobrý den.<br>
<br>
   Dne 7.11.2017 v 21:03 Roman Firment napsal(a):<br>
<br>
     * kedy sa maju alokovat fyzicke ramce? V case ked vznika vma<br>
       alebo az v handleri vynimky TLB Refill Exception, pripadne<br>
     inde. Ak az<br>
       v handleri, tak co znamena ENOMEM (nedostatok fyzickej,<br>
     virtualnej pamati?) pri<br>
       volani vma_vmap?<br>
<br>
   Už pÅi volánà vma_map().<br>
<br>
   Pokud byste to volánà odložil do refillu (nÄco jako Linux se<br>
   zapnutým overcommitem), mohla by dojÃt pamÄÅ¥ (až pozdÄji) a nebylo<br>
   by jak tuto chybu rozumnÄ signalizovat zpÄt. Pokud byste tedy<br>
   nechtÄl implementovat nÄjaký swapping a spol. :-)<br>
<br>
<br>
<br>
     * moze nastat situacia, ze funkcia vma_map alebo vma_unmap bude<br>
     vykonavana<br>
       v inom mode nez kernelovskom?<br>
<br>
   Ne, userland k nà pÅÃstup nemá.<br>
<br>
<br>
     * frame alokator v kaliste pouziva iba ramce zo spodnych 512mb.<br>
     Malloc pouziva<br>
       tento frame alokator. Vsetky struktury potom budu nutne<br>
     lezat v tomto segmente.<br>
       Nieje to problem?<br>
<br>
   Pro úÄely cviÄenà to nevadÃ, jde o zámÄrné zjednoduÅ¡enÃ.<br>
<br>
<br>
   Frame alokátor má rozhranà pÅipravené na podporu alokace rámců i z<br>
   dalÅ¡Ãch segmentů (VF_AT_* flagy). Takže pokud funkce pro namapovánÃ<br>
   pamÄti vidÃ, že k pamÄti bude nutné pÅistupovat skrz TLB, mÄla by<br>
   preferovat alokaci z oblasti nad 512M, protože tÄch spodnÃch 0.5G je<br>
   "cennÄjÅ¡Ãch". NicménÄ, námi dodaný frame alokátor podporuje pouze<br>
   Vámi zmiÅovaných 512M, takže toto nenà nutné implementovat.<br>
<br>
   JeÅ¡tÄ pro úplnost - skrz TLB lze pÅistupovat i k identicky mapované<br>
   pamÄti, takže funkÄnost TLB otestovat půjde.<br>
<br>
<br>
     * len pre istotu, ak nemusime implementovat ziadne dynamicke<br>
     priradzovanie asid-ov<br>
       a pocet vmm je omezeny poctom validnych asid-ov, tak nam<br>
     staci pouzivat jednoduche<br>
       inkrementovanie globalnej premennej ako je tomu v povodnej<br>
     implementacii kalista.<br>
       Alebo je ten pocet omezeny iba v jednom okamihu?<br>
<br>
   Druhá možnost. PÅi vytvoÅenà VAS se oÄekává, že rovnou dostane<br>
   pÅiÅazený ASID, který je platný po celou dobu jeho existence.<br>
   ZruÅ¡enÃm daného VASu se uvolÅuje jeho ASID.<br>
<br>
   Äili v jednom okamžiku může existovat max 255 VASů (resp. pokud<br>
   potÅebujete nÄjaký ASID si vyÄlenit pro speciálnà úÄely v rámci<br>
   kernelu, je ok podporovat "jen" 254).<br>
<br>
<br>
   Dává to takhle smysl?<br>
<br>
   - VH<br>
<br>
   _____________________________<wbr>__________________<br>
   OSy mailing list<br>
   <a href="mailto:OSy@d3s.mff.cuni.cz" target="_blank">OSy@d3s.mff.cuni.cz</a> <mailto:<a href="mailto:OSy@d3s.mff.cuni.cz" target="_blank">OSy@d3s.mff.cuni.cz</a>><br>
   <a href="https://d3s.mff.cuni.cz/mailman/listinfo/osy" rel="noreferrer" target="_blank">https://d3s.mff.cuni.cz/mailm<wbr>an/listinfo/osy</a><br>
   <<a href="https://d3s.mff.cuni.cz/mailman/listinfo/osy" rel="noreferrer" target="_blank">https://d3s.mff.cuni.cz/mail<wbr>man/listinfo/osy</a>><br>
<br>
<br>
<br>
<br>
______________________________<wbr>_________________<br>
OSy mailing list<br>
<a href="mailto:OSy@d3s.mff.cuni.cz" target="_blank">OSy@d3s.mff.cuni.cz</a><br>
<a href="https://d3s.mff.cuni.cz/mailman/listinfo/osy" rel="noreferrer" target="_blank">https://d3s.mff.cuni.cz/mailma<wbr>n/listinfo/osy</a><br>
<br>
</blockquote>
<br>
______________________________<wbr>_________________<br>
OSy mailing list<br>
<a href="mailto:OSy@d3s.mff.cuni.cz" target="_blank">OSy@d3s.mff.cuni.cz</a><br>
<a href="https://d3s.mff.cuni.cz/mailman/listinfo/osy" rel="noreferrer" target="_blank">https://d3s.mff.cuni.cz/mailma<wbr>n/listinfo/osy</a><br>
</blockquote>
______________________________<wbr>_________________<br>
OSy mailing list<br>
<a href="mailto:OSy@d3s.mff.cuni.cz" target="_blank">OSy@d3s.mff.cuni.cz</a><br>
<a href="https://d3s.mff.cuni.cz/mailman/listinfo/osy" rel="noreferrer" target="_blank">https://d3s.mff.cuni.cz/mailma<wbr>n/listinfo/osy</a><br>
</blockquote>
<br>
<br>
<br>
______________________________<wbr>_________________<br>
OSy mailing list<br>
<a href="mailto:OSy@d3s.mff.cuni.cz" target="_blank">OSy@d3s.mff.cuni.cz</a><br>
<a href="https://d3s.mff.cuni.cz/mailman/listinfo/osy" rel="noreferrer" target="_blank">https://d3s.mff.cuni.cz/mailma<wbr>n/listinfo/osy</a><br>
</blockquote></div></div>