<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=UTF-8" http-equiv="Content-Type">
<title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
<font face="Verdana">Ahojte.<br>
Ten problem stale pretrvava, ale dostal som sa aspon dalej s
debugovanim.<br>
<br>
zaujimava cast kodu: ( teda aspon myslim ):<br>
   80006F24   lw   a2, 0x18(sp)     # 0x18=24, a2:
0x0->0xc0003000<br>
   80006F28   lui  v0, 0xce5f       # 0xce5f=52831, v0:
0x20->0xce5f0000<br>
   80006F2C   ori  v0, v0, 0xea17   # 0xffffea17h=59927, v0:
0xce5f0000->0xce5fea17<br>
   80006F30   sw   v0, (a2)         # 0x0=0, cp0_context:
0x00000000->0x00600010, cp0_badvaddr: 0x00000000->0xc0003000,
cp0_entryhi: 0x00000001->0xc0002001<br>
<br>
--Â Â tu sa obsluzi TLB exception, a vlozi sa mapovanie<br>
<br>
Toto je prva iteracia cyklu:<br>
   80006F30   sw   v0, (a2)         # 0x0=0<br>
   80006F34   addu a1, v0, 0        # a1: 0x8040af68->0xce5fea17<br>
   80006F38   addiu a0, 0, 0x10      # 0x10=16, a0:
0x80407054->0x10<br>
   80006F3C   addu v1, a2, a0       # v1: 0x20->0xc0003010<br>
   80006F40   addiu v0, 0, 0x2000    # 0x2000=8192, v0:
0xce5fea17->0x2000<br>
   80006F44   addiu a0, a0, 0x10     # 0x10=16, a0: 0x10->0x20<br>
   80006F48   bne  a0, v0, -0x4     # 0xfffffffc=4294967292<br>
   80006F4C   sw   a1, (v1)         # 0x0=0<br>
<br>
-- tu uz bezi iteracia bez prerusenia....<br>
<br>
</font><font face="Verdana">pre vysvetlenie: <br>
</font><font face="Verdana">0xce5fea17 je magicka konstanta, ktoru sa
snazim zapisat</font><br>
<font face="Verdana">0xc0003010 </font><font face="Verdana">je
virtualna pamet, kam nieco chcem zapisovat, a je namapovana priblizne
na 0x40f000<br>
iteracia bezi 512x.<br>
<br>
</font><font face="Verdana">z configu msim:<br>
</font><font face="Verdana">add rwm mainmembig   0x00400000 16M<br>
mainmembig generic 0<br>
<br>
<br>
bohuzial nedokazem zistit, preco instrukcia "</font><font face="Verdana">
sw   a1, (v1)" zapise nulu na adresu 0x0, ked "v1 = </font><font
face="Verdana">0xc0003010" a "a1 = </font><font face="Verdana">0xce5fea17"
teda presne to, co chcem zapisat a presne miesto kam to chcem zapisat.</font><br>
<font face="Verdana"><br>
Dakujem za akukolvek pomoc.<br>
J.R.<br>
</font><br>
Rastislav Wartiak napsal(a):
<blockquote cite="mid:20071205145146.xsmtnzzp8g8csso4@webmail.tereus.eu"
type="cite">
<pre wrap="">DÄkuji za nápad. V mém pÅÃpadÄ byl problém docela jednoduchý -
vma_free nesmazalo pÅÃsluÅ¡ný záznam v TLB a tedy pokud jsem pozdÄji
pÅidelil stejnou stránku na jiný rámec, tak až do pÅemazánà záznamu v
TLB to zapisovalo úplnÄ jinam. VaÅ¡e testy mÄ ale nepustily :-)
Hezký den,
Rastislav Wartiak
</pre>
<blockquote type="cite">
<pre wrap="">Dobry den,
podobny, ne-li stejny problem se tu kdysi resil, zapatral jsem v
archivech a nasel zde
<a class="moz-txt-link-freetext" href="https://dsrg.mff.cuni.cz/pipermail/osy/2004-December/thread.html">https://dsrg.mff.cuni.cz/pipermail/osy/2004-December/thread.html</a>
thready "TLB" a "TLB - vyreseno". Tak se zkuste podivat zda vas to
nenakopne spravnym smerem :)
Vlastimil Babka
Rastislav Wartiak wrote:
</pre>
<blockquote type="cite">
<pre wrap="">Ano, bojuji s podobným problémem.
Rastislav Wartiak
</pre>
<blockquote type="cite">
<pre wrap="">jj, tak ten podivny vypis bol sposobeny tym cim popisujes. Stale, ale mame
problem so zapisom do virtualnej pamate.
To co sa nam deje je detailne popisane tu ..
0.
TLB je prazdne
1.
Test si naalokuje pamat 0xc0000000 a zapise do nej;
<0,0> .. cycle 0 (actionno: 0) -- vma_alloc (size=0x1000) = EOK,
ptr=0xc0000000
TLB vyhlada mapovanie a zapise do tabulky zaznam;
[30] : Virtual Address=0xc0000000 ;Even=0x40a800 [D=1,V=1,G=0]; ODD=0x0
[D=1,V=0,G=0] ; ASID=1
(Uz v tomto momente pri vypise virtualnej pamate 0xc0000000 vypise 255, co
je obsah FYZICKEJ pamate aj na 0xc0000000
stranka 0x40a800 obsahuje same 00.)
2.
Test sa poskusi pristupit k naalokovanej pamati a nenajde tam ocakavanu
hodnotu;
<0,0> .. cycle 0 (actionno: 1) -- access (ptr=0xc0000492) = 255,
expected 18
Ziadna tlb exception sa nevyhodi a v tabulke je stale ten jediny zaznam;
[30] : Virtual Address=0xc0000000 ;Even=0x40a800 [D=1,V=1,G=0]; ODD=0x0
[D=1,V=0,G=0] ; ASID=1
Mame pocit, ze bezime v nejakom divnom rezime. Ako keby pri nacitani pamate
pouzival virtualnou adresou namiesot namapovanej fyzickej,
pripadne sa dival niekam este uplne ako ma. Zapisuje tiez ktoviekam. Nemali
ste niekto z Vas podobny problem? Dakujem za odpoved.
On 12/5/07, Andrej Krutak <a class="moz-txt-link-rfc2396E" href="mailto:andree182@gmail.com"><andree182@gmail.com></a> wrote:
</pre>
<blockquote type="cite">
<pre wrap="">Aha,
teraz ma napadla este jedna vec - co sa stala aj mne pri testovani.. :-)
Mozno mate "blbo" napisany ten testovaci kod - v tom zmysle, ze je
prekladac
hyperinteligentny a zoptimalizuje ten kod tak, ze ked si date vypisat
obsah
pamati, kam ste predtym zapisali, tak to vlastne vypise iba nieco, co si
ten
program "pamata" este v registroch (napr.), miesto toho aby sa naozaj
pozrel
cez TLB a do RAM.... (cache to urcite nebude, pretoze msim ziadnu
nesimuluje,
afaik :-D)
Mohlo by pomoct nastavit ten pointer do pamati ako volatile, alebo medzi
zapis
a citanie pridat nejaku pointerovu aritmetiku (ptr+=1, -=1) - cim by sa
mohla "vypnut" optimalizacia...
(Ta optimalizacia ma prave take zaujimave efekty, ze aj ked zapises cislo
na
uplne nahodnu adresu (napr. neexistujucu pamat v KSEG0), tak ked precitas
spat, tak tam ta hodnota bude - aj ked sa nikde do ram nezapisala...)
Andrej
On Wednesday 05 December 2007 01:40:08 Martin Choma wrote:
</pre>
<blockquote type="cite">
<pre wrap="">Caute,
riesime jeden zahadny problem. Mame alokovany blok pamete vo virt.
priestore a k nemu alok. blok fyzickej.
Pri pokuse o zapis na virtualnu adresu sa nam vyhlada tlb zaznam so
spravnym mapovanim a zapiseme.
Este vypis premennej hned po tomto zapise vypise spravne priradenu
hodnotu (co moze byt sposobene cache).
Ale ak si vypiseme predchadzajucu premennu, do ktorej sme priradovali,
tak ta obsahuje hodnotu 255
(co je hodnota pri pohlade na fyz. adresu 0xCxxxxxxxx v memory dumpe
msimu). Ked sa pozrieme na danu
fyzicku pamat memory dumpom, tak je skutocne nevyplnena. Ako keby sa
to nezapisovalo alebo zapisovalo
niekam inam. Nenapada niekoho, cim by to mohlo byt? Diky.
priznaky ksu exl a erl mame nastavene takto;
ksu = 0, exl=0, erl=0
nase zaznamy v TLB vyzeraju asi takto:
[0] : Virtual Address=0xc00ec000 ;Even=0x4fd800 [D=1,V=1,G=0];
ODD=0x4fe800 [D=1,V=1,G=0] ; ASID=1
[1] : Virtual Address=0xc00ee000 ;Even=0x4ff800 [D=1,V=1,G=0];
ODD=0x500800 [D=1,V=1,G=0] ; ASID=1
[2] : Virtual Address=0xc00d4000 ;Even=0x4e5800 [D=1,V=1,G=0];
ODD=0x4e6800 [D=1,V=1,G=0] ; ASID=1
[3] : Virtual Address=0xc00e4000 ;Even=0x4f5800 [D=1,V=1,G=0];
ODD=0x4f6800 [D=1,V=1,G=0] ; ASID=1
[4] : Virtual Address=0xc00ea000 ;Even=0x4fb800 [D=1,V=1,G=0];
ODD=0x4fc800 [D=1,V=1,G=0] ; ASID=1
.
.
.
Martin Choma
_______________________________________________
OSy mailing list
<a class="moz-txt-link-abbreviated" href="mailto:OSy@dsrg.mff.cuni.cz">OSy@dsrg.mff.cuni.cz</a>
<a class="moz-txt-link-freetext" href="https://dsrg.mff.cuni.cz/mailman/listinfo/osy">https://dsrg.mff.cuni.cz/mailman/listinfo/osy</a>
</pre>
</blockquote>
<pre wrap="">_______________________________________________
OSy mailing list
<a class="moz-txt-link-abbreviated" href="mailto:OSy@dsrg.mff.cuni.cz">OSy@dsrg.mff.cuni.cz</a>
<a class="moz-txt-link-freetext" href="https://dsrg.mff.cuni.cz/mailman/listinfo/osy">https://dsrg.mff.cuni.cz/mailman/listinfo/osy</a>
</pre>
</blockquote>
</blockquote>
<pre wrap="">
_______________________________________________
OSy mailing list
<a class="moz-txt-link-abbreviated" href="mailto:OSy@dsrg.mff.cuni.cz">OSy@dsrg.mff.cuni.cz</a>
<a class="moz-txt-link-freetext" href="https://dsrg.mff.cuni.cz/mailman/listinfo/osy">https://dsrg.mff.cuni.cz/mailman/listinfo/osy</a>
</pre>
</blockquote>
<pre wrap="">
_______________________________________________
OSy mailing list
<a class="moz-txt-link-abbreviated" href="mailto:OSy@dsrg.mff.cuni.cz">OSy@dsrg.mff.cuni.cz</a>
<a class="moz-txt-link-freetext" href="https://dsrg.mff.cuni.cz/mailman/listinfo/osy">https://dsrg.mff.cuni.cz/mailman/listinfo/osy</a>
</pre>
</blockquote>
<pre wrap=""><!---->
_______________________________________________
OSy mailing list
<a class="moz-txt-link-abbreviated" href="mailto:OSy@dsrg.mff.cuni.cz">OSy@dsrg.mff.cuni.cz</a>
<a class="moz-txt-link-freetext" href="https://dsrg.mff.cuni.cz/mailman/listinfo/osy">https://dsrg.mff.cuni.cz/mailman/listinfo/osy</a>
</pre>
</blockquote>
</body>
</html>