Messages in this thread | | | Date | Mon, 11 May 2009 20:21:21 +0900 | Subject | Re: [patch -mmotm] mm: invoke oom killer for __GFP_NOFAIL | From | Minchan Kim <> |
| |
On Mon, May 11, 2009 at 6:12 PM, Minchan Kim <minchan.kim@gmail.com> wrote: > On Mon, May 11, 2009 at 5:40 PM, David Rientjes <rientjes@google.com> wrote: >> On Mon, 11 May 2009, Minchan Kim wrote: >> >>> Hmm.. if __alloc_pages_may_oom fail to allocate free page due to order > PAGE_ALLOC_COSTRY_ORDER, >>> >>> It will go to nopage label in __alloc_pages_slowpath. >>> Then it will show the page allocation failure warning and will return. >>> Retrying depends on caller. >>> >> >> Correct. >> >>> So, I think it won't loop forever. >>> Do I miss something ? >>> >> >> __GFP_NOFAIL allocations shouldn't fail, that's the point of the gfp flag. >> So failing without attempting to free some memory is the wrong thing to >> do. > > Thanks for quick reply. > I was confused by your description. > I thought you suggested we have to prevent loop forever. > >> >>> In addition, the OOM killer can help for getting the high order pages ? >>> >> >> Sure, if it selects a task that will free a lot of memory, which is it's >> goal. >> > > How do we know any task have a lot of memory ? > If we select wrong task and kill one ? > > I have a concern about innocent task.
Now, I look over __out_of_memory. For selecting better tasks in case of PAGE_ALLOC_COSTRY_ORDER, How about increasing score of task which have VM_HUGETLB vma in badness ?
> -- > Kinds regards, > Minchan Kim >
-- Kinds regards, Minchan Kim
| |