lkml.org 
[lkml]   [2009]   [Nov]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: OOM killer, page fault
    On Mon, 2 Nov 2009 14:02:16 +0900
    KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> wrote:

    > On Mon, 2 Nov 2009 13:56:40 +0900
    > Minchan Kim <minchan.kim@gmail.com> wrote:
    >
    > > On Mon, 2 Nov 2009 13:24:06 +0900 (JST)
    > > KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> wrote:
    > >
    > > > Hi,
    > > >
    > > > (Cc to linux-mm)
    > > >
    > > > Wow, this is very strange log.
    > > >
    > > > > Dear all,
    > > > >
    > > > > (please Cc)
    > > > >
    > > > > With 2.6.32-rc5 I got that one:
    > > > > [13832.210068] Xorg invoked oom-killer: gfp_mask=0x0, order=0, oom_adj=0
    > > >
    > > > order = 0
    > >
    > > I think this problem results from 'gfp_mask = 0x0'.
    > > Is it possible?
    > >
    > > If it isn't H/W problem, Who passes gfp_mask with 0x0?
    > > It's culpit.
    > >
    > > Could you add BUG_ON(gfp_mask == 0x0) in __alloc_pages_nodemask's head?
    > >
    >
    > Maybe some code returns VM_FAULT_OOM by mistake and pagefault_oom_killer()
    > is called. digging mm/memory.c is necessary...
    >
    > I wonder why...now is this code
    > ===
    > static int do_nonlinear_fault(struct mm_struct *mm, struct vm_area_struct *vma,
    > unsigned long address, pte_t *page_table, pmd_t *pmd,
    > unsigned int flags, pte_t orig_pte)
    > {
    > pgoff_t pgoff;
    >
    > flags |= FAULT_FLAG_NONLINEAR;
    >
    > if (!pte_unmap_same(mm, pmd, page_table, orig_pte))
    > return 0;
    >
    > if (unlikely(!(vma->vm_flags & VM_NONLINEAR))) {
    > /*
    > * Page table corrupted: show pte and kill process.
    > */
    > print_bad_pte(vma, address, orig_pte, NULL);
    > return VM_FAULT_OOM;
    > }
    >
    > pgoff = pte_to_pgoff(orig_pte);
    > return __do_fault(mm, vma, address, pmd, pgoff, flags, orig_pte);
    > }
    > ==
    > Then, OOM...is this really OOM ?

    It seems that the goal is to kill process by OOM trick as comment said.

    I found It results from Hugh's commit 65500d234e74fc4e8f18e1a429bc24e51e75de4a.
    I think it's not a real OOM.

    BTW, If it is culpit in this case, print_bad_pte should have remained any log. :)

    >
    > Thanks,
    > -Kame
    >


    --
    Kind regards,
    Minchan Kim


    \
     
     \ /
      Last update: 2009-11-02 07:07    [W:0.028 / U:29.648 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site