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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.