On 02/13/2018 07:46 AM, Reinette Chatre wrote:
> Adding MM maintainers to v2 to share the new MM change (patch 21/22) that
> enables large contiguous regions that was created to support large Cache
> Pseudo-Locked regions (patch 22/22). This week MM team received another
> proposal to support large contiguous allocations ("[RFC PATCH 0/3]
> Interface for higher order contiguous allocations" at
> I have not yet tested with this new proposal but it does seem appropriate
> and I should be able to rework patch 22 from this series on top of that if
> it is accepted instead of what I have in patch 21 of this series.
Well, I certainly would prefer the adoption and use of a more general
purpose interface rather than exposing alloc_gigantic_page().
Both the interface I suggested and alloc_gigantic_page end up calling
alloc_contig_range(). I have not looked at your entire patch series, but
do be aware that in its present form alloc_contig_range will run into
issues if called by two threads simultaneously for the same page range.
Calling alloc_gigantic_page without some form of synchronization will
expose this issue. Currently this is handled by hugetlb_lock for all
users of alloc_gigantic_page. If you simply expose alloc_gigantic_page
without any type of synchronization, you may run into issues. The first
patch in my RFC "mm: make start_isolate_page_range() fail if already
isolated" should handle this situation IF we decide to expose
alloc_gigantic_page (which I do not suggest).