On 11/03/2014 20:43, David Daney wrote: > On 11/03/2014 05:34 PM, Joshua Kinard wrote: >> On 11/03/2014 20:23, David Daney wrote: >>> On 11/03/2014 05:08 PM, Joshua Kinard wrote: >>>> On 11/03/2014 13:52, David Daney wrote: >>>>> On 11/02/2014 02:53 AM, Joshua Kinard wrote: >>>>>> >>>>>> So I have been testing the Onyx2 I have out the last few days with the IOC3 >>>>>> metadriver used on Octane, and I can get it to boot, but if >>>>>> CONFIG_TRANSPARENT_HUGEPAGE is enabled in the kernel, bus errors can happen. >>>>>> >>>>>> If I use CONFIG_PAGE_SIZE_4KB, I get bus errors rather frequently -- running >>>>>> Gentoo's 'emerge' command can produce one. Switch to >>>>>> CONFIG_PAGE_SIZE_16KB, >>>>>> and the bus errors are far less frequent. I suspect CONFIG_PAGE_SIZE_64KB >>>>>> will >>>>>> be even less. >>>>>> >>>>>> Disable CONFIG_TRANSPARENT_HUGEPAGE, and the machine works pretty good. >>>>>> It's >>>>>> been up for almost 8 hours compiling, and not a single bus error yet. It's >>>>>> got >>>>>> 2x node board with dual R12K/400MHz CPUs per node. >>>>>> >>>>>> I'm not really sure what CONFIG_TRANSPARENT_HUGEPAGE is enabling that's >>>>>> causing >>>>>> R12K CPUs on the IP27 such a headache (and on Octane, really screws up R14K >>>>>> CPUs). I tried getting a core dump on one of the bus errors, but that >>>>>> produces a >>>>>> truncated or corrupted core file that actually crashed GDB, plus I get a >>>>>> nice >>>>>> oops message in dmesg: >>>>> >>>>> Well, as its name implies, if you enable CONFIG_TRANSPARENT_HUGEPAGE, huge >>>>> pages will be created and used in the background transparently to the >>>>> userspace >>>>> application. >>>>> >>>>> With 4KB base page size, the huge pages will be 2MB in size.. I don't know >>>>> much about the R10K/R12K/R14K CPUs, but it is possible that either their TLBs >>>>> cannot handle such pages, or that the TLB Exception handlers don't contain >>>>> proper code for these CPUs. >>>>> >>>>> For each doubling of the base PAGE_SIZE, the huge page size will increase >>>>> by a >>>>> factor of 4. So with 16KB base pages the huge page size would be 32MB, since >>>>> there are many fewer opportunities to transparently use a 32MB page, I would >>>>> expect any errors related to huge pages to be correspondingly less frequent. >>>>> >>>>> With 64KB PAGE_SIZE the huge page size is 512MB, and It is likely that that >>>>> could never be used by normal userspace programs. >>>> >>>> I checked the R10K/R12K manual, and the PageMask register there has bits 24:13 >>>> open for setting a mask value. It looks like these CPUs only support a page >>>> size from 4KB to 16MB (so a 2MB page size should work w/ transparent >>>> hugepages). I assume that the R14K on the Octane might be the same (but I >>>> don't have a manual specific to the R14k, so I don't know). All of the >>>> remaining bits in that register read 0 and must have 0's written back. >>>> >>>> I guess I could find a way to have the kernel trigger a non-fatal oops/dump >>>> the >>>> registers on a bus error and get a look at the cause register to see if that >>>> sheds any light on things. Doesn't a SIGBUS on MIPS typically mean that an >>>> address wasn't aligned on a 32-bit boundary? Or could it also mean other >>>> things? >>>> >>>> I believe that the R10K is largely compatible with the R4K-style TLB setup, >>>> but >>>> Ralf or someone else more knowledge in that area will have to verify. Maybe >>>> the R10k-family CPUs need their own TLB routines, or what currently exists >>>> needs modifications? I have not tried to understand the whole TLB thing in >>>> MIPS yet, so that's a bit of voodoo to me. >>> >>> I haven't checked, but there may be workarounds required in the TLB management >>> code that are not in place for the huge page case. When the huge TLB code was >>> developed, we didn't do any testing on R10K. Somebody should dump the >>> exception handlers and carefully look at the rest of the huge TLB management >>> code, and check to see that any required workarounds are in place. >> >> How does one dump the exception handlers? Is it a debug switch somewhere? >> > > Add as the very first line of tlbex.c "#define DEBUG 1" > > Then rebuild, and pass "debug" on the kernel command line. > > The output can be fed though gas, and then disassembled with objdump -d Had to fiddle with gas a little bit, but that was because I was using cross-compiler. Got it to work, though. tlb1-no-transparent-hugepage.dis is without CONFIG_TRANSPARENT_HUGEPAGE, while tlb2-transparent-hugepage.dis is with that option enabled. I don't think any of the other patches/hacks I've added to my IP27 build have affected the output. I saw that CPU1 through CPU3 also dumped r4000_tlb_refill only, but that looks to be the same across all of the CPUs, so I only compiled/disassembled the output from CPU0. --J >>>>>> [ 1302.260000] CPU: 0 PID: 1179 Comm: emerge Not tainted >>>>>> 3.17.1-mipsgit-20141006 #57 >>>>>> [ 1302.260000] task: a8000000ffbbf288 ti: a8000000fa6f0000 task.ti: >>>>>> a8000000fa6f0000 >>>>>> [ 1302.260000] $ 0 : 0000000000000000 0000000000000001 0000000000000000 >>>>>> a8000000ff5ad800 >>>>>> [ 1302.260000] $ 4 : a8000000006d5480 00000000000f9c00 00000001f380173f >>>>>> a800000001000000 >>>>>> [ 1302.260000] $ 8 : 00000001f380173f 0000000000100077 a8000000fe77a000 >>>>>> 0000000000000000 >>>>>> [ 1302.260000] $12 : 0000000000660000 0000000000000000 0000000000000000 >>>>>> 776bc40c00000004 >>>>>> [ 1302.260000] $16 : 0000000000e00000 0000000000000000 00000000018ee000 >>>>>> 6db6db6db6db6db7 >>>>>> [ 1302.260000] $20 : 00000000000000ca a8000000006d5480 a8000000ff65fa68 >>>>>> 0000000000001000 >>>>>> [ 1302.260000] $24 : 0000000000000000 a8000000000469c0 >>>>>> [ 1302.260000] $28 : a8000000fa6f0000 a8000000fa6f3a00 0000000000e00000 >>>>>> a800000000046720 >>>>>> [ 1302.260000] Hi : 00000000002ed400 >>>>>> [ 1302.260000] Lo : 00000000000f9c00 >>>>>> [ 1302.260000] epc : a8000000000467e4 r4k_flush_cache_page+0x104/0x2e0 >>>>>> [ 1302.260000] Not tainted >>>>>> [ 1302.260000] ra : a800000000046720 r4k_flush_cache_page+0x40/0x2e0 >>>>>> [ 1302.260000] Status: 90001ce3 KX SX UX KERNEL EXL IE >>>>>> [ 1302.260000] Cause : 0000c010 >>>>>> [ 1302.260000] BadVA : 00000001f380173f >>>>>> [ 1302.260000] PrId : 00000e35 (R12000) >>>>>> [ 1302.260000] Process emerge (pid: 1179, threadinfo=a8000000fa6f0000, >>>>>> task=a8000000ffbbf288, tls=00000000778d2490) >>>>>> [ 1302.260000] Stack : a8000000ff65fa68 0000000000e00000 00000000000f9c00 >>>>>> a8000000006d5480 >>>>>> a8000000ff65fa68 0000000000001000 0000000000e00000 >>>>>> a80000000010cb00 >>>>>> a8000000046a2000 a8000000ff65fa68 00000000018ee000 >>>>>> 6db6db6db6db6db7 >>>>>> a8000000fe7fdce0 a8000000000375ec a8000000ff4e5800 >>>>>> a8000000005fbd90 >>>>>> 0000000300000080 a8000000ff668580 a8000000005fbd90 >>>>>> 5349474900000080 >>>>>> a8000000fa6f3ad8 a8000000005fbd90 0000000600000088 >>>>>> a8000000ff5ad928 >>>>>> a8000000005fbd90 46494c4500002bf9 c000000000101000 >>>>>> 0000000a00000080 >>>>>> 0000000000000000 0000000000000000 0000000000000000 >>>>>> 0000000000000000 >>>>>> 0000000000000000 0000000000000000 0000000000000000 >>>>>> 0000000000000000 >>>>>> 0000000000000000 0000000000000000 0000000000000000 >>>>>> 0000000000000000 >>>>>> ... >>>>>> [ 1302.260000] Call Trace: >>>>>> [ 1302.260000] [<a8000000000467e4>] r4k_flush_cache_page+0x104/0x2e0 >>>>>> [ 1302.260000] [<a80000000010cb00>] get_dump_page+0xc8/0xe8 >>>>>> [ 1302.260000] [<a8000000000375ec>] elf_core_dump+0x1294/0x14d8 >>>>>> [ 1302.260000] [<a8000000001b41e4>] do_coredump+0x5e4/0x1048 >>>>>> [ 1302.260000] [<a80000000005c0b8>] get_signal+0x1b8/0x710 >>>>>> [ 1302.260000] [<a8000000000299c0>] do_signal+0x18/0x240 >>>>>> [ 1302.260000] [<a80000000002a4c8>] do_notify_resume+0x70/0x88 >>>>>> [ 1302.260000] [<a8000000000255ac>] work_notifysig+0x10/0x18 >>>>>> [ 1302.260000] >>>>>> [ 1302.260000] >>>>>> Code: 0010327a 30c60ff8 00c8302d <dcc60000> 30c80001 1100003e 00000000 >>>>>> bfb40000 df880000 >>>>>> [ 1305.340000] ---[ end trace c7649a6433db8d18 ]--- >>>>>> >>>>>> Thoughts? -- Joshua Kinard Gentoo/MIPS kumba@xxxxxxxxxx 4096R/D25D95E3 2011-03-28 "The past tempts us, the present confuses us, the future frightens us. And our lives slip away, moment by moment, lost in that vast, terrible in-between." --Emperor Turhan, Centauri Republic
tlb1: file format elf64-tradbigmips Disassembly of section .text: 0000000000000000 <tlbmiss_handler>: 0: 40252000 dmfc0 a1,$4 4: 00052dfa dsrl a1,a1,0x17 8: 3c06a800 lui a2,0xa800 c: 00063438 dsll a2,a2,0x10 10: 64c60091 daddiu a2,a2,145 14: 00063438 dsll a2,a2,0x10 18: 00c5302d daddu a2,a2,a1 1c: fcc44100 sd a0,16640(a2) 20: 03e00008 jr ra 24: 00000000 nop ... 0000000000000048 <r4000_tlb_load>: 48: 403a2000 dmfc0 k0,$4 4c: 001ad6ba dsrl k0,k0,0x1a 50: 001ad1f8 dsll k0,k0,0x7 54: 3c1ba800 lui k1,0xa800 58: 001bdc38 dsll k1,k1,0x10 5c: 677b0091 daddiu k1,k1,145 60: 001bdc38 dsll k1,k1,0x10 64: 677b5500 daddiu k1,k1,21760 68: 035bd02d daddu k0,k0,k1 6c: ff410000 sd at,0(k0) 70: ff420008 sd v0,8(k0) 74: 403b4000 dmfc0 k1,$8 78: 001b0abe dsrl32 at,k1,0xa 7c: 14200026 bnez at,118 <r4000_tlb_load+0xd0> 80: 40212000 dmfc0 at,$4 84: 00010dfa dsrl at,at,0x17 88: 3c1ba800 lui k1,0xa800 8c: 001bdc38 dsll k1,k1,0x10 90: 677b0091 daddiu k1,k1,145 94: 001bdc38 dsll k1,k1,0x10 98: 003b082d daddu at,at,k1 9c: 403b4000 dmfc0 k1,$8 a0: dc214100 ld at,16640(at) a4: 001bdeba dsrl k1,k1,0x1a a8: 337bfff8 andi k1,k1,0xfff8 ac: 003b082d daddu at,at,k1 b0: 403b4000 dmfc0 k1,$8 b4: dc210000 ld at,0(at) b8: 001bdb7a dsrl k1,k1,0xd bc: 337bfff8 andi k1,k1,0xfff8 c0: 003b082d daddu at,at,k1 c4: d03b0000 lld k1,0(at) c8: 42000008 tlbp cc: 33620003 andi v0,k1,0x3 d0: 38420003 xori v0,v0,0x3 d4: 14400016 bnez v0,130 <r4000_tlb_load+0xe8> d8: 377b0048 ori k1,k1,0x48 dc: f03b0000 scd k1,0(at) e0: 5360fff8 beqzl k1,c4 <r4000_tlb_load+0x7c> e4: 00000000 nop e8: 34210008 ori at,at,0x8 ec: 38210008 xori at,at,0x8 f0: dc3b0000 ld k1,0(at) f4: dc210008 ld at,8(at) f8: 001bd97a dsrl k1,k1,0x5 fc: 40bb1000 dmtc0 k1,$2 100: 0001097a dsrl at,at,0x5 104: 40a11800 dmtc0 at,$3 108: 42000002 tlbwi 10c: df410000 ld at,0(k0) 110: df420008 ld v0,8(k0) 114: 42000018 eret 118: 3c01a800 lui at,0xa800 11c: 00010c38 dsll at,at,0x10 120: 6421008f daddiu at,at,143 124: 00010c38 dsll at,at,0x10 128: 1000ffde b a4 <r4000_tlb_load+0x5c> 12c: 64210000 daddiu at,at,0 130: df410000 ld at,0(k0) 134: df420008 ld v0,8(k0) 138: 08010cc8 j 43320 <r4000_tlb_refill+0x42cd8> 13c: 00000000 nop ... 0000000000000248 <r4000_tlb_store>: 248: 403a2000 dmfc0 k0,$4 24c: 001ad6ba dsrl k0,k0,0x1a 250: 001ad1f8 dsll k0,k0,0x7 254: 3c1ba800 lui k1,0xa800 258: 001bdc38 dsll k1,k1,0x10 25c: 677b0091 daddiu k1,k1,145 260: 001bdc38 dsll k1,k1,0x10 264: 677b5500 daddiu k1,k1,21760 268: 035bd02d daddu k0,k0,k1 26c: ff410000 sd at,0(k0) 270: ff420008 sd v0,8(k0) 274: 403b4000 dmfc0 k1,$8 278: 001b0abe dsrl32 at,k1,0xa 27c: 14200027 bnez at,31c <r4000_tlb_store+0xd4> 280: 40212000 dmfc0 at,$4 284: 00010dfa dsrl at,at,0x17 288: 3c1ba800 lui k1,0xa800 28c: 001bdc38 dsll k1,k1,0x10 290: 677b0091 daddiu k1,k1,145 294: 001bdc38 dsll k1,k1,0x10 298: 003b082d daddu at,at,k1 29c: 403b4000 dmfc0 k1,$8 2a0: dc214100 ld at,16640(at) 2a4: 001bdeba dsrl k1,k1,0x1a 2a8: 337bfff8 andi k1,k1,0xfff8 2ac: 003b082d daddu at,at,k1 2b0: 403b4000 dmfc0 k1,$8 2b4: dc210000 ld at,0(at) 2b8: 001bdb7a dsrl k1,k1,0xd 2bc: 337bfff8 andi k1,k1,0xfff8 2c0: 003b082d daddu at,at,k1 2c4: d03b0000 lld k1,0(at) 2c8: 42000008 tlbp 2cc: 33620005 andi v0,k1,0x5 2d0: 38420005 xori v0,v0,0x5 2d4: 14400017 bnez v0,334 <r4000_tlb_store+0xec> 2d8: 00000000 nop 2dc: 377b00d8 ori k1,k1,0xd8 2e0: f03b0000 scd k1,0(at) 2e4: 5360fff7 beqzl k1,2c4 <r4000_tlb_store+0x7c> 2e8: 00000000 nop 2ec: 34210008 ori at,at,0x8 2f0: 38210008 xori at,at,0x8 2f4: dc3b0000 ld k1,0(at) 2f8: dc210008 ld at,8(at) 2fc: 001bd97a dsrl k1,k1,0x5 300: 40bb1000 dmtc0 k1,$2 304: 0001097a dsrl at,at,0x5 308: 40a11800 dmtc0 at,$3 30c: 42000002 tlbwi 310: df410000 ld at,0(k0) 314: df420008 ld v0,8(k0) 318: 42000018 eret 31c: 3c01a800 lui at,0xa800 320: 00010c38 dsll at,at,0x10 324: 6421008f daddiu at,at,143 328: 00010c38 dsll at,at,0x10 32c: 1000ffdd b 2a4 <r4000_tlb_store+0x5c> 330: 64210000 daddiu at,at,0 334: df410000 ld at,0(k0) 338: df420008 ld v0,8(k0) 33c: 08010d13 j 4344c <r4000_tlb_refill+0x42e04> 340: 00000000 nop ... 0000000000000448 <r4000_tlb_modify>: 448: 403a2000 dmfc0 k0,$4 44c: 001ad6ba dsrl k0,k0,0x1a 450: 001ad1f8 dsll k0,k0,0x7 454: 3c1ba800 lui k1,0xa800 458: 001bdc38 dsll k1,k1,0x10 45c: 677b0091 daddiu k1,k1,145 460: 001bdc38 dsll k1,k1,0x10 464: 677b5500 daddiu k1,k1,21760 468: 035bd02d daddu k0,k0,k1 46c: ff410000 sd at,0(k0) 470: ff420008 sd v0,8(k0) 474: 403b4000 dmfc0 k1,$8 478: 001b0abe dsrl32 at,k1,0xa 47c: 14200025 bnez at,514 <r4000_tlb_modify+0xcc> 480: 40212000 dmfc0 at,$4 484: 00010dfa dsrl at,at,0x17 488: 3c1ba800 lui k1,0xa800 48c: 001bdc38 dsll k1,k1,0x10 490: 677b0091 daddiu k1,k1,145 494: 001bdc38 dsll k1,k1,0x10 498: 003b082d daddu at,at,k1 49c: 403b4000 dmfc0 k1,$8 4a0: dc214100 ld at,16640(at) 4a4: 001bdeba dsrl k1,k1,0x1a 4a8: 337bfff8 andi k1,k1,0xfff8 4ac: 003b082d daddu at,at,k1 4b0: 403b4000 dmfc0 k1,$8 4b4: dc210000 ld at,0(at) 4b8: 001bdb7a dsrl k1,k1,0xd 4bc: 337bfff8 andi k1,k1,0xfff8 4c0: 003b082d daddu at,at,k1 4c4: d03b0000 lld k1,0(at) 4c8: 42000008 tlbp 4cc: 33620004 andi v0,k1,0x4 4d0: 10400016 beqz v0,52c <r4000_tlb_modify+0xe4> 4d4: 377b00d8 ori k1,k1,0xd8 4d8: f03b0000 scd k1,0(at) 4dc: 5360fff9 beqzl k1,4c4 <r4000_tlb_modify+0x7c> 4e0: 00000000 nop 4e4: 34210008 ori at,at,0x8 4e8: 38210008 xori at,at,0x8 4ec: dc3b0000 ld k1,0(at) 4f0: dc210008 ld at,8(at) 4f4: 001bd97a dsrl k1,k1,0x5 4f8: 40bb1000 dmtc0 k1,$2 4fc: 0001097a dsrl at,at,0x5 500: 40a11800 dmtc0 at,$3 504: 42000002 tlbwi 508: df410000 ld at,0(k0) 50c: df420008 ld v0,8(k0) 510: 42000018 eret 514: 3c01a800 lui at,0xa800 518: 00010c38 dsll at,at,0x10 51c: 6421008f daddiu at,at,143 520: 00010c38 dsll at,at,0x10 524: 1000ffdf b 4a4 <r4000_tlb_modify+0x5c> 528: 64210000 daddiu at,at,0 52c: df410000 ld at,0(k0) 530: df420008 ld v0,8(k0) 534: 08010d13 j 4344c <r4000_tlb_refill+0x42e04> 538: 00000000 nop ... 0000000000000648 <r4000_tlb_refill>: 648: 07410006 bgez k0,664 <r4000_tlb_refill+0x1c> 64c: 3c1ba800 lui k1,0xa800 650: 001bdc38 dsll k1,k1,0x10 654: 677b008f daddiu k1,k1,143 658: 001bdc38 dsll k1,k1,0x10 65c: 10000026 b 6f8 <r4000_tlb_refill+0xb0> 660: 677b0000 daddiu k1,k1,0 664: 3c1ba800 lui k1,0xa800 668: 001bdc38 dsll k1,k1,0x10 66c: 677b0004 daddiu k1,k1,4 670: 001bdc38 dsll k1,k1,0x10 674: 677b3320 daddiu k1,k1,13088 678: 03600008 jr k1 67c: 00000000 nop ... 6c8: 403a4000 dmfc0 k0,$8 6cc: 001adabe dsrl32 k1,k0,0xa 6d0: 1760ffdd bnez k1,648 <r4000_tlb_refill> 6d4: 403b2000 dmfc0 k1,$4 6d8: 001bddfa dsrl k1,k1,0x17 6dc: 3c1aa800 lui k0,0xa800 6e0: 001ad438 dsll k0,k0,0x10 6e4: 675a0091 daddiu k0,k0,145 6e8: 001ad438 dsll k0,k0,0x10 6ec: 037ad82d daddu k1,k1,k0 6f0: 403a4000 dmfc0 k0,$8 6f4: df7b4100 ld k1,16640(k1) 6f8: 001ad6ba dsrl k0,k0,0x1a 6fc: 335afff8 andi k0,k0,0xfff8 700: 037ad82d daddu k1,k1,k0 704: 403aa000 dmfc0 k0,$20 708: df7b0000 ld k1,0(k1) 70c: 001ad13a dsrl k0,k0,0x4 710: 335afff0 andi k0,k0,0xfff0 714: 037ad82d daddu k1,k1,k0 718: df7a0000 ld k0,0(k1) 71c: df7b0008 ld k1,8(k1) 720: 001ad17a dsrl k0,k0,0x5 724: 40ba1000 dmtc0 k0,$2 728: 001bd97a dsrl k1,k1,0x5 72c: 40bb1800 dmtc0 k1,$3 730: 42000006 tlbwr 734: 42000018 eret ...
tlb2: file format elf64-tradbigmips Disassembly of section .text: 0000000000000000 <tlbmiss_handler>: 0: 40252000 dmfc0 a1,$4 4: 00052dfa dsrl a1,a1,0x17 8: 3c06a800 lui a2,0xa800 c: 00063438 dsll a2,a2,0x10 10: 64c60092 daddiu a2,a2,146 14: 00063438 dsll a2,a2,0x10 18: 00c5302d daddu a2,a2,a1 1c: fcc44100 sd a0,16640(a2) 20: 03e00008 jr ra 24: 00000000 nop ... 0000000000000048 <r4000_tlb_load>: 48: 403a2000 dmfc0 k0,$4 4c: 001ad6ba dsrl k0,k0,0x1a 50: 001ad1f8 dsll k0,k0,0x7 54: 3c1ba800 lui k1,0xa800 58: 001bdc38 dsll k1,k1,0x10 5c: 677b0092 daddiu k1,k1,146 60: 001bdc38 dsll k1,k1,0x10 64: 677b5500 daddiu k1,k1,21760 68: 035bd02d daddu k0,k0,k1 6c: ff410000 sd at,0(k0) 70: ff420008 sd v0,8(k0) 74: 403b4000 dmfc0 k1,$8 78: 001b0abe dsrl32 at,k1,0xa 7c: 14200029 bnez at,124 <r4000_tlb_load+0xdc> 80: 40212000 dmfc0 at,$4 84: 00010dfa dsrl at,at,0x17 88: 3c1ba800 lui k1,0xa800 8c: 001bdc38 dsll k1,k1,0x10 90: 677b0092 daddiu k1,k1,146 94: 001bdc38 dsll k1,k1,0x10 98: 003b082d daddu at,at,k1 9c: 403b4000 dmfc0 k1,$8 a0: dc214100 ld at,16640(at) a4: 001bdeba dsrl k1,k1,0x1a a8: 337bfff8 andi k1,k1,0xfff8 ac: 003b082d daddu at,at,k1 b0: dc3b0000 ld k1,0(at) b4: 337b0020 andi k1,k1,0x20 b8: 17600020 bnez k1,13c <r4000_tlb_load+0xf4> bc: 403b4000 dmfc0 k1,$8 c0: dc210000 ld at,0(at) c4: 001bdb7a dsrl k1,k1,0xd c8: 337bfff8 andi k1,k1,0xfff8 cc: 003b082d daddu at,at,k1 d0: d03b0000 lld k1,0(at) d4: 42000008 tlbp d8: 33620003 andi v0,k1,0x3 dc: 38420003 xori v0,v0,0x3 e0: 1440002c bnez v0,194 <r4000_tlb_load+0x14c> e4: 377b0108 ori k1,k1,0x108 e8: f03b0000 scd k1,0(at) ec: 5360fff8 beqzl k1,d0 <r4000_tlb_load+0x88> f0: 00000000 nop f4: 34210008 ori at,at,0x8 f8: 38210008 xori at,at,0x8 fc: dc3b0000 ld k1,0(at) 100: dc210008 ld at,8(at) 104: 001bd9fa dsrl k1,k1,0x7 108: 40bb1000 dmtc0 k1,$2 10c: 000109fa dsrl at,at,0x7 110: 40a11800 dmtc0 at,$3 114: 42000002 tlbwi 118: df410000 ld at,0(k0) 11c: df420008 ld v0,8(k0) 120: 42000018 eret 124: 3c01a800 lui at,0xa800 128: 00010c38 dsll at,at,0x10 12c: 64210090 daddiu at,at,144 130: 00010c38 dsll at,at,0x10 134: 1000ffdb b a4 <r4000_tlb_load+0x5c> 138: 64210000 daddiu at,at,0 13c: d03b0000 lld k1,0(at) 140: 33620003 andi v0,k1,0x3 144: 38420003 xori v0,v0,0x3 148: 14400012 bnez v0,194 <r4000_tlb_load+0x14c> 14c: 42000008 tlbp 150: 377b0108 ori k1,k1,0x108 154: f03b0000 scd k1,0(at) 158: 1360fff8 beqz k1,13c <r4000_tlb_load+0xf4> 15c: dc3b0000 ld k1,0(at) 160: 3c010040 lui at,0x40 164: 001bd9fa dsrl k1,k1,0x7 168: 40bb1000 dmtc0 k1,$2 16c: 0361d82d daddu k1,k1,at 170: 40bb1800 dmtc0 k1,$3 174: 3c1b1fff lui k1,0x1fff 178: 377be000 ori k1,k1,0xe000 17c: 409b2800 mtc0 k1,$5 180: 42000002 tlbwi 184: 3c1b0001 lui k1,0x1 188: 377be000 ori k1,k1,0xe000 18c: 1000ffe2 b 118 <r4000_tlb_load+0xd0> 190: 409b2800 mtc0 k1,$5 194: df410000 ld at,0(k0) 198: df420008 ld v0,8(k0) 19c: 08010f14 j 43c50 <r4000_tlb_refill+0x43608> 1a0: 00000000 nop ... 0000000000000248 <r4000_tlb_store>: 248: 403a2000 dmfc0 k0,$4 24c: 001ad6ba dsrl k0,k0,0x1a 250: 001ad1f8 dsll k0,k0,0x7 254: 3c1ba800 lui k1,0xa800 258: 001bdc38 dsll k1,k1,0x10 25c: 677b0092 daddiu k1,k1,146 260: 001bdc38 dsll k1,k1,0x10 264: 677b5500 daddiu k1,k1,21760 268: 035bd02d daddu k0,k0,k1 26c: ff410000 sd at,0(k0) 270: ff420008 sd v0,8(k0) 274: 403b4000 dmfc0 k1,$8 278: 001b0abe dsrl32 at,k1,0xa 27c: 1420002a bnez at,328 <r4000_tlb_store+0xe0> 280: 40212000 dmfc0 at,$4 284: 00010dfa dsrl at,at,0x17 288: 3c1ba800 lui k1,0xa800 28c: 001bdc38 dsll k1,k1,0x10 290: 677b0092 daddiu k1,k1,146 294: 001bdc38 dsll k1,k1,0x10 298: 003b082d daddu at,at,k1 29c: 403b4000 dmfc0 k1,$8 2a0: dc214100 ld at,16640(at) 2a4: 001bdeba dsrl k1,k1,0x1a 2a8: 337bfff8 andi k1,k1,0xfff8 2ac: 003b082d daddu at,at,k1 2b0: dc3b0000 ld k1,0(at) 2b4: 337b0020 andi k1,k1,0x20 2b8: 17600021 bnez k1,340 <r4000_tlb_store+0xf8> 2bc: 403b4000 dmfc0 k1,$8 2c0: dc210000 ld at,0(at) 2c4: 001bdb7a dsrl k1,k1,0xd 2c8: 337bfff8 andi k1,k1,0xfff8 2cc: 003b082d daddu at,at,k1 2d0: d03b0000 lld k1,0(at) 2d4: 42000008 tlbp 2d8: 33620005 andi v0,k1,0x5 2dc: 38420005 xori v0,v0,0x5 2e0: 1440002e bnez v0,39c <r4000_tlb_store+0x154> 2e4: 00000000 nop 2e8: 377b0318 ori k1,k1,0x318 2ec: f03b0000 scd k1,0(at) 2f0: 5360fff7 beqzl k1,2d0 <r4000_tlb_store+0x88> 2f4: 00000000 nop 2f8: 34210008 ori at,at,0x8 2fc: 38210008 xori at,at,0x8 300: dc3b0000 ld k1,0(at) 304: dc210008 ld at,8(at) 308: 001bd9fa dsrl k1,k1,0x7 30c: 40bb1000 dmtc0 k1,$2 310: 000109fa dsrl at,at,0x7 314: 40a11800 dmtc0 at,$3 318: 42000002 tlbwi 31c: df410000 ld at,0(k0) 320: df420008 ld v0,8(k0) 324: 42000018 eret 328: 3c01a800 lui at,0xa800 32c: 00010c38 dsll at,at,0x10 330: 64210090 daddiu at,at,144 334: 00010c38 dsll at,at,0x10 338: 1000ffda b 2a4 <r4000_tlb_store+0x5c> 33c: 64210000 daddiu at,at,0 340: d03b0000 lld k1,0(at) 344: 33620005 andi v0,k1,0x5 348: 38420005 xori v0,v0,0x5 34c: 14400013 bnez v0,39c <r4000_tlb_store+0x154> 350: 00000000 nop 354: 42000008 tlbp 358: 377b0318 ori k1,k1,0x318 35c: f03b0000 scd k1,0(at) 360: 1360fff7 beqz k1,340 <r4000_tlb_store+0xf8> 364: dc3b0000 ld k1,0(at) 368: 3c010040 lui at,0x40 36c: 001bd9fa dsrl k1,k1,0x7 370: 40bb1000 dmtc0 k1,$2 374: 0361d82d daddu k1,k1,at 378: 40bb1800 dmtc0 k1,$3 37c: 3c1b1fff lui k1,0x1fff 380: 377be000 ori k1,k1,0xe000 384: 409b2800 mtc0 k1,$5 388: 42000002 tlbwi 38c: 3c1b0001 lui k1,0x1 390: 377be000 ori k1,k1,0xe000 394: 1000ffe1 b 31c <r4000_tlb_store+0xd4> 398: 409b2800 mtc0 k1,$5 39c: df410000 ld at,0(k0) 3a0: df420008 ld v0,8(k0) 3a4: 08010f5f j 43d7c <r4000_tlb_refill+0x43734> 3a8: 00000000 nop ... 0000000000000448 <r4000_tlb_modify>: 448: 403a2000 dmfc0 k0,$4 44c: 001ad6ba dsrl k0,k0,0x1a 450: 001ad1f8 dsll k0,k0,0x7 454: 3c1ba800 lui k1,0xa800 458: 001bdc38 dsll k1,k1,0x10 45c: 677b0092 daddiu k1,k1,146 460: 001bdc38 dsll k1,k1,0x10 464: 677b5500 daddiu k1,k1,21760 468: 035bd02d daddu k0,k0,k1 46c: ff410000 sd at,0(k0) 470: ff420008 sd v0,8(k0) 474: 403b4000 dmfc0 k1,$8 478: 001b0abe dsrl32 at,k1,0xa 47c: 14200028 bnez at,520 <r4000_tlb_modify+0xd8> 480: 40212000 dmfc0 at,$4 484: 00010dfa dsrl at,at,0x17 488: 3c1ba800 lui k1,0xa800 48c: 001bdc38 dsll k1,k1,0x10 490: 677b0092 daddiu k1,k1,146 494: 001bdc38 dsll k1,k1,0x10 498: 003b082d daddu at,at,k1 49c: 403b4000 dmfc0 k1,$8 4a0: dc214100 ld at,16640(at) 4a4: 001bdeba dsrl k1,k1,0x1a 4a8: 337bfff8 andi k1,k1,0xfff8 4ac: 003b082d daddu at,at,k1 4b0: dc3b0000 ld k1,0(at) 4b4: 337b0020 andi k1,k1,0x20 4b8: 1760001f bnez k1,538 <r4000_tlb_modify+0xf0> 4bc: 403b4000 dmfc0 k1,$8 4c0: dc210000 ld at,0(at) 4c4: 001bdb7a dsrl k1,k1,0xd 4c8: 337bfff8 andi k1,k1,0xfff8 4cc: 003b082d daddu at,at,k1 4d0: d03b0000 lld k1,0(at) 4d4: 42000008 tlbp 4d8: 33620004 andi v0,k1,0x4 4dc: 1040002b beqz v0,58c <r4000_tlb_modify+0x144> 4e0: 377b0318 ori k1,k1,0x318 4e4: f03b0000 scd k1,0(at) 4e8: 5360fff9 beqzl k1,4d0 <r4000_tlb_modify+0x88> 4ec: 00000000 nop 4f0: 34210008 ori at,at,0x8 4f4: 38210008 xori at,at,0x8 4f8: dc3b0000 ld k1,0(at) 4fc: dc210008 ld at,8(at) 500: 001bd9fa dsrl k1,k1,0x7 504: 40bb1000 dmtc0 k1,$2 508: 000109fa dsrl at,at,0x7 50c: 40a11800 dmtc0 at,$3 510: 42000002 tlbwi 514: df410000 ld at,0(k0) 518: df420008 ld v0,8(k0) 51c: 42000018 eret 520: 3c01a800 lui at,0xa800 524: 00010c38 dsll at,at,0x10 528: 64210090 daddiu at,at,144 52c: 00010c38 dsll at,at,0x10 530: 1000ffdc b 4a4 <r4000_tlb_modify+0x5c> 534: 64210000 daddiu at,at,0 538: d03b0000 lld k1,0(at) 53c: 33620004 andi v0,k1,0x4 540: 10400012 beqz v0,58c <r4000_tlb_modify+0x144> 544: 42000008 tlbp 548: 377b0318 ori k1,k1,0x318 54c: f03b0000 scd k1,0(at) 550: 1360fff9 beqz k1,538 <r4000_tlb_modify+0xf0> 554: dc3b0000 ld k1,0(at) 558: 3c010040 lui at,0x40 55c: 001bd9fa dsrl k1,k1,0x7 560: 40bb1000 dmtc0 k1,$2 564: 0361d82d daddu k1,k1,at 568: 40bb1800 dmtc0 k1,$3 56c: 3c1b1fff lui k1,0x1fff 570: 377be000 ori k1,k1,0xe000 574: 409b2800 mtc0 k1,$5 578: 42000002 tlbwi 57c: 3c1b0001 lui k1,0x1 580: 377be000 ori k1,k1,0xe000 584: 1000ffe3 b 514 <r4000_tlb_modify+0xcc> 588: 409b2800 mtc0 k1,$5 58c: df410000 ld at,0(k0) 590: df420008 ld v0,8(k0) 594: 08010f5f j 43d7c <r4000_tlb_refill+0x43734> 598: 00000000 nop ... 0000000000000648 <r4000_tlb_refill>: 648: df7a0000 ld k0,0(k1) 64c: 3c1b0040 lui k1,0x40 650: 001ad1fa dsrl k0,k0,0x7 654: 40ba1000 dmtc0 k0,$2 658: 035bd02d daddu k0,k0,k1 65c: 40ba1800 dmtc0 k0,$3 660: 3c1a1fff lui k0,0x1fff 664: 375ae000 ori k0,k0,0xe000 668: 409a2800 mtc0 k0,$5 66c: 42000006 tlbwr 670: 3c1a0001 lui k0,0x1 674: 375ae000 ori k0,k0,0xe000 678: 10000031 b 740 <r4000_tlb_refill+0xf8> 67c: 409a2800 mtc0 k0,$5 680: 07410006 bgez k0,69c <r4000_tlb_refill+0x54> 684: 3c1ba800 lui k1,0xa800 688: 001bdc38 dsll k1,k1,0x10 68c: 677b0090 daddiu k1,k1,144 690: 001bdc38 dsll k1,k1,0x10 694: 10000018 b 6f8 <r4000_tlb_refill+0xb0> 698: 677b0000 daddiu k1,k1,0 69c: 3c1ba800 lui k1,0xa800 6a0: 001bdc38 dsll k1,k1,0x10 6a4: 677b0004 daddiu k1,k1,4 6a8: 001bdc38 dsll k1,k1,0x10 6ac: 677b3c50 daddiu k1,k1,15440 6b0: 03600008 jr k1 6b4: 00000000 nop ... 6c8: 403a4000 dmfc0 k0,$8 6cc: 001adabe dsrl32 k1,k0,0xa 6d0: 1760ffeb bnez k1,680 <r4000_tlb_refill+0x38> 6d4: 403b2000 dmfc0 k1,$4 6d8: 001bddfa dsrl k1,k1,0x17 6dc: 3c1aa800 lui k0,0xa800 6e0: 001ad438 dsll k0,k0,0x10 6e4: 675a0092 daddiu k0,k0,146 6e8: 001ad438 dsll k0,k0,0x10 6ec: 037ad82d daddu k1,k1,k0 6f0: 403a4000 dmfc0 k0,$8 6f4: df7b4100 ld k1,16640(k1) 6f8: 001ad6ba dsrl k0,k0,0x1a 6fc: 335afff8 andi k0,k0,0xfff8 700: 037ad82d daddu k1,k1,k0 704: df7a0000 ld k0,0(k1) 708: 335a0020 andi k0,k0,0x20 70c: 1740ffce bnez k0,648 <r4000_tlb_refill> 710: 403aa000 dmfc0 k0,$20 714: df7b0000 ld k1,0(k1) 718: 001ad13a dsrl k0,k0,0x4 71c: 335afff0 andi k0,k0,0xfff0 720: 037ad82d daddu k1,k1,k0 724: df7a0000 ld k0,0(k1) 728: df7b0008 ld k1,8(k1) 72c: 001ad1fa dsrl k0,k0,0x7 730: 40ba1000 dmtc0 k0,$2 734: 001bd9fa dsrl k1,k1,0x7 738: 40bb1800 dmtc0 k1,$3 73c: 42000006 tlbwr 740: 42000018 eret ...