[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