mirror of
https://github.com/torvalds/linux.git
synced 2025-11-01 00:58:39 +02:00
Use order instead of struct hstate to remove huge_page_order() call from all hugetlb folio allocation, also order_is_gigantic() is added to check whether it is a gigantic order. Link: https://lkml.kernel.org/r/20250910133958.301467-4-wangkefeng.wang@huawei.com Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com> Acked-by: Oscar Salvador <osalvador@suse.de> Reviewed-by: Sidhartha Kumar <sidhartha.kumar@oracle.com> Reviewed-by: Jane Chu <jane.chu@oracle.com> Reviewed-by: Zi Yan <ziy@nvidia.com> Cc: Brendan Jackman <jackmanb@google.com> Cc: David Hildenbrand <david@redhat.com> Cc: Johannes Weiner <hannes@cmpxchg.org> Cc: Muchun Song <muchun.song@linux.dev> Cc: Vlastimil Babka <vbabka@suse.cz> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
57 lines
1.2 KiB
C
57 lines
1.2 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#ifndef _LINUX_HUGETLB_CMA_H
|
|
#define _LINUX_HUGETLB_CMA_H
|
|
|
|
#ifdef CONFIG_CMA
|
|
void hugetlb_cma_free_folio(struct folio *folio);
|
|
struct folio *hugetlb_cma_alloc_folio(int order, gfp_t gfp_mask,
|
|
int nid, nodemask_t *nodemask);
|
|
struct huge_bootmem_page *hugetlb_cma_alloc_bootmem(struct hstate *h, int *nid,
|
|
bool node_exact);
|
|
void hugetlb_cma_check(void);
|
|
bool hugetlb_cma_exclusive_alloc(void);
|
|
unsigned long hugetlb_cma_total_size(void);
|
|
void hugetlb_cma_validate_params(void);
|
|
bool hugetlb_early_cma(struct hstate *h);
|
|
#else
|
|
static inline void hugetlb_cma_free_folio(struct folio *folio)
|
|
{
|
|
}
|
|
|
|
static inline struct folio *hugetlb_cma_alloc_folio(int order, gfp_t gfp_mask,
|
|
int nid, nodemask_t *nodemask)
|
|
{
|
|
return NULL;
|
|
}
|
|
|
|
static inline
|
|
struct huge_bootmem_page *hugetlb_cma_alloc_bootmem(struct hstate *h, int *nid,
|
|
bool node_exact)
|
|
{
|
|
return NULL;
|
|
}
|
|
|
|
static inline void hugetlb_cma_check(void)
|
|
{
|
|
}
|
|
|
|
static inline bool hugetlb_cma_exclusive_alloc(void)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
static inline unsigned long hugetlb_cma_total_size(void)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
static inline void hugetlb_cma_validate_params(void)
|
|
{
|
|
}
|
|
|
|
static inline bool hugetlb_early_cma(struct hstate *h)
|
|
{
|
|
return false;
|
|
}
|
|
#endif
|
|
#endif
|