[OSy] msim Machine check exception

Jan Smrčina lj at fooboo.org
Mon Jan 6 15:14:57 CET 2014


Asi 14 dnu jsem se s kolegou snazil ladit mapování paměti a na tuhle
vyjímku jsem docela spoléhal. Dost dlouho mi tak unikaly indicie o tom,
co se nam tam nekde deje zleho. Ted, kdyz jsem objevil TLB plnou
duplicitnich zaznamu, zase musim rychle plnit jine povinnosti a tak nam
hrozi, ze nestihneme ani druhe prodlouzeni deadlinu na druhe zadani.

JS

On Mon, Jan 06, 2014 at 08:53:00AM +0100, Petr Tůma wrote:
> Dobry den,
>
> pohledem do zdrojaku msimu mate pravdu, TLBW mozny prekryv zaznamu 
> netestuje. Je to neco, co potrebujete kvuli fungovani vaseho reseni, nebo 
> jste na tento problem narazil jen behem ladeni ?
>
> Diky, Petr Tuma
>
>
> On 05/01/14 18:17, Jan Smrčina wrote:
>> Zdravím všechny,
>>
>> zdá se mi, že msim nesimuluje vyjímku Machine check exception. Je to jen
>> můj dojem a špatné chápání manuálu, nebo tato vlastnost doopravdy v msimu
>> není implementována?
>>
>>
>> Vycházím z informací v sekci 4.6.6 manuálu k MIPSu staženého ze stránek
>> předměnu (strana 56 resp. 68. strana pdf) a dále sekce 5.2.11 téhož manuálu
>> (strana 84 resp. 96).
>>
>> Následuje výpis ladicích informací z msimu bezprostředně po zápisu do TLB (na
>> konci obslužné rutiny wrapped_tlbrefill() - absence nastaveného bitu EXL
>> je předmětem ladění, netřeba jí věnovat pozornost).
>>
>>
>> [msim] cpu0 tlbd
>>   [             general             ][    subp 0    ][    subp 1    ]
>>    no    vpn      mask        g asid  v d   pfn    c  v d   pfn    c
>>    00  00000000 FFFFE000:4k   0  00   0 0 00000000 0  0 0 00000000 0
>>    01  00000000 FFFFE000:4k   0  ff   0 0 00000000 0  0 0 00000000 0
>>    02  00000000 FFFFE000:4k   0  ff   0 0 00000000 0  0 0 00000000 0
>>    03  00000000 FFFFE000:4k   0  ff   0 0 00000000 0  0 0 00000000 0
>>    04  00000000 FFFFE000:4k   0  ff   0 0 00000000 0  0 0 00000000 0
>>    05  00000000 FFFFE000:4k   0  ff   0 0 00000000 0  0 0 00000000 0
>>    06  C0000000 FFFFE000:4k   0  01   1 1 0008F000 0  0 0 00000000 0
>>    07  00000000 FFFFE000:4k   0  ff   0 0 00000000 0  0 0 00000000 0
>>    08  00000000 FFFFE000:4k   0  ff   0 0 00000000 0  0 0 00000000 0
>>    09  00000000 FFFFE000:4k   0  ff   0 0 00000000 0  0 0 00000000 0
>>    0a  00000000 FFFFE000:4k   0  ff   0 0 00000000 0  0 0 00000000 0
>>    0b  00000000 FFFFE000:4k   0  ff   0 0 00000000 0  0 0 00000000 0
>>    0c  00000000 FFFFE000:4k   0  ff   0 0 00000000 0  0 0 00000000 0
>>    0d  00000000 FFFFE000:4k   0  ff   0 0 00000000 0  0 0 00000000 0
>>    0e  00000000 FFFFE000:4k   0  ff   0 0 00000000 0  0 0 00000000 0
>>    0f  00000000 FFFFE000:4k   0  ff   0 0 00000000 0  0 0 00000000 0
>>    10  00000000 FFFFE000:4k   0  ff   0 0 00000000 0  0 0 00000000 0
>>    11  00000000 FFFFE000:4k   0  ff   0 0 00000000 0  0 0 00000000 0
>>    12  C0000000 FFFFE000:4k   0  01   1 1 0008F000 0  1 1 00091000 0
>>    13  00000000 FFFFE000:4k   0  ff   0 0 00000000 0  0 0 00000000 0
>>    14  00000000 FFFFE000:4k   0  ff   0 0 00000000 0  0 0 00000000 0
>>    15  00000000 FFFFE000:4k   0  ff   0 0 00000000 0  0 0 00000000 0
>>    16  00000000 FFFFE000:4k   0  ff   0 0 00000000 0  0 0 00000000 0
>>    17  00000000 FFFFE000:4k   0  ff   0 0 00000000 0  0 0 00000000 0
>>    18  00000000 FFFFE000:4k   0  ff   0 0 00000000 0  0 0 00000000 0
>>    19  00000000 FFFFE000:4k   0  ff   0 0 00000000 0  0 0 00000000 0
>>    1a  00000000 FFFFE000:4k   0  ff   0 0 00000000 0  0 0 00000000 0
>>    1b  00000000 FFFFE000:4k   0  ff   0 0 00000000 0  0 0 00000000 0
>>    1c  00000000 FFFFE000:4k   0  ff   0 0 00000000 0  0 0 00000000 0
>>    1d  00000000 FFFFE000:4k   0  ff   0 0 00000000 0  0 0 00000000 0
>>    1e  00000000 FFFFE000:4k   0  ff   0 0 00000000 0  0 0 00000000 0
>>    1f  C0000000 FFFFE000:4k   0  01   1 1 0008F000 0  1 1 00091000 0
>>    20  00000000 FFFFE000:4k   0  ff   0 0 00000000 0  0 0 00000000 0
>>    21  00000000 FFFFE000:4k   0  ff   0 0 00000000 0  0 0 00000000 0
>>    22  00000000 FFFFE000:4k   0  ff   0 0 00000000 0  0 0 00000000 0
>>    23  00000000 FFFFE000:4k   0  ff   0 0 00000000 0  0 0 00000000 0
>>    24  00000000 FFFFE000:4k   0  ff   0 0 00000000 0  0 0 00000000 0
>>    25  00000000 FFFFE000:4k   0  ff   0 0 00000000 0  0 0 00000000 0
>>    26  00000000 FFFFE000:4k   0  ff   0 0 00000000 0  0 0 00000000 0
>>    27  00000000 FFFFE000:4k   0  ff   0 0 00000000 0  0 0 00000000 0
>>    28  00000000 FFFFE000:4k   0  ff   0 0 00000000 0  0 0 00000000 0
>>    29  00000000 FFFFE000:4k   0  ff   0 0 00000000 0  0 0 00000000 0
>>    2a  00000000 FFFFE000:4k   0  ff   0 0 00000000 0  0 0 00000000 0
>>    2b  00000000 FFFFE000:4k   0  ff   0 0 00000000 0  0 0 00000000 0
>>    2c  00000000 FFFFE000:4k   0  ff   0 0 00000000 0  0 0 00000000 0
>>    2d  00000000 FFFFE000:4k   0  ff   0 0 00000000 0  0 0 00000000 0
>>    2e  00000000 FFFFE000:4k   0  ff   0 0 00000000 0  0 0 00000000 0
>>    2f  00000000 FFFFE000:4k   0  ff   0 0 00000000 0  0 0 00000000 0
>> [msim] cpu0 cp0d
>>    no name       hex dump  readable dump
>>    00 Index      00000000  index: 00 res: 0 p: 0
>>    01 Random     00000017  random: 17, res: 0000000
>>    02 EntryLo0   000023C6  g: 0 v: 1 d: 1 c: 0 pfn: 00008F res: 0
>>    03 EntryLo1   00002446  g: 0 v: 1 d: 1 c: 0 pfn: 000091 res: 0
>>    04 Context    00600000  res: 0 badvpn2: 60000 ptebase: 000
>>    05 PageMask   00000000  res1: 0000 mask: 000 (4k) res2: 00
>>    06 Wired      00000000  wired: 0 res: 0000000
>>    08 BadVAddr   C0001000
>>    09 Count      0001198A
>>    0a EntryHi    00000001  asid: 01 res: 0 vpn2: 00000
>>    0b Compare    000120DF
>>    0c Status     1000FF00  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: 1
>>    0d Cause      0000000C  res1: 0 exccode: 03 res2: 0 ip: 00 res3: 00
>>                            ce: 0 res4: 0 bd: 0
>>    0e EPC        80014244
>>    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
>>    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
>> [msim]
>>
>>
>> Jak je vidno, v TLB jsou nejméně dva záznamy, které jistě "matchují"
>> neboť jsou zcela shodné. Chápu-li text v sekci 4.6.6 dobře, tato situace
>> v procesoru podle manuálu nastatnemůže.
>>
>> Dokonce i TS bit status registeru zůstal 0, ačkoliv k zápisu do status
>> registeru od instrukce  tlbwr  nedošlo. (Rozpor se 4.6.6 i 5.2.11).
>>
>>
>> S pozdravem,
>> Jan Smrčina
>>
>>
>>
>> _______________________________________________
>> OSy mailing list
>> OSy at d3s.mff.cuni.cz
>> https://d3s.mff.cuni.cz/mailman/listinfo/osy
>>
>
> _______________________________________________
> OSy mailing list
> OSy at d3s.mff.cuni.cz
> https://d3s.mff.cuni.cz/mailman/listinfo/osy
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 479 bytes
Desc: not available
URL: <http://d3s.mff.cuni.cz/pipermail/nswi004/attachments/20140106/6d42548a/attachment.sig>


More information about the NSWI004 mailing list