Re: OpenSSI preview on Debian Lenny (on x86_64)

John Hughes <[email protected]> Mon, 22 Feb 2010 16:39:36 +0100
Newsgroups gmane.linux.cluster.ssic.devel
Message-ID <[email protected]>
adp: mm = ffff81001d3e6a40
adp: pmd = 0000805300000018
adp: apid = ffff81001f69d000
adp: api_addr = 0000000000600000
general protection fault: 0000 [1] SMP 

Entering kdb (current=0xffff81001d5e7800, pid 132740) on processor 0 Oops: <NULL>
due to oops @ 0xffffffff80179522
     r15 = 0x0000000000000000      r14 = 0xffff810000000000 
     r13 = 0xffff81001d2b5108      r12 = 0xffff81001d3e6a40 
     rbp = 0xffff81001f69d000      rbx = 0x0000000000600000 
     r11 = 0x0000000000000000      r10 = 0x0000000000000000 
      r9 = 0x0000000000000000       r8 = 0x0000000000000720 
     rax = 0x0000000000000027      rcx = 0x0000000000000010 
     rdx = 0x0000000000600000      rsi = 0x0000805300000018 
     rdi = 0xffff81001d3e6a40 orig_rax = 0xffffffffffffffff 
     rip = 0xffffffff80179522       cs = 0x0000000000000010 
  eflags = 0x0000000000010296      rsp = 0xffff81001dd1dc00 
      ss = 0xffff81001dd1c000 &regs = 0xffff81001dd1db68
[0]kdb> 
[0]kdb> id pte_alloc_map
0xffffffff80179500 pte_alloc_map:         sub    $0x28,%rsp
0xffffffff80179504 pte_alloc_map+0x4:     mov    %rbx,(%rsp)
0xffffffff80179508 pte_alloc_map+0x8:     mov    %rbp,0x8(%rsp)
0xffffffff8017950d pte_alloc_map+0xd:     mov    %rdx,%rbx
0xffffffff80179510 pte_alloc_map+0x10:    mov    %r12,0x10(%rsp)
0xffffffff80179515 pte_alloc_map+0x15:    mov    %r13,0x18(%rsp)
0xffffffff8017951a pte_alloc_map+0x1a:    mov    %rdi,%r12
0xffffffff8017951d pte_alloc_map+0x1d:    mov    %r14,0x20(%rsp)
0xffffffff80179522 pte_alloc_map+0x22:    mov    (%rsi),%rdx


Or, to put it another way:

0000000000000850 <pte_alloc_map>:

pte_t fastcall *pte_alloc_map(struct mm_struct *mm, pmd_t *pmd,
                                unsigned long address)
{
     850:       48 83 ec 28             sub    $0x28,%rsp
     854:       48 89 1c 24             mov    %rbx,(%rsp)
     858:       48 89 6c 24 08          mov    %rbp,0x8(%rsp)
     85d:       48 89 d3                mov    %rdx,%rbx
     860:       4c 89 64 24 10          mov    %r12,0x10(%rsp)
     865:       4c 89 6c 24 18          mov    %r13,0x18(%rsp)
     86a:       49 89 fc                mov    %rdi,%r12
     86d:       4c 89 74 24 20          mov    %r14,0x20(%rsp)
        if (!pmd_present(*pmd)) {
     872:       48 8b 16                mov    (%rsi),%rdx
        }
     875:       48 89 f5                mov    %rsi,%rbp
        if (!pmd_present(*pmd)) {
     878:       f6 c2 01                test   $0x1,%dl
     87b:       0f 85 c0 00 00 00       jne    941 <pte_alloc_map+0xf1>


Going "BANG" on the pmd_present(*pmd)

What's at (%rsi) (aka *pmd)?

md 0x0000805300000018
kdb_getarea: Bad address 0x805300000018

Sad, that seems not to be a good address.

Wild, it looks like pmd_alloc has given us a bad address?!!@#

        if (!(pmd = pmd_alloc(mm, pud, apip->api_addr))) {
                error = -EAGAIN;
                goto out_unlock_spin;
        }
        if (!(pte = pte_alloc_map(mm, pmd, apip->api_addr))) {
                error = -EAGAIN;
                goto out_unlock_spin;
        }


Is it normal that api_addr is zero? Does address zero exist?


------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev