|
@@ -552,7 +552,7 @@ static int __do_huge_pmd_anonymous_page(struct vm_fault *vmf, struct page *page,
|
|
|
|
|
|
VM_BUG_ON_PAGE(!PageCompound(page), page);
|
|
VM_BUG_ON_PAGE(!PageCompound(page), page);
|
|
|
|
|
|
- if (mem_cgroup_try_charge(page, vma->vm_mm, gfp, &memcg, true)) {
|
|
|
|
|
|
+ if (mem_cgroup_try_charge_delay(page, vma->vm_mm, gfp, &memcg, true)) {
|
|
put_page(page);
|
|
put_page(page);
|
|
count_vm_event(THP_FAULT_FALLBACK);
|
|
count_vm_event(THP_FAULT_FALLBACK);
|
|
return VM_FAULT_FALLBACK;
|
|
return VM_FAULT_FALLBACK;
|
|
@@ -1142,7 +1142,7 @@ static int do_huge_pmd_wp_page_fallback(struct vm_fault *vmf, pmd_t orig_pmd,
|
|
pages[i] = alloc_page_vma_node(GFP_HIGHUSER_MOVABLE, vma,
|
|
pages[i] = alloc_page_vma_node(GFP_HIGHUSER_MOVABLE, vma,
|
|
vmf->address, page_to_nid(page));
|
|
vmf->address, page_to_nid(page));
|
|
if (unlikely(!pages[i] ||
|
|
if (unlikely(!pages[i] ||
|
|
- mem_cgroup_try_charge(pages[i], vma->vm_mm,
|
|
|
|
|
|
+ mem_cgroup_try_charge_delay(pages[i], vma->vm_mm,
|
|
GFP_KERNEL, &memcg, false))) {
|
|
GFP_KERNEL, &memcg, false))) {
|
|
if (pages[i])
|
|
if (pages[i])
|
|
put_page(pages[i]);
|
|
put_page(pages[i]);
|
|
@@ -1312,7 +1312,7 @@ alloc:
|
|
goto out;
|
|
goto out;
|
|
}
|
|
}
|
|
|
|
|
|
- if (unlikely(mem_cgroup_try_charge(new_page, vma->vm_mm,
|
|
|
|
|
|
+ if (unlikely(mem_cgroup_try_charge_delay(new_page, vma->vm_mm,
|
|
huge_gfp, &memcg, true))) {
|
|
huge_gfp, &memcg, true))) {
|
|
put_page(new_page);
|
|
put_page(new_page);
|
|
split_huge_pmd(vma, vmf->pmd, vmf->address);
|
|
split_huge_pmd(vma, vmf->pmd, vmf->address);
|