Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v5.14-rc3 45 lines 1.2 kB view raw
1// SPDX-License-Identifier: GPL-2.0 2/* 3 * Free some vmemmap pages of HugeTLB 4 * 5 * Copyright (c) 2020, Bytedance. All rights reserved. 6 * 7 * Author: Muchun Song <songmuchun@bytedance.com> 8 */ 9#ifndef _LINUX_HUGETLB_VMEMMAP_H 10#define _LINUX_HUGETLB_VMEMMAP_H 11#include <linux/hugetlb.h> 12 13#ifdef CONFIG_HUGETLB_PAGE_FREE_VMEMMAP 14int alloc_huge_page_vmemmap(struct hstate *h, struct page *head); 15void free_huge_page_vmemmap(struct hstate *h, struct page *head); 16void hugetlb_vmemmap_init(struct hstate *h); 17 18/* 19 * How many vmemmap pages associated with a HugeTLB page that can be freed 20 * to the buddy allocator. 21 */ 22static inline unsigned int free_vmemmap_pages_per_hpage(struct hstate *h) 23{ 24 return h->nr_free_vmemmap_pages; 25} 26#else 27static inline int alloc_huge_page_vmemmap(struct hstate *h, struct page *head) 28{ 29 return 0; 30} 31 32static inline void free_huge_page_vmemmap(struct hstate *h, struct page *head) 33{ 34} 35 36static inline void hugetlb_vmemmap_init(struct hstate *h) 37{ 38} 39 40static inline unsigned int free_vmemmap_pages_per_hpage(struct hstate *h) 41{ 42 return 0; 43} 44#endif /* CONFIG_HUGETLB_PAGE_FREE_VMEMMAP */ 45#endif /* _LINUX_HUGETLB_VMEMMAP_H */