* [PATCH] mm: Remove the highmem zones' memmap in the highmem zone
@ 2014-11-27 10:46 Hongbo Zhong
2014-12-02 0:13 ` Andrew Morton
0 siblings, 1 reply; 2+ messages in thread
From: Hongbo Zhong @ 2014-11-27 10:46 UTC (permalink / raw)
To: Andrew Morton; +Cc: linux-kernel, linux-mm, linux-arm-kernel
From: Zhong Hongbo <bocui107@gmail.com>
Since the commit 01cefaef40c4 ("mm: provide more accurate estimation
of pages occupied by memmap") allocate the pages from lowmem for the
highmem zones' memmap. So It is not need to reserver the memmap's for
the highmem.
A 2G DDR3 for the arm platform:
On node 0 totalpages: 524288
free_area_init_node: node 0, pgdat 80ccd380, node_mem_map 80d38000
DMA zone: 3568 pages used for memmap
DMA zone: 0 pages reserved
DMA zone: 456704 pages, LIFO batch:31
HighMem zone: 528 pages used for memmap
HighMem zone: 67584 pages, LIFO batch:15
On node 0 totalpages: 524288
free_area_init_node: node 0, pgdat 80cd6f40, node_mem_map 80d42000
DMA zone: 3568 pages used for memmap
DMA zone: 0 pages reserved
DMA zone: 456704 pages, LIFO batch:31
HighMem zone: 67584 pages, LIFO batch:15
Signed-off-by: Hongbo Zhong <hongbo.zhong@gmail.com>
---
mm/page_alloc.c | 22 ++++++++++++----------
1 file changed, 12 insertions(+), 10 deletions(-)
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 616a2c9..d2f723c 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -4851,16 +4851,18 @@ static void __paginginit free_area_init_core(struct pglist_data *pgdat,
* and per-cpu initialisations
*/
memmap_pages = calc_memmap_size(size, realsize);
- if (freesize >= memmap_pages) {
- freesize -= memmap_pages;
- if (memmap_pages)
- printk(KERN_DEBUG
- " %s zone: %lu pages used for memmap\n",
- zone_names[j], memmap_pages);
- } else
- printk(KERN_WARNING
- " %s zone: %lu pages exceeds freesize %lu\n",
- zone_names[j], memmap_pages, freesize);
+ if (!is_highmem_idx(j)) {
+ if (freesize >= memmap_pages) {
+ freesize -= memmap_pages;
+ if (memmap_pages)
+ printk(KERN_DEBUG
+ " %s zone: %lu pages used for memmap\n",
+ zone_names[j], memmap_pages);
+ } else
+ printk(KERN_WARNING
+ " %s zone: %lu pages exceeds freesize %lu\n",
+ zone_names[j], memmap_pages, freesize);
+ }
/* Account for reserved pages */
if (j == 0 && freesize > dma_reserve) {
--
1.7.9.5
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] mm: Remove the highmem zones' memmap in the highmem zone
2014-11-27 10:46 [PATCH] mm: Remove the highmem zones' memmap in the highmem zone Hongbo Zhong
@ 2014-12-02 0:13 ` Andrew Morton
0 siblings, 0 replies; 2+ messages in thread
From: Andrew Morton @ 2014-12-02 0:13 UTC (permalink / raw)
To: Hongbo Zhong; +Cc: linux-kernel, linux-mm, linux-arm-kernel
On Thu, 27 Nov 2014 18:46:34 +0800 Hongbo Zhong <bocui107@gmail.com> wrote:
> From: Zhong Hongbo <bocui107@gmail.com>
>
> Since the commit 01cefaef40c4 ("mm: provide more accurate estimation
> of pages occupied by memmap") allocate the pages from lowmem for the
> highmem zones' memmap. So It is not need to reserver the memmap's for
> the highmem.
Looks right.
> A 2G DDR3 for the arm platform:
> On node 0 totalpages: 524288
> free_area_init_node: node 0, pgdat 80ccd380, node_mem_map 80d38000
> DMA zone: 3568 pages used for memmap
> DMA zone: 0 pages reserved
> DMA zone: 456704 pages, LIFO batch:31
> HighMem zone: 528 pages used for memmap
> HighMem zone: 67584 pages, LIFO batch:15
>
> On node 0 totalpages: 524288
> free_area_init_node: node 0, pgdat 80cd6f40, node_mem_map 80d42000
> DMA zone: 3568 pages used for memmap
> DMA zone: 0 pages reserved
> DMA zone: 456704 pages, LIFO batch:31
> HighMem zone: 67584 pages, LIFO batch:15
So nothing changed. Maybe it would have if the machine had more
highmem.
I'm trying to work out what effect this patch actually has. AFAICT it
provides more accurate values for zone->min_unmapped_pages and
zone->min_slab_pages on NUMA. Anything else?
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2014-12-02 0:13 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-11-27 10:46 [PATCH] mm: Remove the highmem zones' memmap in the highmem zone Hongbo Zhong
2014-12-02 0:13 ` Andrew Morton
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).