Re: OpenSSI preview on Debian Lenny (on x86_64)

John Hughes <[email protected]> Sat, 17 Apr 2010 10:26:32 +0200
Newsgroups gmane.linux.cluster.ssic.devel
Message-ID <[email protected]>
John Hughes wrote:
> With the current x86_64 kernel [migration] no longer crashes. :-)
>
Nope, migration using /proc/xxx/goto doesn't crash

but migration with sys_migrate crashes.

Entering kdb (current=0xffff81001f1d4720, pid 69223) on processor 0 Oops: <NULL>
due to oops @ 0xffffffff801794a2
     r15 = 0x0000000000000000      r14 = 0xffff81001d0f6128 
     r13 = 0xffff81001d20e098      r12 = 0xffff81001d0f60c0 
     rbp = 0xffff81001d842800      rbx = 0x0000000000600000 
     r11 = 0xffff81001d45c440      r10 = 0xffff81001fb6c440 
      r9 = 0xffff81001fff5f68       r8 = 0xffff81001fff5f58 
     rax = 0x0000ff5300000018      rcx = 0x03fffffffffff000 
     rdx = 0x0000000000600000      rsi = 0x0000805300000018 
     rdi = 0xffff81001d0f60c0 orig_rax = 0xffffffffffffffff 
     rip = 0xffffffff801794a2       cs = 0x0000000000000010 
  eflags = 0x0000000000010296      rsp = 0xffff81001f79bc10 
      ss = 0xffff81001f79a000 &regs = 0xffff81001f79bb78
[0]kdb> bt
Stack traceback for pid 69223
0xffff81001f1d4720    69223        2  1    0   R  0xffff81001f1d49e0 *a.out
RSP           RIP                Function (args)
0xffff81001f79bc10 0xffffffff801794a2 pte_alloc_map+0x22 (0x0, 0x0, 0xffff81001d0f6110, 0x0, 0x1)
0xffff81001f79bc58 0xffffffff8026fc89 as_untranscribe+0x5e9 (0x0, 0xffff81001d0f60c0, 0x0, 0xffff81001f9f3a00, 0x4)
0xffff81001f79bd08 0xffffffff8026b917 full_data_unload_msg+0x57 (0xffff810000000001, 0xffffffff803c0e58, 0xffff81001f9a6640, 0x10e64, 0x0)
0xffff81001f79bd38 0xffffffff8026c21d migrate_pproc_unload_msg+0xfd (0x20, 0x1, 0xffff81001df561f0, 0x0, 0x300000000)
0xffff81001f79bd98 0xffffffff8026a1a3 migrate_server+0xf3 (0x73, 0xffff8100019097c0, 0x1f79be88, 0x386, 0xffff81001df561f0)
0xffff81001f79be68 0xffffffff80269163 migrate_server_setup+0x73
0xffff81001f79bf58 0xffffffff80110a38 child_rip+0x8
[0]kdb> 


We appear to be here:

static int
as_do_pg(as_pg_info *apip, as_info *asip)
{
        int error = 0;
        struct mm_struct *mm = current->mm;
        struct vm_area_struct *vma;
        pgd_t * pgd;
        pud_t * pud;
        pmd_t * pmd;
        pte_t * pte;

        down_write(&mm->mmap_sem);
        if (!(vma = find_vma(mm, apip->api_addr))) {
                error = -EINVAL;
                goto out_unlock_sem;
        }
        if (unlikely(anon_vma_prepare(vma))) {
                error = -EAGAIN;
                goto out_unlock_sem;
        }
        flush_dcache_page(apip->api_page);
        pgd = pgd_offset(mm, apip->api_addr);
        pud = pud_offset(pgd, apip->api_addr);
        spin_lock(&mm->page_table_lock);
        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))) {
		^^^ BANG!
                error = -EAGAIN;
                goto out_unlock_spin;
        }





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