Re: [RFC PATCH 0/3] Interface for higher order contiguous allocations

From: Reinette Chatre
Date: Thu Apr 12 2018 - 16:40:30 EST


Hi Mike,

On 2/15/2018 12:22 PM, Reinette Chatre wrote:
> On 2/12/2018 2:20 PM, Mike Kravetz wrote:
>> These patches came out of the "[RFC] mmap(MAP_CONTIG)" discussions at:
>> http://lkml.kernel.org/r/21f1ec96-2822-1189-1c95-79a2bb491571@xxxxxxxxxx
>>
>> 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)
>>
>> No underlying changes are made to increase the likelihood that a contiguous
>> set of pages can be found and allocated. Therefore, any user of this
>> interface must deal with failure. The hope is that this interface will be
>> able to satisfy some use cases today.
>
> As discussed in another thread a new feature, Cache Pseudo-Locking,
> requires large contiguous regions. Until now I just exposed
> alloc_gigantic_page() to handle these allocations in my testing. I now
> moved to using find_alloc_contig_pages() as introduced here and all my
> tests passed. I do hope that an API supporting large contiguous regions
> become available.
>
> Thank you very much for creating this.
>
> Tested-by: Reinette Chatre <reinette.chatre@xxxxxxxxx>

Do you still intend on submitting these changes for inclusion?

I would really like to use this work but unfortunately the original
patches submitted here do not apply anymore. I am encountering conflicts
with, for example:

commit d9cc948f6fa1c3384037f500e0acd35f03850d15
Author: Michal Hocko <mhocko@xxxxxxxx>
Date: Wed Jan 31 16:20:44 2018 -0800

mm, hugetlb: integrate giga hugetlb more naturally to the allocation
path

Thank you very much

Reinette