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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]