| From | Muchun Song <> | Subject | [PATCH v4 21/21] mm/hugetlb: Disable freeing vmemmap if struct page size is not power of two | Date | Fri, 13 Nov 2020 18:59:52 +0800 |
| |
We only can free the unused vmemmap to the buddy system when the size of struct page is a power of two.
Signed-off-by: Muchun Song <songmuchun@bytedance.com> --- mm/hugetlb_vmemmap.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/mm/hugetlb_vmemmap.c b/mm/hugetlb_vmemmap.c index f67aec6e3bb1..a0a5df9dba6b 100644 --- a/mm/hugetlb_vmemmap.c +++ b/mm/hugetlb_vmemmap.c @@ -635,7 +635,8 @@ void __init hugetlb_vmemmap_init(struct hstate *h) unsigned int order = huge_page_order(h); unsigned int vmemmap_pages; - if (hugetlb_free_vmemmap_disabled) { + if (hugetlb_free_vmemmap_disabled || + !is_power_of_2(sizeof(struct page))) { h->nr_free_vmemmap_pages = 0; pr_info("disable free vmemmap pages for %s\n", h->name); return; -- 2.11.0
|