Re: IP27: CONFIG_TRANSPARENT_HUGEPAGE triggers bus errors

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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
	...

[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux