Re: [PATCHv4 33/39] thp, mm: implement do_huge_linear_fault()

From: Hillf Danton
Date: Wed May 22 2013 - 08:56:29 EST


On Sun, May 12, 2013 at 9:23 AM, Kirill A. Shutemov
<kirill.shutemov@xxxxxxxxxxxxxxx> 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;
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/