[OOPS] hugetlbfs tests with 2.6.30-rc8-git1

Sachin Sant sachinp at in.ibm.com
Sun Jun 7 05:51:27 EST 2009


Benjamin Herrenschmidt wrote:
> No, Mel's patch is for a different problem and has been fixed upstream
> already. This is more concerning... I'm not sure what's up but would
> you be able to send a disassembly of the hpte_need_flush() function in
> your kernel binary for me to see what access precisely caused the
> fault ?
>   
Was able to recreate this with git3 kernel. Here is the disassembly

shm-fork 10 10 (64):    PASS
shm-fork 10 20 (32):    cpu 0x1: Vector: 300 (Data Access) at [c0000000faa13490]
    pc: c000000000038240: .hpte_need_flush+0x1bc/0x2d8
    lr: c0000000000380f0: .hpte_need_flush+0x6c/0x2d8
    sp: c0000000faa13710
   msr: 8000000000009032
   dar: c00000005e5e0480
 dsisr: 40000000
  current = 0xc0000000f9bde3e0
  paca    = 0xc000000000b72600
    pid   = 12152, comm = shm-fork
enter ? for help
[c0000000faa13710] c000000000038264 .hpte_need_flush+0x1e0/0x2d8 (unreliable)
[c0000000faa137d0] c000000000039fa4 .huge_ptep_get_and_clear+0x40/0x5c
[c0000000faa13850] c00000000012d044 .__unmap_hugepage_range+0x178/0x2b8
[c0000000faa13940] c00000000012d1d8 .unmap_hugepage_range+0x54/0x88
[c0000000faa139e0] c000000000116f78 .unmap_vmas+0x178/0x8f4
[c0000000faa13b30] c00000000011c690 .unmap_region+0xfc/0x1e4
[c0000000faa13c00] c00000000011de20 .do_munmap+0x2f4/0x38c
[c0000000faa13cc0] c0000000002f6a08 .SyS_shmdt+0xc0/0x188
[c0000000faa13d70] c00000000000c430 .sys_ipc+0x274/0x2fc
[c0000000faa13e30] c000000000008534 syscall_exit+0x0/0x40
--- Exception: c01 (System Call) at 000004000021d2dc
SP (fffee026010) is in userspace
1:mon> di $.hpte_need_flush
c000000000038084  fac1ffb0      std     r22,-80(r1)
c000000000038088  7c0802a6      mflr    r0
c00000000003808c  f8010010      std     r0,16(r1)
c000000000038090  2fa70000      cmpdi   cr7,r7,0
c000000000038094  fb21ffc8      std     r25,-56(r1)
c000000000038098  6cc01000      xoris   r0,r6,4096
c00000000003809c  fb41ffd0      std     r26,-48(r1)
c0000000000380a0  7cd93378      mr      r25,r6
c0000000000380a4  fb61ffd8      std     r27,-40(r1)
c0000000000380a8  7cb62b78      mr      r22,r5
c0000000000380ac  fb81ffe0      std     r28,-32(r1)
......... <SNIP> .........
1:mon>
c000000000038204  38090001      addi    r0,r9,1
c000000000038208  78004602      rldicl  r0,r0,40,24
c00000000003820c  7c004a14      add     r0,r0,r9
c000000000038210  78090220      clrldi  r9,r0,40
c000000000038214  2fbd0000      cmpdi   cr7,r29,0
c000000000038218  409e0010      bne     cr7,c000000000038228    # .hpte_need_flush+0x1a4/0x2d8
c00000000003821c  7929e0e4      rldicr  r9,r9,28,35
c000000000038220  7be00120      clrldi  r0,r31,36
c000000000038224  4800000c      b       c000000000038230        # .hpte_need_flush+0x1ac/0x2d8
c000000000038228  792945c6      rldicr  r9,r9,40,23
c00000000003822c  7be00600      clrldi  r0,r31,24
c000000000038230  7d3f0378      or      r31,r9,r0
c000000000038234  7c1cb82e      lwzx    r0,r28,r23
c000000000038238  3d360001      addis   r9,r22,1
c00000000003823c  2f800000      cmpwi   cr7,r0,0
c000000000038240  eb898000      ld      r28,-32768(r9)  <<== +0x1bc should be this
1:mon>  r
R00 = 0000000000000000   R16 = 0000000023aa4db0
R01 = c0000000faa13710   R17 = 0000000000000000
R02 = c000000000a9d788   R18 = ffffffffffff9010
R03 = 0000000000000004   R19 = 0000000000000000
R04 = 000003fff0000000   R20 = 0000000000000000
R05 = c00000005e5d8480   R21 = 0000040000000000
R06 = 0000364008000393   R22 = c00000005e5d8480
R07 = 0000000000000001   R23 = 0000000000750000
R08 = 0000000000000004   R24 = 0000000000000000
R09 = c00000005e5e8480   R25 = 0000364008000393
R10 = 000000000003fff0   R26 = c0000000673f0680
R11 = 0000000000000280   R27 = 0000000000000004
R12 = 0000000044022422   R28 = c000000000890430
R13 = c000000000b72600   R29 = 0000000000000001
R14 = 00000000ffffffff   R30 = c000000000fe0430
R15 = ffffffffffffffff   R31 = 8812ebfff0000000
pc  = c000000000038240 .hpte_need_flush+0x1bc/0x2d8
lr  = c0000000000380f0 .hpte_need_flush+0x6c/0x2d8
msr = 8000000000009032   cr  = 44022422
ctr = c00000000025cc28   xer = 0000000000000001   trap =  300
dar = c00000005e5e0480   dsisr = 40000000
1:mon>

Have attached the complete disassembly. 

Thanks
-Sachin


-- 

---------------------------------
Sachin Sant
IBM Linux Technology Center
India Systems and Technology Labs
Bangalore, India
---------------------------------

-------------- next part --------------
A non-text attachment was scrubbed...
Name: disassembly.log
Type: text/x-log
Size: 8364 bytes
Desc: not available
URL: <http://lists.ozlabs.org/pipermail/linuxppc-dev/attachments/20090607/b50987af/attachment.bin>


More information about the Linuxppc-dev mailing list