Re: [PATCH v3 4/6] mm/cma: remove ALLOC_CMA

From: Joonsoo Kim
Date: Tue Jun 28 2016 - 04:13:15 EST


On Mon, Jun 27, 2016 at 11:30:52AM +0200, Vlastimil Babka wrote:
> On 05/26/2016 08:22 AM, js1304@xxxxxxxxx wrote:
> >From: Joonsoo Kim <iamjoonsoo.kim@xxxxxxx>
> >
> >Now, all reserved pages for CMA region are belong to the ZONE_CMA
> >and it only serves for GFP_HIGHUSER_MOVABLE. Therefore, we don't need to
> >consider ALLOC_CMA at all.
> >
> >Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@xxxxxxx>
> >---
> > mm/internal.h | 3 +--
> > mm/page_alloc.c | 27 +++------------------------
> > 2 files changed, 4 insertions(+), 26 deletions(-)
> >
>
> [...]
>
> >@@ -2833,10 +2827,8 @@ bool __zone_watermark_ok(struct zone *z, unsigned int order, unsigned long mark,
> > }
> >
> > #ifdef CONFIG_CMA
> >- if ((alloc_flags & ALLOC_CMA) &&
> >- !list_empty(&area->free_list[MIGRATE_CMA])) {
> >+ if (!list_empty(&area->free_list[MIGRATE_CMA]))
> > return true;
> >- }
> > #endif
>
> Nitpick: it would be more logical to remove the whole block in this
> patch, as removing ALLOC_CMA means it's effectively false? Also less
> churn.

No, all freepages on ZONE_CMA is attached on area->free_list[MIGRATE_CMA].
We need to check whether there is a freepage on it or not to pass watermark
check for high-order allocation.

Thanks.