• Home
  • Raw
  • Download

Lines Matching refs:hpage

864 static bool khugepaged_prealloc_page(struct page **hpage, bool *wait)  in khugepaged_prealloc_page()  argument
866 if (IS_ERR(*hpage)) { in khugepaged_prealloc_page()
871 *hpage = NULL; in khugepaged_prealloc_page()
873 } else if (*hpage) { in khugepaged_prealloc_page()
874 put_page(*hpage); in khugepaged_prealloc_page()
875 *hpage = NULL; in khugepaged_prealloc_page()
882 khugepaged_alloc_page(struct page **hpage, gfp_t gfp, int node) in khugepaged_alloc_page() argument
884 VM_BUG_ON_PAGE(*hpage, *hpage); in khugepaged_alloc_page()
886 *hpage = __alloc_pages_node(node, gfp, HPAGE_PMD_ORDER); in khugepaged_alloc_page()
887 if (unlikely(!*hpage)) { in khugepaged_alloc_page()
889 *hpage = ERR_PTR(-ENOMEM); in khugepaged_alloc_page()
893 prep_transhuge_page(*hpage); in khugepaged_alloc_page()
895 return *hpage; in khugepaged_alloc_page()
916 struct page *hpage; in khugepaged_alloc_hugepage() local
919 hpage = alloc_khugepaged_hugepage(); in khugepaged_alloc_hugepage()
920 if (!hpage) { in khugepaged_alloc_hugepage()
929 } while (unlikely(!hpage) && likely(khugepaged_enabled())); in khugepaged_alloc_hugepage()
931 return hpage; in khugepaged_alloc_hugepage()
934 static bool khugepaged_prealloc_page(struct page **hpage, bool *wait) in khugepaged_prealloc_page() argument
943 if (*hpage && page_count(*hpage) > 1) { in khugepaged_prealloc_page()
944 put_page(*hpage); in khugepaged_prealloc_page()
945 *hpage = NULL; in khugepaged_prealloc_page()
948 if (!*hpage) in khugepaged_prealloc_page()
949 *hpage = khugepaged_alloc_hugepage(wait); in khugepaged_prealloc_page()
951 if (unlikely(!*hpage)) in khugepaged_prealloc_page()
958 khugepaged_alloc_page(struct page **hpage, gfp_t gfp, int node) in khugepaged_alloc_page() argument
960 VM_BUG_ON(!*hpage); in khugepaged_alloc_page()
962 return *hpage; in khugepaged_alloc_page()
1065 struct page **hpage, in collapse_huge_page() argument
1091 new_page = khugepaged_alloc_page(hpage, gfp, node); in collapse_huge_page()
1220 *hpage = NULL; in collapse_huge_page()
1227 if (!IS_ERR_OR_NULL(*hpage)) in collapse_huge_page()
1228 mem_cgroup_uncharge(*hpage); in collapse_huge_page()
1238 struct page **hpage) in khugepaged_scan_pmd() argument
1387 collapse_huge_page(mm, address, hpage, node, in khugepaged_scan_pmd()
1450 struct page *hpage; in collapse_pte_mapped_thp() local
1471 hpage = find_lock_page(vma->vm_file->f_mapping, in collapse_pte_mapped_thp()
1473 if (!hpage) in collapse_pte_mapped_thp()
1476 if (!PageHead(hpage)) in collapse_pte_mapped_thp()
1519 if (hpage + i != page) in collapse_pte_mapped_thp()
1539 page_ref_sub(hpage, count); in collapse_pte_mapped_thp()
1540 add_mm_counter(vma->vm_mm, mm_counter_file(hpage), -count); in collapse_pte_mapped_thp()
1563 unlock_page(hpage); in collapse_pte_mapped_thp()
1564 put_page(hpage); in collapse_pte_mapped_thp()
1688 struct page **hpage, int node) in collapse_file() argument
1705 new_page = khugepaged_alloc_page(hpage, gfp, node); in collapse_file()
1984 *hpage = NULL; in collapse_file()
2031 if (!IS_ERR_OR_NULL(*hpage)) in collapse_file()
2032 mem_cgroup_uncharge(*hpage); in collapse_file()
2037 struct file *file, pgoff_t start, struct page **hpage) in khugepaged_scan_file() argument
2105 collapse_file(mm, file, start, hpage, node); in khugepaged_scan_file()
2113 struct file *file, pgoff_t start, struct page **hpage) in khugepaged_scan_file() argument
2125 struct page **hpage) in khugepaged_scan_mm_slot() argument
2201 khugepaged_scan_file(mm, file, pgoff, hpage); in khugepaged_scan_mm_slot()
2206 hpage); in khugepaged_scan_mm_slot()
2264 struct page *hpage = NULL; in khugepaged_do_scan() local
2274 if (!khugepaged_prealloc_page(&hpage, &wait)) in khugepaged_do_scan()
2288 &hpage); in khugepaged_do_scan()
2294 if (!IS_ERR_OR_NULL(hpage)) in khugepaged_do_scan()
2295 put_page(hpage); in khugepaged_do_scan()