<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>Dobry den.<br /><br />Neviem, co si predstavit pod, 2nd level TLB miss,<br />nieco ako ked sa v obsluhe tlb refill vyvola znovu tlb refill?<br /><br />Ta vynimka nastane na instrukcii 5BC,<br />podla vsetkeho je to kod z handle_general_exception a ta instrukcia<br />je prva, co uklada registre na stack, ktory je v v useg. Ako vidno tesne predtym sa nastavi<br />nova hodnota status registra (to sme ponechali ako v kaliste, teda spodnych 6 bitov by mali byt 0),<br />ale nikde som nenasiel, ze by to malo nejaky vplyv na tlb invalid.<br /><br />000005B0 and k0, k0, k1 <br />000005B4 mtc0 k0, status <br />000005B8 addiu sp, sp, 0xff68 <br />000005BC sw 0, (sp) <br />000005C0 sw at, 0x4(sp) <br />000005C4 sw v0, 0x8(sp)<br /><br /><br />Dump tlb:<br /> no vpn mask g asid v d pfn c v d pfn c<br /> 00 00000000 FFFFE000:4k 0 01 1 1 00020000 0 1 1 00021000 0<br /> 01 00000000 FFFFE000:4k 0 ff 0 0 00000000 0 0 0 00000000 0<br /> 02 00010000 FFFFE000:4k 0 01 1 1 00034000 0 1 1 00035000 0<br /> 03 0006E000 FFFFE000:4k 0 01 1 1 00092000 0 1 1 00093000 0<br /> 04 0002E000 FFFFE000:4k 0 01 1 1 00052000 0 1 1 00053000 0<br /> 05 0002C000 FFFFE000:4k 0 01 1 1 00050000 0 1 1 00051000 0<br /> 06 0002A000 FFFFE000:4k 0 01 1 1 0004E000 0 1 1 0004F000 0<br /> 07 00028000 FFFFE000:4k 0 01 1 1 0004C000 0 1 1 0004D000 0<br /> 08 0080E000 FFFFE000:4k 0 01 1 1 00832000 0 1 1 00833000 0<br /> 09 0006A000 FFFFE000:4k 0 01 1 1 0008E000 0 1 1 0008F000 0<br /> 0a 00030000 FFFFE000:4k 0 01 1 1 00054000 0 1 1 00055000 0<br /> 0b 00058000 FFFFE000:4k 0 01 1 1 0007C000 0 1 1 0007D000 0<br /> 0c 0003C000 FFFFE000:4k 0 01 1 1 00060000 0 1 1 00061000 0<br /> 0d 00036000 FFFFE000:4k 0 01 1 1 0005A000 0 1 1 0005B000 0<br /> 0e 00050000 FFFFE000:4k 0 01 1 1 00074000 0 1 1 00075000 0<br /> 0f 00066000 FFFFE000:4k 0 01 1 1 0008A000 0 1 1 0008B000 0<br /> 10 0080E000 FFFFE000:4k 0 00 1 1 00832000 0 1 1 00833000 0<br /> 11 00054000 FFFFE000:4k 0 01 1 1 00078000 0 1 1 00079000 0<br /> 12 00026000 FFFFE000:4k 0 01 1 1 0004A000 0 1 1 0004B000 0<br /> 13 0001A000 FFFFE000:4k 0 01 1 1 0003E000 0 1 1 0003F000 0<br /> 14 0005C000 FFFFE000:4k 0 01 1 1 00080000 0 1 1 00081000 0<br /> 15 00024000 FFFFE000:4k 0 01 1 1 00048000 0 1 1 00049000 0<br /> 16 00022000 FFFFE000:4k 0 01 1 1 00046000 0 1 1 00047000 0<br /> 17 00020000 FFFFE000:4k 0 01 1 1 00044000 0 1 1 00045000 0<br /> 18 0001E000 FFFFE000:4k 0 01 1 1 00042000 0 1 1 00043000 0<br /> 19 00018000 FFFFE000:4k 0 01 1 1 0003C000 0 1 1 0003D000 0<br /> 1a 00810000 FFFFE000:4k 0 01 1 1 00834000 0 1 1 00835000 0<br /> 1b 00014000 FFFFE000:4k 0 01 1 1 00038000 0 1 1 00039000 0<br /> 1c 00046000 FFFFE000:4k 0 01 1 1 0006A000 0 1 1 0006B000 0<br /> 1d 00044000 FFFFE000:4k 0 01 1 1 00068000 0 1 1 00069000 0<br /> 1e 00042000 FFFFE000:4k 0 01 1 1 00066000 0 1 1 00067000 0<br /> 1f 0004E000 FFFFE000:4k 0 01 1 1 00072000 0 1 1 00073000 0<br /> 20 0005A000 FFFFE000:4k 0 01 1 1 0007E000 0 1 1 0007F000 0<br /> 21 00012000 FFFFE000:4k 0 01 1 1 00036000 0 1 1 00037000 0<br /> 22 00038000 FFFFE000:4k 0 01 1 1 0005C000 0 1 1 0005D000 0<br /> 23 00000000 FFFFE000:4k 0 ff 0 0 00000000 0 0 0 00000000 0<br /> 24 00068000 FFFFE000:4k 0 01 1 1 0008C000 0 1 1 0008D000 0<br /> 25 00000000 FFFFE000:4k 0 ff 0 0 00000000 0 0 0 00000000 0<br /> 26 00056000 FFFFE000:4k 0 01 1 1 0007A000 0 1 1 0007B000 0<br /> 27 00000000 FFFFE000:4k 0 ff 0 0 00000000 0 0 0 00000000 0<br /> 28 0001C000 FFFFE000:4k 0 01 1 1 00040000 0 1 1 00041000 0<br /> 29 0005E000 FFFFE000:4k 0 01 1 1 00082000 0 1 1 00083000 0<br /> 2a 00064000 FFFFE000:4k 0 01 1 1 00088000 0 1 1 00089000 0<br /> 2b 00000000 FFFFE000:4k 0 ff 0 0 00000000 0 0 0 00000000 0<br /> 2c 00052000 FFFFE000:4k 0 01 1 1 00076000 0 1 1 00077000 0<br /> 2d 00000000 FFFFE000:4k 0 ff 0 0 00000000 0 0 0 00000000 0<br /> 2e 00070000 FFFFE000:4k 0 01 1 1 00094000 0 1 1 00095000 0<br /> 2f 00000000 FFFFE000:4k 0 ff 0 0 00000000 0 0 0 00000000 0<br /><br />Este dump cp0 registrov z handlera tlb invalid:<br /><br /> no name hex dump readable dump<br /> 00 Index 0000002F index: 2F res: 0 p: 0 <br /> 01 Random 0000002D random: 2D, res: 0000000<br /> 02 EntryLo0 00020D06 g: 0 v: 1 d: 1 c: 0 pfn: 000834 res: 0<br /> 03 EntryLo1 00020D46 g: 0 v: 1 d: 1 c: 0 pfn: 000835 res: 0<br /> 04 Context 00004080 res: 0 badvpn2: 00408 ptebase: 000<br /> 05 PageMask 00000000 res1: 0000 mask: 000 (4k) res2: 00<br /> 06 Wired 00000000 wired: 0 res: 0000000<br /> 08 BadVAddr 00811EC8 badvaddr: 00811EC8<br /> 09 Count 01013132 count: 1013132<br /> 0a EntryHi 00810001 asid: 01 res: 0 vpn2: 00000<br /> 0b Compare 01012F5A compare: 1012f5a<br /> 0c Status 0000FF00 ie: 0 exl: 0 erl: 0 ksu: 0 ux: 0 sx: 0 kx: 0<br /> im: FF de: 0 ce: 0 ch: 0 res1: 0 sr: 0 ts: 0<br /> bev: 0 res2: 0 re: 0 fr: 0 rp: 0 cu: 0<br /> 0d Cause 0000800C res1: 0 exccode: 03 res2: 0 ip: 80 res3: 00<br /> ce: 0 res4: 0 bd: 0<br /> 0e EPC 800005BC epc: 800005BC<br /> 0f PRId 00000400 rev: 00 imp: 04 res: 0000<br /> 10 Config 00000000 k0: 0 cu: 0 db: 0 b: 0 dc: 0 ic: 0 res: 0 eb: 0<br /> em: 0 be: 0 sm: 0 sc: 0 ew: 0 sw: 0 ss: 0 sb: 0<br /> ep: 0 ec: 0 cm: 0<br /> 11 LLAddr 00000000 lladdr: 00000000<br /> 12 WatchLo 00000000 w: 0 r: 0 res: 0 paddr0: 00000000<br /> 13 WatchHi 00000000 res: 00000000 paddr1: 0<br /> 14 XContext<br /> 1e ErrorEPC 00000000 errorepc: 00000000<br /><br /><br /><br /><br />---- Původní zpráva ----<br />Od koho: Petr Tuma <petr.tuma@dsrg.mff.cuni.cz><br />Komu: Operating Systems Course <osy@dsrg.mff.cuni.cz><br />Datum: 8.1.2008 16:30:00<br />PÅedmÄt: Re: [OSy] Vyvolavanie vynimky TLB invalid<br /><br />Dobry den,<br /><br />drivejsi podobne problemy byly zpusobeny pritomnosti jinych (spatne <br />inicializovanych) polozek v TLB, nemuze to byt vas pripad ?<br /><br />Muzete poslat dump, ktery ukazuje vyvolani vyjimky a obsah TLB v tom <br />okamziku ?<br /><br />Petr Tuma<br /><br /><br />> Ja by som sa od filozofovania rad vratil k samotnemu kernelu :-)<br />> <br />> Z mne neznameho dovodu sa mi pri testovani kernelu vyvolavaju<br />> tlb invalid vynimky, avsak ked si v jej handleri dam vypisat<br />> dump tlb, tak adresa, ktora vyvolala vynimku, je v tlb a je aj<br />> validna. Skusal som hladat v manuali aj zdrojakoch msimu,<br />> ci ta vynimka moze nastat este niekedy inokedy, ale akosi som<br />> tam nic neobjavil. Neviem, ci je to tym, ze pristupujem na user<br />> adresy z obsluhy vynimky alebo preco.<br />> Dufam, ze to zas nie je rtfm otazka, ktora je na strane xyz v manuali.<br />> <br />> S pozdravom<br />> <br />> Jaroslav Pastorek<br />> www.inpage.cz <http://www.inpage.cz/> - www stranky za 3 Kc a za chvilku.<br />> <br />> <br />> ------------------------------------------------------------------------<br />> <br />> _______________________________________________<br />> OSy mailing list<br />> OSy@dsrg.mff.cuni.cz<br />> https://dsrg.mff.cuni.cz/mailman/listinfo/osy<br /><br />-- <br />Petr Tuma<br />Distributed Systems Research Group<br />Department of Software Engineering<br />Faculty of Mathematics and Physics<br />Charles University, Czech Republic<br /> http://dsrg.mff.cuni.cz/~ceres<br /><br />_______________________________________________<br />OSy mailing list<br />OSy@dsrg.mff.cuni.cz<br />https://dsrg.mff.cuni.cz/mailman/listinfo/osy<br />
<br><a href="http://www.inpage.cz/">www.inpage.cz</a> - www stranky za 3 Kc a za chvilku.
<br></body></html>