lkml.org 
[lkml]   [2018]   [Apr]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Subject[PATCH 0/3] Interface for higher order contiguous allocations
Date
These patches came out of the "[RFC] mmap(MAP_CONTIG)" discussions at:
http://lkml.kernel.org/r/21f1ec96-2822-1189-1c95-79a2bb491571@oracle.com

One suggestion in that thread was to create a friendlier interface that
could be used by drivers and others outside core mm code to allocate a
contiguous set of pages. The alloc_contig_range() interface is used for
this purpose today by CMA and gigantic page allocation. However, this is
not a general purpose interface. So, wrap alloc_contig_range() in the
more general interface:

struct page *find_alloc_contig_pages(unsigned int order, gfp_t gfp, int nid,
nodemask_t *nodemask)

This interface is essentially the same functionality provided by the
hugetlb specific routine alloc_gigantic_page(). After creating the
interface, change alloc_gigantic_page() to call find_alloc_contig_pages()
and delete all the supporting code in hugetlb.c.

A new use case for allocating contiguous memory has been identified in
Intel(R) Resource Director Technology Cache Pseudo-Locking.

Mike Kravetz (3):
mm: change type of free_contig_range(nr_pages) to unsigned long
mm: add find_alloc_contig_pages() interface
mm/hugetlb: use find_alloc_contig_pages() to allocate gigantic pages

include/linux/gfp.h | 14 +++++++-
mm/cma.c | 2 +-
mm/hugetlb.c | 87 ++++--------------------------------------------
mm/page_alloc.c | 95 ++++++++++++++++++++++++++++++++++++++++++++++++++---
4 files changed, 110 insertions(+), 88 deletions(-)

--
2.13.6

\
 
 \ /
  Last update: 2018-04-17 04:11    [W:0.074 / U:4.624 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site