From: Joshua Kinard <kumba@gentoo.org>
To: David Daney <ddaney.cavm@gmail.com>
Cc: linux-mips@linux-mips.org
Subject: Re: IP27: CONFIG_TRANSPARENT_HUGEPAGE triggers bus errors
Date: Tue, 04 Nov 2014 00:51:14 -0500 [thread overview]
Message-ID: <54586952.60805@gentoo.org> (raw)
In-Reply-To: <54582F50.5010202@gmail.com>
[-- Attachment #1: Type: text/plain, Size: 8557 bytes --]
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@gentoo.org
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
[-- Attachment #2: tlb1-no-transparent-hugepage.dis --]
[-- Type: text/plain, Size: 7693 bytes --]
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
...
[-- Attachment #3: tlb2-transparent-hugepage.dis --]
[-- Type: text/plain, Size: 10634 bytes --]
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
...
next prev parent reply other threads:[~2014-11-04 5:51 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-02 10:53 IP27: CONFIG_TRANSPARENT_HUGEPAGE triggers bus errors Joshua Kinard
2014-11-03 18:52 ` David Daney
2014-11-04 1:08 ` Joshua Kinard
2014-11-04 1:23 ` David Daney
2014-11-04 1:34 ` Joshua Kinard
2014-11-04 1:43 ` David Daney
2014-11-04 5:51 ` Joshua Kinard [this message]
2014-11-05 9:07 ` Joshua Kinard
2014-11-05 10:21 ` Ralf Baechle
2014-11-05 16:09 ` Ralf Baechle
2014-11-07 10:22 ` Joshua Kinard
2014-11-07 18:30 ` David Daney
2014-11-09 0:09 ` Joshua Kinard
2014-11-10 7:04 ` Joshua Kinard
2014-11-10 10:51 ` Ralf Baechle
2014-11-10 11:20 ` Thomas Bogendoerfer
2014-11-10 14:22 ` Joshua Kinard
2014-11-10 16:55 ` David Daney
2014-11-10 17:03 ` Ralf Baechle
2014-11-10 17:29 ` David Daney
2014-11-11 11:11 ` Joshua Kinard
2014-11-10 21:30 ` Thomas Bogendoerfer
2014-11-11 7:47 ` Ralf Baechle
2014-11-11 9:24 ` Thomas Bogendoerfer
2014-11-11 9:38 ` Ralf Baechle
2014-11-10 11:22 ` Joshua Kinard
2014-11-05 13:52 ` Ralf Baechle
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=54586952.60805@gentoo.org \
--to=kumba@gentoo.org \
--cc=ddaney.cavm@gmail.com \
--cc=linux-mips@linux-mips.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox