[OSy] Vyvolavanie vynimky TLB invalid

Jaroslav Pastorek jaruch at inMail.cz
Tue Jan 8 18:01:45 CET 2008


Dobry den.

Neviem, co si predstavit pod, 2nd level TLB miss,
nieco ako ked sa v obsluhe tlb refill vyvola znovu tlb refill?

Ta vynimka nastane na instrukcii 5BC,
podla vsetkeho je to kod z handle_general_exception a ta instrukcia
je prva, co uklada registre na stack, ktory je v v useg. Ako vidno tesne predtym sa nastavi
nova hodnota status registra (to sme ponechali ako v kaliste, teda spodnych 6 bitov by mali byt 0),
ale nikde som nenasiel, ze by to malo nejaky vplyv na tlb invalid.

000005B0    and   k0, k0, k1          
000005B4    mtc0  k0, status          
000005B8    addiu sp, sp, 0xff68      
000005BC    sw    0, (sp)             
000005C0    sw    at, 0x4(sp)         
000005C4    sw    v0, 0x8(sp)


Dump tlb:
 no    vpn      mask        g asid  v d   pfn    c  v d   pfn    c
  00  00000000 FFFFE000:4k   0  01   1 1 00020000 0  1 1 00021000 0
  01  00000000 FFFFE000:4k   0  ff   0 0 00000000 0  0 0 00000000 0
  02  00010000 FFFFE000:4k   0  01   1 1 00034000 0  1 1 00035000 0
  03  0006E000 FFFFE000:4k   0  01   1 1 00092000 0  1 1 00093000 0
  04  0002E000 FFFFE000:4k   0  01   1 1 00052000 0  1 1 00053000 0
  05  0002C000 FFFFE000:4k   0  01   1 1 00050000 0  1 1 00051000 0
  06  0002A000 FFFFE000:4k   0  01   1 1 0004E000 0  1 1 0004F000 0
  07  00028000 FFFFE000:4k   0  01   1 1 0004C000 0  1 1 0004D000 0
  08  0080E000 FFFFE000:4k   0  01   1 1 00832000 0  1 1 00833000 0
  09  0006A000 FFFFE000:4k   0  01   1 1 0008E000 0  1 1 0008F000 0
  0a  00030000 FFFFE000:4k   0  01   1 1 00054000 0  1 1 00055000 0
  0b  00058000 FFFFE000:4k   0  01   1 1 0007C000 0  1 1 0007D000 0
  0c  0003C000 FFFFE000:4k   0  01   1 1 00060000 0  1 1 00061000 0
  0d  00036000 FFFFE000:4k   0  01   1 1 0005A000 0  1 1 0005B000 0
  0e  00050000 FFFFE000:4k   0  01   1 1 00074000 0  1 1 00075000 0
  0f  00066000 FFFFE000:4k   0  01   1 1 0008A000 0  1 1 0008B000 0
  10  0080E000 FFFFE000:4k   0  00   1 1 00832000 0  1 1 00833000 0
  11  00054000 FFFFE000:4k   0  01   1 1 00078000 0  1 1 00079000 0
  12  00026000 FFFFE000:4k   0  01   1 1 0004A000 0  1 1 0004B000 0
  13  0001A000 FFFFE000:4k   0  01   1 1 0003E000 0  1 1 0003F000 0
  14  0005C000 FFFFE000:4k   0  01   1 1 00080000 0  1 1 00081000 0
  15  00024000 FFFFE000:4k   0  01   1 1 00048000 0  1 1 00049000 0
  16  00022000 FFFFE000:4k   0  01   1 1 00046000 0  1 1 00047000 0
  17  00020000 FFFFE000:4k   0  01   1 1 00044000 0  1 1 00045000 0
  18  0001E000 FFFFE000:4k   0  01   1 1 00042000 0  1 1 00043000 0
  19  00018000 FFFFE000:4k   0  01   1 1 0003C000 0  1 1 0003D000 0
  1a  00810000 FFFFE000:4k   0  01   1 1 00834000 0  1 1 00835000 0
  1b  00014000 FFFFE000:4k   0  01   1 1 00038000 0  1 1 00039000 0
  1c  00046000 FFFFE000:4k   0  01   1 1 0006A000 0  1 1 0006B000 0
  1d  00044000 FFFFE000:4k   0  01   1 1 00068000 0  1 1 00069000 0
  1e  00042000 FFFFE000:4k   0  01   1 1 00066000 0  1 1 00067000 0
  1f  0004E000 FFFFE000:4k   0  01   1 1 00072000 0  1 1 00073000 0
  20  0005A000 FFFFE000:4k   0  01   1 1 0007E000 0  1 1 0007F000 0
  21  00012000 FFFFE000:4k   0  01   1 1 00036000 0  1 1 00037000 0
  22  00038000 FFFFE000:4k   0  01   1 1 0005C000 0  1 1 0005D000 0
  23  00000000 FFFFE000:4k   0  ff   0 0 00000000 0  0 0 00000000 0
  24  00068000 FFFFE000:4k   0  01   1 1 0008C000 0  1 1 0008D000 0
  25  00000000 FFFFE000:4k   0  ff   0 0 00000000 0  0 0 00000000 0
  26  00056000 FFFFE000:4k   0  01   1 1 0007A000 0  1 1 0007B000 0
  27  00000000 FFFFE000:4k   0  ff   0 0 00000000 0  0 0 00000000 0
  28  0001C000 FFFFE000:4k   0  01   1 1 00040000 0  1 1 00041000 0
  29  0005E000 FFFFE000:4k   0  01   1 1 00082000 0  1 1 00083000 0
  2a  00064000 FFFFE000:4k   0  01   1 1 00088000 0  1 1 00089000 0
  2b  00000000 FFFFE000:4k   0  ff   0 0 00000000 0  0 0 00000000 0
  2c  00052000 FFFFE000:4k   0  01   1 1 00076000 0  1 1 00077000 0
  2d  00000000 FFFFE000:4k   0  ff   0 0 00000000 0  0 0 00000000 0
  2e  00070000 FFFFE000:4k   0  01   1 1 00094000 0  1 1 00095000 0
  2f  00000000 FFFFE000:4k   0  ff   0 0 00000000 0  0 0 00000000 0

Este dump cp0 registrov z handlera tlb invalid:

 no name       hex dump  readable dump
  00 Index      0000002F  index: 2F res: 0 p: 0 
  01 Random     0000002D  random: 2D, res: 0000000
  02 EntryLo0   00020D06  g: 0 v: 1 d: 1 c: 0 pfn: 000834 res: 0
  03 EntryLo1   00020D46  g: 0 v: 1 d: 1 c: 0 pfn: 000835 res: 0
  04 Context    00004080  res: 0 badvpn2: 00408 ptebase: 000
  05 PageMask   00000000  res1: 0000 mask: 000 (4k) res2: 00
  06 Wired      00000000  wired: 0 res: 0000000
  08 BadVAddr   00811EC8  badvaddr: 00811EC8
  09 Count      01013132  count: 1013132
  0a EntryHi    00810001  asid: 01 res: 0 vpn2: 00000
  0b Compare    01012F5A  compare: 1012f5a
  0c Status     0000FF00  ie: 0 exl: 0 erl: 0 ksu: 0 ux: 0 sx: 0 kx: 0
                          im: FF de: 0 ce: 0 ch: 0 res1: 0 sr: 0 ts: 0
                          bev: 0 res2: 0 re: 0 fr: 0 rp: 0 cu: 0
  0d Cause      0000800C  res1: 0 exccode: 03 res2: 0 ip: 80 res3: 00
                          ce: 0 res4: 0 bd: 0
  0e EPC        800005BC  epc: 800005BC
  0f PRId       00000400  rev: 00 imp: 04 res: 0000
  10 Config     00000000  k0: 0 cu: 0 db: 0 b: 0 dc: 0 ic: 0 res: 0 eb: 0
                          em: 0 be: 0 sm: 0 sc: 0 ew: 0 sw: 0 ss: 0 sb: 0
                          ep: 0 ec: 0 cm: 0
  11 LLAddr     00000000  lladdr: 00000000
  12 WatchLo    00000000  w: 0 r: 0 res: 0 paddr0: 00000000
  13 WatchHi    00000000  res: 00000000 paddr1: 0
  14 XContext
  1e ErrorEPC   00000000  errorepc: 00000000




---- Původní zpráva ----
Od koho: Petr Tuma <petr.tuma at dsrg.mff.cuni.cz>
Komu: Operating Systems Course <osy at dsrg.mff.cuni.cz>
Datum: 8.1.2008 16:30:00
Předmět: Re: [OSy] Vyvolavanie vynimky TLB invalid

Dobry den,

drivejsi podobne problemy byly zpusobeny pritomnosti jinych (spatne 
inicializovanych) polozek v TLB, nemuze to byt vas pripad ?

Muzete poslat dump, ktery ukazuje vyvolani vyjimky a obsah TLB v tom 
okamziku ?

Petr Tuma


> Ja by som sa od filozofovania rad vratil k samotnemu kernelu :-)
> 
> Z mne neznameho dovodu sa mi pri testovani kernelu vyvolavaju
> tlb invalid vynimky, avsak ked si v jej handleri dam vypisat
> dump tlb, tak adresa, ktora vyvolala vynimku, je v tlb a je aj
> validna. Skusal som hladat v manuali aj zdrojakoch msimu,
> ci ta vynimka moze nastat este niekedy inokedy, ale akosi som
> tam nic neobjavil. Neviem, ci je to tym, ze pristupujem na user
> adresy z obsluhy vynimky alebo preco.
> Dufam, ze to zas nie je rtfm otazka, ktora je na strane xyz v manuali.
> 
> S pozdravom
> 
> Jaroslav Pastorek
> www.inpage.cz <http://www.inpage.cz/> - www stranky za 3 Kc a za chvilku.
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> OSy mailing list
> OSy at dsrg.mff.cuni.cz
> https://dsrg.mff.cuni.cz/mailman/listinfo/osy

-- 
Petr Tuma
Distributed Systems Research Group
Department of Software Engineering
Faculty of Mathematics and Physics
Charles University, Czech Republic
   http://dsrg.mff.cuni.cz/~ceres

_______________________________________________
OSy mailing list
OSy at dsrg.mff.cuni.cz
https://dsrg.mffcuni.cz/mailman/listinfo/osy

www.inpage.cz - www stranky za 3 Kc a za chvilku
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://d3s.mff.cuni.cz/pipermail/nswi004/attachments/20080108/bc5470d0/attachment.html>


More information about the NSWI004 mailing list