Re: [PATCH 1/4] MIPS: Replace _PAGE_READ with _PAGE_NO_READ

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

 



On Fri, May 13, 2011 at 11:45 AM, Jayachandran C.
<jayachandranc@xxxxxxxxxxxxxxxxx> wrote:
> The current linux-mips queue works for me, and I don't have the old source
> or binaries with me anymore. You surely should be able build with
> nlm_xlr_defconfig and see if the rixi is enabled in the build, if you want
> any config register dump on the CPU, please let me know.

I was able to locate an old MIPS R5000 based system and get linux-mips
queue running on it.  Here are the settings:

CONFIG_ARCH_DMA_ADDR_T_64BIT=y
CONFIG_64BIT_PHYS_ADDR=y
CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
CONFIG_PHYS_ADDR_T_64BIT=y
CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
CONFIG_SYS_SUPPORTS_64BIT_KERNEL=y
CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y
CONFIG_32BIT=y
# CONFIG_64BIT is not set
CONFIG_SMP=y

This was intended to mimic the XLR configuration: 32-bit kernel on a
64-bit CPU with 64-bit physical addressing, SMP (albeit with 1 CPU),
no RI/XI.

After applying all 4 of my page cleanup patches, the system still
booted and ran normally.

Userspace is glibc with a bash shell (also tried uClibc w/bash, same
result).  Since the reported assertion appeared to be in bash.

Jayachandran - how do you think we should debug this?  It seems like
the problem only shows up on XLR.  Since this is a relatively new
platform, is it possible that something else might be broken still?

FWIW, here are the TLB handlers:

Refill:

    80000000:   401b2000        mfc0    k1,c0_context
    80000004:   3c1a80a5        lui     k0,0x80a5
    80000008:   001bddc2        srl     k1,k1,0x17
    8000000c:   035bd821        addu    k1,k0,k1
    80000010:   401a4000        mfc0    k0,c0_badvaddr
    80000014:   8f7b4000        lw      k1,16384(k1)
    80000018:   001ad542        srl     k0,k0,0x15
    8000001c:   001ad080        sll     k0,k0,0x2
    80000020:   037ad821        addu    k1,k1,k0
    80000024:   401a2000        mfc0    k0,c0_context
    80000028:   8f7b0000        lw      k1,0(k1)
    8000002c:   335a0ff0        andi    k0,k0,0xff0
    80000030:   037ad821        addu    k1,k1,k0
    80000034:   df7a0000        ld      k0,0(k1)
    80000038:   df7b0008        ld      k1,8(k1)
    8000003c:   001ad1ba        dsrl    k0,k0,0x6
    80000040:   409a1000        mtc0    k0,c0_entrylo0
    80000044:   001bd9ba        dsrl    k1,k1,0x6
    80000048:   409b1800        mtc0    k1,c0_entrylo1
    8000004c:   00000000        nop
    80000050:   42000006        tlbwr
    80000054:   42000018        eret

Load:

    801fe000:   401b2000        mfc0    k1,c0_context
    801fe004:   3c1a80a5        lui     k0,0x80a5
    801fe008:   001bddc2        srl     k1,k1,0x17
    801fe00c:   035bd821        addu    k1,k0,k1
    801fe010:   401a4000        mfc0    k0,c0_badvaddr
    801fe014:   8f7b4000        lw      k1,16384(k1)
    801fe018:   001ad542        srl     k0,k0,0x15
    801fe01c:   001ad080        sll     k0,k0,0x2
    801fe020:   037ad821        addu    k1,k1,k0
    801fe024:   401a4000        mfc0    k0,c0_badvaddr
    801fe028:   8f7b0000        lw      k1,0(k1)
    801fe02c:   001ad242        srl     k0,k0,0x9
    801fe030:   335a0ff8        andi    k0,k0,0xff8
    801fe034:   037ad821        addu    k1,k1,k0
    801fe038:   d37a0000        lld     k0,0(k1)
    801fe03c:   42000008        tlbp
    801fe040:   335a0001        andi    k0,k0,0x1
    801fe044:   13400010        beqz    k0,0x801fe088
    801fe048:   d37a0000        lld     k0,0(k1)
    801fe04c:   375a0084        ori     k0,k0,0x84
    801fe050:   f37a0000        scd     k0,0(k1)
    801fe054:   1340fff8        beqz    k0,0x801fe038
    801fe058:   00000000        nop
    801fe05c:   377b0008        ori     k1,k1,0x8
    801fe060:   3b7b0008        xori    k1,k1,0x8
    801fe064:   df7a0000        ld      k0,0(k1)
    801fe068:   df7b0008        ld      k1,8(k1)
    801fe06c:   001ad1ba        dsrl    k0,k0,0x6
    801fe070:   409a1000        mtc0    k0,c0_entrylo0
    801fe074:   001bd9ba        dsrl    k1,k1,0x6
    801fe078:   409b1800        mtc0    k1,c0_entrylo1
    801fe07c:   00000000        nop
    801fe080:   42000002        tlbwi
    801fe084:   42000018        eret
    801fe088:   080036d8        j       0x8000db60
    801fe08c:   00000000        nop

Store:

    801fe200:   401b2000        mfc0    k1,c0_context
    801fe204:   3c1a80a5        lui     k0,0x80a5
    801fe208:   001bddc2        srl     k1,k1,0x17
    801fe20c:   035bd821        addu    k1,k0,k1
    801fe210:   401a4000        mfc0    k0,c0_badvaddr
    801fe214:   8f7b4000        lw      k1,16384(k1)
    801fe218:   001ad542        srl     k0,k0,0x15
    801fe21c:   001ad080        sll     k0,k0,0x2
    801fe220:   037ad821        addu    k1,k1,k0
    801fe224:   401a4000        mfc0    k0,c0_badvaddr
    801fe228:   8f7b0000        lw      k1,0(k1)
    801fe22c:   001ad242        srl     k0,k0,0x9
    801fe230:   335a0ff8        andi    k0,k0,0xff8
    801fe234:   037ad821        addu    k1,k1,k0
    801fe238:   d37a0000        lld     k0,0(k1)
    801fe23c:   42000008        tlbp
    801fe240:   335a0003        andi    k0,k0,0x3
    801fe244:   3b5a0003        xori    k0,k0,0x3
    801fe248:   17400010        bnez    k0,0x801fe28c
    801fe24c:   d37a0000        lld     k0,0(k1)
    801fe250:   375a018c        ori     k0,k0,0x18c
    801fe254:   f37a0000        scd     k0,0(k1)
    801fe258:   1340fff7        beqz    k0,0x801fe238
    801fe25c:   00000000        nop
    801fe260:   377b0008        ori     k1,k1,0x8
    801fe264:   3b7b0008        xori    k1,k1,0x8
    801fe268:   df7a0000        ld      k0,0(k1)
    801fe26c:   df7b0008        ld      k1,8(k1)
    801fe270:   001ad1ba        dsrl    k0,k0,0x6
    801fe274:   409a1000        mtc0    k0,c0_entrylo0
    801fe278:   001bd9ba        dsrl    k1,k1,0x6
    801fe27c:   409b1800        mtc0    k1,c0_entrylo1
    801fe280:   00000000        nop
    801fe284:   42000002        tlbwi
    801fe288:   42000018        eret
    801fe28c:   0800371d        j       0x8000dc74
    801fe290:   00000000        nop

Modify:

    801fe400:   401b2000        mfc0    k1,c0_context
    801fe404:   3c1a80a5        lui     k0,0x80a5
    801fe408:   001bddc2        srl     k1,k1,0x17
    801fe40c:   035bd821        addu    k1,k0,k1
    801fe410:   401a4000        mfc0    k0,c0_badvaddr
    801fe414:   8f7b4000        lw      k1,16384(k1)
    801fe418:   001ad542        srl     k0,k0,0x15
    801fe41c:   001ad080        sll     k0,k0,0x2
    801fe420:   037ad821        addu    k1,k1,k0
    801fe424:   401a4000        mfc0    k0,c0_badvaddr
    801fe428:   8f7b0000        lw      k1,0(k1)
    801fe42c:   001ad242        srl     k0,k0,0x9
    801fe430:   335a0ff8        andi    k0,k0,0xff8
    801fe434:   037ad821        addu    k1,k1,k0
    801fe438:   d37a0000        lld     k0,0(k1)
    801fe43c:   42000008        tlbp
    801fe440:   335a0002        andi    k0,k0,0x2
    801fe444:   13400010        beqz    k0,0x801fe488
    801fe448:   d37a0000        lld     k0,0(k1)
    801fe44c:   375a018c        ori     k0,k0,0x18c
    801fe450:   f37a0000        scd     k0,0(k1)
    801fe454:   1340fff8        beqz    k0,0x801fe438
    801fe458:   00000000        nop
    801fe45c:   377b0008        ori     k1,k1,0x8
    801fe460:   3b7b0008        xori    k1,k1,0x8
    801fe464:   df7a0000        ld      k0,0(k1)
    801fe468:   df7b0008        ld      k1,8(k1)
    801fe46c:   001ad1ba        dsrl    k0,k0,0x6
    801fe470:   409a1000        mtc0    k0,c0_entrylo0
    801fe474:   001bd9ba        dsrl    k1,k1,0x6
    801fe478:   409b1800        mtc0    k1,c0_entrylo1
    801fe47c:   00000000        nop
    801fe480:   42000002        tlbwi
    801fe484:   42000018        eret
    801fe488:   0800371d        j       0x8000dc74
    801fe48c:   00000000        nop



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

  Powered by Linux