mirror of
https://github.com/torvalds/linux.git
synced 2024-11-22 12:11:40 +00:00
mm: add folio_alloc_mpol()
Patch series "mm: convert to folio_alloc_mpol()". This patch (of 4): This adds a new folio_alloc_mpol() like folio_alloc() but allocate folio according to NUMA mempolicy. Link: https://lkml.kernel.org/r/20240515070709.78529-1-wangkefeng.wang@huawei.com Link: https://lkml.kernel.org/r/20240515070709.78529-2-wangkefeng.wang@huawei.com Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com> Cc: Hugh Dickins <hughd@google.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
6584a14a37
commit
a19621ed4e
@ -303,6 +303,8 @@ struct page *alloc_pages_noprof(gfp_t gfp, unsigned int order);
|
||||
struct page *alloc_pages_mpol_noprof(gfp_t gfp, unsigned int order,
|
||||
struct mempolicy *mpol, pgoff_t ilx, int nid);
|
||||
struct folio *folio_alloc_noprof(gfp_t gfp, unsigned int order);
|
||||
struct folio *folio_alloc_mpol_noprof(gfp_t gfp, unsigned int order,
|
||||
struct mempolicy *mpol, pgoff_t ilx, int nid);
|
||||
struct folio *vma_alloc_folio_noprof(gfp_t gfp, int order, struct vm_area_struct *vma,
|
||||
unsigned long addr, bool hugepage);
|
||||
#else
|
||||
@ -319,6 +321,11 @@ static inline struct folio *folio_alloc_noprof(gfp_t gfp, unsigned int order)
|
||||
{
|
||||
return __folio_alloc_node(gfp, order, numa_node_id());
|
||||
}
|
||||
static inline struct folio *folio_alloc_mpol_noprof(gfp_t gfp, unsigned int order,
|
||||
struct mempolicy *mpol, pgoff_t ilx, int nid)
|
||||
{
|
||||
return folio_alloc_noprof(gfp, order);
|
||||
}
|
||||
#define vma_alloc_folio_noprof(gfp, order, vma, addr, hugepage) \
|
||||
folio_alloc_noprof(gfp, order)
|
||||
#endif
|
||||
@ -326,6 +333,7 @@ static inline struct folio *folio_alloc_noprof(gfp_t gfp, unsigned int order)
|
||||
#define alloc_pages(...) alloc_hooks(alloc_pages_noprof(__VA_ARGS__))
|
||||
#define alloc_pages_mpol(...) alloc_hooks(alloc_pages_mpol_noprof(__VA_ARGS__))
|
||||
#define folio_alloc(...) alloc_hooks(folio_alloc_noprof(__VA_ARGS__))
|
||||
#define folio_alloc_mpol(...) alloc_hooks(folio_alloc_mpol_noprof(__VA_ARGS__))
|
||||
#define vma_alloc_folio(...) alloc_hooks(vma_alloc_folio_noprof(__VA_ARGS__))
|
||||
|
||||
#define alloc_page(gfp_mask) alloc_pages(gfp_mask, 0)
|
||||
|
@ -2277,6 +2277,13 @@ struct page *alloc_pages_mpol_noprof(gfp_t gfp, unsigned int order,
|
||||
return page;
|
||||
}
|
||||
|
||||
struct folio *folio_alloc_mpol_noprof(gfp_t gfp, unsigned int order,
|
||||
struct mempolicy *pol, pgoff_t ilx, int nid)
|
||||
{
|
||||
return page_rmappable_folio(alloc_pages_mpol_noprof(gfp | __GFP_COMP,
|
||||
order, pol, ilx, nid));
|
||||
}
|
||||
|
||||
/**
|
||||
* vma_alloc_folio - Allocate a folio for a VMA.
|
||||
* @gfp: GFP flags.
|
||||
|
Loading…
Reference in New Issue
Block a user