cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

hugetlb_vmemmap.h (1181B)


      1// SPDX-License-Identifier: GPL-2.0
      2/*
      3 * Optimize vmemmap pages associated with 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_OPTIMIZE_VMEMMAP
     14int hugetlb_vmemmap_alloc(struct hstate *h, struct page *head);
     15void hugetlb_vmemmap_free(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
     20 * optimized and freed to the buddy allocator.
     21 */
     22static inline unsigned int hugetlb_optimize_vmemmap_pages(struct hstate *h)
     23{
     24	return h->optimize_vmemmap_pages;
     25}
     26#else
     27static inline int hugetlb_vmemmap_alloc(struct hstate *h, struct page *head)
     28{
     29	return 0;
     30}
     31
     32static inline void hugetlb_vmemmap_free(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 hugetlb_optimize_vmemmap_pages(struct hstate *h)
     41{
     42	return 0;
     43}
     44#endif /* CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP */
     45#endif /* _LINUX_HUGETLB_VMEMMAP_H */