<!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>