jj, tak ten podivny vypis bol sposobeny tym cim popisujes. Stale, ale mame problem so zapisom do virtualnej pamate.<br><br>To co sa nam deje je detailne popisane tu ..<br><br>0.<br>TLB je prazdne<br><br>1.<br>Test si naalokuje pamat 0xc0000000 a zapise do nej;
<br><0,0> .. cycle 0 (actionno: 0) -- vma_alloc (size=0x1000) = EOK, ptr=0xc0000000<br><br>TLB vyhlada mapovanie a zapise do tabulky zaznam;<br>[30] : Virtual Address=0xc0000000  ;Even=0x40a800 [D=1,V=1,G=0];  ODD=0x0 [D=1,V=0,G=0] ; ASID=1
<br><br>(Uz v tomto momente pri vypise virtualnej pamate 0xc0000000 vypise 255, co je obsah FYZICKEJ pamate aj na 0xc0000000<br>stranka 0x40a800 obsahuje same 00.)<br><br>2.<br>Test sa poskusi pristupit k naalokovanej pamati a nenajde tam ocakavanu hodnotu;
<br><0,0> .. cycle 0 (actionno: 1) -- access (ptr=0xc0000492) = 255, expected 18<br><br>Ziadna tlb exception sa nevyhodi a v tabulke je stale ten jediny zaznam;<br>[30] : Virtual Address=0xc0000000  ;Even=0x40a800 [D=1,V=1,G=0];  ODD=0x0 [D=1,V=0,G=0] ; ASID=1
<br><br>Mame pocit, ze bezime v nejakom divnom rezime. Ako keby pri nacitani pamate pouzival virtualnou adresou namiesot namapovanej fyzickej, <br>pripadne sa dival niekam este uplne ako ma. Zapisuje tiez ktoviekam. Nemali ste niekto z Vas podobny problem? Dakujem za odpoved.
<br><br><br><div><span class="gmail_quote">On 12/5/07, <b class="gmail_sendername">Andrej Krutak</b> <<a href="mailto:andree182@gmail.com">andree182@gmail.com</a>> wrote:</span><blockquote class="gmail_quote" style="margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0; margin-left: 0.80ex; border-left-color: #cccccc; border-left-width: 1px; border-left-style: solid; padding-left: 1ex">
Aha,<br><br>teraz ma napadla este jedna vec - co sa stala aj mne pri testovani.. :-)<br><br>Mozno mate "blbo" napisany ten testovaci kod - v tom zmysle, ze je prekladac<br>hyperinteligentny a zoptimalizuje ten kod tak, ze ked si date vypisat obsah
<br>pamati, kam ste predtym zapisali, tak to vlastne vypise iba nieco, co si ten<br>program "pamata" este v registroch (napr.), miesto toho aby sa naozaj pozrel<br>cez TLB a do RAM.... (cache to urcite nebude, pretoze msim ziadnu nesimuluje,
<br>afaik :-D)<br><br>Mohlo by pomoct nastavit ten pointer do pamati ako volatile, alebo medzi zapis<br>a citanie pridat nejaku pointerovu aritmetiku (ptr+=1, -=1) - cim by sa<br>mohla "vypnut" optimalizacia...<br>
<br>(Ta optimalizacia ma prave take zaujimave efekty, ze aj ked zapises cislo na<br>uplne nahodnu adresu (napr. neexistujucu pamat v KSEG0), tak ked precitas<br>spat, tak tam ta hodnota bude - aj ked sa nikde do ram nezapisala...)
<br><br>Andrej<br><br><br>On Wednesday 05 December 2007 01:40:08 Martin Choma wrote:<br>> Caute,<br>><br>> riesime jeden zahadny problem. Mame alokovany blok pamete vo virt.<br>> priestore a k nemu alok. blok fyzickej.
<br>> Pri pokuse o zapis na virtualnu adresu sa nam vyhlada tlb zaznam so<br>> spravnym mapovanim a zapiseme.<br>> Este vypis premennej hned po tomto zapise vypise spravne priradenu<br>> hodnotu (co moze byt sposobene cache).
<br>> Ale ak si vypiseme predchadzajucu premennu, do ktorej sme priradovali,<br>> tak ta obsahuje hodnotu 255<br>> (co je hodnota pri pohlade na fyz. adresu 0xCxxxxxxxx v memory dumpe<br>> msimu). Ked sa pozrieme na danu
<br>> fyzicku pamat memory dumpom, tak je skutocne nevyplnena. Ako keby sa<br>> to nezapisovalo alebo zapisovalo<br>> niekam inam. Nenapada niekoho, cim by to mohlo byt? Diky.<br>><br>> priznaky ksu exl a erl mame nastavene takto;
<br>> ksu = 0, exl=0, erl=0<br>><br>> nase zaznamy v TLB vyzeraju asi takto:<br>><br>> [0] : Virtual Address=0xc00ec000  ;Even=0x4fd800 [D=1,V=1,G=0];<br>> ODD=0x4fe800 [D=1,V=1,G=0] ; ASID=1<br>> [1] : Virtual Address=0xc00ee000  ;Even=0x4ff800 [D=1,V=1,G=0];
<br>> ODD=0x500800 [D=1,V=1,G=0] ; ASID=1<br>> [2] : Virtual Address=0xc00d4000  ;Even=0x4e5800 [D=1,V=1,G=0];<br>> ODD=0x4e6800 [D=1,V=1,G=0] ; ASID=1<br>> [3] : Virtual Address=0xc00e4000  ;Even=0x4f5800 [D=1,V=1,G=0];
<br>> ODD=0x4f6800 [D=1,V=1,G=0] ; ASID=1<br>> [4] : Virtual Address=0xc00ea000  ;Even=0x4fb800 [D=1,V=1,G=0];<br>> ODD=0x4fc800 [D=1,V=1,G=0] ; ASID=1<br>> .<br>> .<br>> .<br>><br>> Martin Choma<br>
><br>> _______________________________________________<br>> OSy mailing list<br>> <a href="mailto:OSy@dsrg.mff.cuni.cz">OSy@dsrg.mff.cuni.cz</a><br>> <a href="https://dsrg.mff.cuni.cz/mailman/listinfo/osy">
https://dsrg.mff.cuni.cz/mailman/listinfo/osy</a><br><br><br><br>_______________________________________________<br>OSy mailing list<br><a href="mailto:OSy@dsrg.mff.cuni.cz">OSy@dsrg.mff.cuni.cz</a><br><a href="https://dsrg.mff.cuni.cz/mailman/listinfo/osy">
https://dsrg.mff.cuni.cz/mailman/listinfo/osy</a><br></blockquote></div><br>