Re: [PATCH] mm: cma: fix accounting of CMA pages placed in highmemory

From: Minchan Kim
Date: Tue Feb 05 2013 - 03:47:17 EST


On Tue, Feb 05, 2013 at 09:38:30AM +0100, Marek Szyprowski wrote:
> Hello,
>
> On 2/5/2013 1:40 AM, Minchan Kim wrote:
>
> ...
>
> >> Previous time, it's not fully tested and now we checked it with
> >> highmem support patches.
> >
> >I get it. Sigh. then [1] inline attached below wan't good.
> >We have to code like this?
> >
> >[1] 6a6dccba, mm: cma: don't replace lowmem pages with highmem
> >
> >diff --git a/mm/page_alloc.c b/mm/page_alloc.c
> >index b97cf12..0707e0a 100644
> >--- a/mm/page_alloc.c
> >+++ b/mm/page_alloc.c
> >@@ -5671,11 +5671,10 @@ static struct page *
> > __alloc_contig_migrate_alloc(struct page *page, unsigned long private,
> > int **resultp)
> > {
> >- gfp_t gfp_mask = GFP_USER | __GFP_MOVABLE;
> >-
> >- if (PageHighMem(page))
> >- gfp_mask |= __GFP_HIGHMEM;
> >-
> >+ gfp_t gfp_mask = GFP_HIGHUSER_MOVABLE;
> >+ struct address_space *mapping = page_mapping(page);
> >+ if (mapping)
> >+ gfp_mask = mapping_gfp_mask(mapping);
> > return alloc_page(gfp_mask);
> > }
>
> Am I right that this code will allocate more pages from himem? Old approach

Yes.

> never migrate lowmem page to himem, what is now possible as gfp mask
> is always
> taken from mapping_gfp flags. I only wonder if forcing GFP_HIGHUSER_MOVABLE

-ENOPARSE. What is not possbile ~~ take from mapping_gfp flags.
Could you clarify your statement?

> for pages without the mapping is a correct. Shouldn't we use avoid himem in

CMA pages is for pages for user, NOT kernel so HIGHUSER_MOVABLE makes sense.

> such case?

I don't get it. :(
We have to recomment use of highmem for user space pages.
Am I missing something?

Sorry, I should go out of office now so forgive my late response.



>
> Best regards
> --
> Marek Szyprowski
> Samsung Poland R&D Center
>
>
> --
> To unsubscribe, send a message with 'unsubscribe linux-mm' in
> the body to majordomo@xxxxxxxxxx For more info on Linux MM,
> see: http://www.linux-mm.org/ .
> Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>

--
Kind regards,
Minchan Kim
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/