Messages in this thread | | | Date | Tue, 16 Feb 2010 18:58:17 -0800 (PST) | From | David Rientjes <> | Subject | Re: [patch -mm 4/9 v2] oom: remove compulsory panic_on_oom mode |
| |
On Wed, 17 Feb 2010, KAMEZAWA Hiroyuki wrote:
> > We want to lock all populated zones with ZONE_OOM_LOCKED to avoid > > needlessly killing more than one task regardless of how many memcgs are > > oom. > > > Current implentation archive what memcg want. Why remove and destroy memcg ? >
I've updated my patch to not take ZONE_OOM_LOCKED for any zones on memcg oom. I'm hoping that you will add sysctl_panic_on_oom == 2 for this case later, however.
> What I mean is > - What VM_FAULT_OOM means is not "memory is exhausted" but "something is exhausted". > > For example, when hugepages are all used, it may return VM_FAULT_OOM. > Especially when nr_overcommit_hugepage == usage_of_hugepage, it returns VM_FAULT_OOM. >
The hugetlb case seems to be the only misuse of VM_FAULT_OOM where it doesn't mean we simply don't have the memory to handle the page fault, i.e. your earlier "memory is exhausted" definition. That was handled well before calling out_of_memory() by simply killing current since we know it is faulting hugetlb pages and its resource is limited.
We could pass the vma to pagefault_out_of_memory() and simply kill current if its killable and is_vm_hugetlb_page(vma).
| |