Messages in this thread | | | Date | Wed, 22 May 2013 20:56:23 +0800 | Subject | Re: [PATCHv4 33/39] thp, mm: implement do_huge_linear_fault() | From | Hillf Danton <> |
| |
On Sun, May 12, 2013 at 9:23 AM, Kirill A. Shutemov <kirill.shutemov@linux.intel.com> wrote: > @@ -3316,17 +3361,25 @@ static int __do_fault(struct mm_struct *mm, struct vm_area_struct *vma, > if (unlikely(anon_vma_prepare(vma))) > return VM_FAULT_OOM; > > - cow_page = alloc_page_vma(GFP_HIGHUSER_MOVABLE, vma, address); > + cow_page = alloc_fault_page_vma(vma, address, flags); > if (!cow_page) > - return VM_FAULT_OOM; > + return VM_FAULT_OOM | VM_FAULT_FALLBACK; >
Fallback makes sense with !thp ?
> if (mem_cgroup_newpage_charge(cow_page, mm, GFP_KERNEL)) { > page_cache_release(cow_page); > - return VM_FAULT_OOM; > + return VM_FAULT_OOM | VM_FAULT_FALLBACK; > } > } else > cow_page = NULL;
| |