[OSy] Vyvolavanie vynimky TLB invalid

Rastislav Wartiak rastik at tereus.eu
Tue Jan 8 18:20:33 CET 2008


2nd level TLB miss znamená, že obsluha TLB refill/invalid chce  
pracovat s  mapovanou adresou a ta není v TLB. Obsluha musí být jednou  
ve stavu, že pracuje jenom s nemapovanými adresami nebo ty mapované  
jsou již v TLB.
Pokud je zásobník v mapované části paměti a ta není v TLB, tak IMHO  
nemůže obsluha výjimky s tím zásobníkem pracovat před doplněním TLB.  
Protože by to vedlo k dalšímu výpadku.

Rastislav Wartiak

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






More information about the NSWI004 mailing list