linux/mm/hugetlb_vmemmap.h
<<
>>
Prefs
   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 */
  46
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.