lkml.org 
[lkml]   [2013]   [Feb]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] mm: cma: fix accounting of CMA pages placed in high memory
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
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
for pages without the mapping is a correct. Shouldn't we use avoid himem in
such case?

Best regards
--
Marek Szyprowski
Samsung Poland R&D Center




\
 
 \ /
  Last update: 2013-02-05 10:21    [W:0.075 / U:7.028 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site