Re: [RFCv2] mm: page allocation for less fragmentation

Mel Gorman
2015-03-26T10:28:11Z

On Thu, Mar 26, 2015 at 06:16:22AM +0900, Gioh Kim wrote:
>
>
> 2015-03-25 ?????? 7:56??? Mel Gorman ???(???) ??? ???:
> >On Wed, Mar 25, 2015 at 11:39:15AM +0900, Gioh Kim wrote:
> >>My driver allocates more than 40MB pages via alloc_page() at a time and
> >>maps them at virtual address. Totally it uses 300~400MB pages.
> >>
> >>If I run a heavy load test for a few days in 1GB memory system, I cannot allocate even order=3 pages
> >>because-of the external fragmentation.
> >>
> >>I thought I needed a anti-fragmentation solution for my driver.
> >>But there is no allocation function that considers fragmentation.
> >>The compaction is not helpful because it is only for movable pages, not unmovable pages.
> >>
> >>This patch proposes a allocation function allocates only pages in the same pageblock.
> >>
> >
> >Is this not what CMA is for? Or creating a MOVABLE zone?
>
> It's not related to CMA and MOVABLE zone.
> It's for compaction and anti-fragmentation for any zone.
>

Create a CMA area, allow your driver to use it use alloc_contig_range.
As it is, this is creating another contiguous range allocation function
with no in-kernel users.

--
Mel Gorman
SUSE Labs