Lines Matching refs:head

27  * @vmemmap_pages:	the list head of the vmemmap pages that can be freed
44 struct page *head;
48 head = pmd_leaf(*pmd) ? pmd_page(*pmd) : NULL;
51 if (!head)
64 entry = mk_pte(head + i, pgprot);
76 if (!PageReserved(head))
77 split_page(head, get_order(PMD_SIZE));
239 /* Remapping the head page requires r/w */
258 * How many struct page structs need to be reset. When we reuse the head
263 * head struct page struct and two tail struct page structs) struct page
326 * Allocate a new head vmemmap page to avoid breaking a contiguous
331 * mapped head page in case should it fail to allocate.
448 * @head: the head page whose vmemmap pages will be restored.
450 * Return: %0 if @head's vmemmap pages have been reallocated and remapped,
453 int hugetlb_vmemmap_restore(const struct hstate *h, struct page *head)
456 unsigned long vmemmap_start = (unsigned long)head, vmemmap_end;
459 if (!HPageVmemmapOptimized(head))
475 ClearHPageVmemmapOptimized(head);
483 static bool vmemmap_should_optimize(const struct hstate *h, const struct page *head)
494 unsigned long vaddr = (unsigned long)head;
539 * hugetlb_vmemmap_optimize - optimize @head page's vmemmap pages.
541 * @head: the head page whose vmemmap pages will be optimized.
543 * This function only tries to optimize @head's vmemmap pages and does not
545 * can use HPageVmemmapOptimized(@head) to detect if @head's vmemmap pages
548 void hugetlb_vmemmap_optimize(const struct hstate *h, struct page *head)
550 unsigned long vmemmap_start = (unsigned long)head, vmemmap_end;
553 if (!vmemmap_should_optimize(h, head))
570 SetHPageVmemmapOptimized(head);