linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Jiang Liu <liuj97@gmail.com>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Jiang Liu <jiang.liu@huawei.com>,
	David Rientjes <rientjes@google.com>,
	Wen Congyang <wency@cn.fujitsu.com>, Mel Gorman <mgorman@suse.de>,
	Minchan Kim <minchan@kernel.org>,
	KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
	Michal Hocko <mhocko@suse.cz>,
	James Bottomley <James.Bottomley@HansenPartnership.com>,
	Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>,
	David Howells <dhowells@redhat.com>,
	Mark Salter <msalter@redhat.com>,
	Jianguo Wu <wujianguo@huawei.com>,
	linux-mm@kvack.org, linux-arch@vger.kernel.org,
	linux-kernel@vger.kernel.org, Andi Kleen <ak@linux.intel.com>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Subject: [PATCH v5, part4 19/41] mm/frv: prepare for removing num_physpages and simplify mem_init()
Date: Wed,  8 May 2013 23:51:16 +0800	[thread overview]
Message-ID: <1368028298-7401-20-git-send-email-jiang.liu@huawei.com> (raw)
In-Reply-To: <1368028298-7401-1-git-send-email-jiang.liu@huawei.com>

Prepare for removing num_physpages and simplify mem_init().

Signed-off-by: Jiang Liu <jiang.liu@huawei.com>
Cc: David Howells <dhowells@redhat.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: linux-kernel@vger.kernel.org
---
 arch/frv/kernel/setup.c |   13 +++++++------
 arch/frv/mm/init.c      |   49 ++++++++++++++---------------------------------
 2 files changed, 21 insertions(+), 41 deletions(-)

diff --git a/arch/frv/kernel/setup.c b/arch/frv/kernel/setup.c
index a513647..f78f8cb 100644
--- a/arch/frv/kernel/setup.c
+++ b/arch/frv/kernel/setup.c
@@ -876,6 +876,7 @@ late_initcall(setup_arch_serial);
 static void __init setup_linux_memory(void)
 {
 	unsigned long bootmap_size, low_top_pfn, kstart, kend, high_mem;
+	unsigned long physpages;
 
 	kstart	= (unsigned long) &__kernel_image_start - PAGE_OFFSET;
 	kend	= (unsigned long) &__kernel_image_end - PAGE_OFFSET;
@@ -893,19 +894,19 @@ static void __init setup_linux_memory(void)
 					 );
 
 	/* pass the memory that the kernel can immediately use over to the bootmem allocator */
-	max_mapnr = num_physpages = (memory_end - memory_start) >> PAGE_SHIFT;
+	max_mapnr = physpages = (memory_end - memory_start) >> PAGE_SHIFT;
 	low_top_pfn = (KERNEL_LOWMEM_END - KERNEL_LOWMEM_START) >> PAGE_SHIFT;
 	high_mem = 0;
 
-	if (num_physpages > low_top_pfn) {
+	if (physpages > low_top_pfn) {
 #ifdef CONFIG_HIGHMEM
-		high_mem = num_physpages - low_top_pfn;
+		high_mem = physpages - low_top_pfn;
 #else
-		max_mapnr = num_physpages = low_top_pfn;
+		max_mapnr = physpages = low_top_pfn;
 #endif
 	}
 	else {
-		low_top_pfn = num_physpages;
+		low_top_pfn = physpages;
 	}
 
 	min_low_pfn = memory_start >> PAGE_SHIFT;
@@ -979,7 +980,7 @@ static void __init setup_uclinux_memory(void)
 	free_bootmem(memory_start, memory_end - memory_start);
 
 	high_memory = (void *) (memory_end & PAGE_MASK);
-	max_mapnr = num_physpages = ((unsigned long) high_memory - PAGE_OFFSET) >> PAGE_SHIFT;
+	max_mapnr = ((unsigned long) high_memory - PAGE_OFFSET) >> PAGE_SHIFT;
 
 	min_low_pfn = memory_start >> PAGE_SHIFT;
 	max_low_pfn = memory_end >> PAGE_SHIFT;
diff --git a/arch/frv/mm/init.c b/arch/frv/mm/init.c
index 4215822..e9e2b6f 100644
--- a/arch/frv/mm/init.c
+++ b/arch/frv/mm/init.c
@@ -78,7 +78,7 @@ void __init paging_init(void)
 	memset((void *) empty_zero_page, 0, PAGE_SIZE);
 
 #ifdef CONFIG_HIGHMEM
-	if (num_physpages - num_mappedpages) {
+	if (get_num_physpages() - num_mappedpages) {
 		pgd_t *pge;
 		pud_t *pue;
 		pmd_t *pme;
@@ -96,7 +96,7 @@ void __init paging_init(void)
 	 */
 	zones_size[ZONE_NORMAL]  = max_low_pfn - min_low_pfn;
 #ifdef CONFIG_HIGHMEM
-	zones_size[ZONE_HIGHMEM] = num_physpages - num_mappedpages;
+	zones_size[ZONE_HIGHMEM] = get_num_physpages() - num_mappedpages;
 #endif
 
 	free_area_init(zones_size);
@@ -114,45 +114,24 @@ void __init paging_init(void)
  */
 void __init mem_init(void)
 {
-	unsigned long npages = (memory_end - memory_start) >> PAGE_SHIFT;
-	unsigned long tmp;
-#ifdef CONFIG_MMU
-	unsigned long loop, pfn;
-	int datapages = 0;
-#endif
-	int codek = 0, datak = 0;
+	unsigned long code_size = _etext - _stext;
 
 	/* this will put all low memory onto the freelists */
 	free_all_bootmem();
+#if defined(CONFIG_MMU) && defined(CONFIG_HIGHMEM)
+	{
+		unsigned long pfn;
 
-#ifdef CONFIG_MMU
-	for (loop = 0 ; loop < npages ; loop++)
-		if (PageReserved(&mem_map[loop]))
-			datapages++;
-
-#ifdef CONFIG_HIGHMEM
-	for (pfn = num_physpages - 1; pfn >= num_mappedpages; pfn--)
-		free_highmem_page(&mem_map[pfn]);
-#endif
-
-	codek = ((unsigned long) &_etext - (unsigned long) &_stext) >> 10;
-	datak = datapages << (PAGE_SHIFT - 10);
-
-#else
-	codek = (_etext - _stext) >> 10;
-	datak = 0; //(__bss_stop - _sdata) >> 10;
+		for (pfn = get_num_physpages() - 1;
+		     pfn >= num_mappedpages; pfn--)
+			free_highmem_page(&mem_map[pfn]);
+	}
 #endif
 
-	tmp = nr_free_pages() << PAGE_SHIFT;
-	printk("Memory available: %luKiB/%luKiB RAM, %luKiB/%luKiB ROM (%dKiB kernel code, %dKiB data)\n",
-	       tmp >> 10,
-	       npages << (PAGE_SHIFT - 10),
-	       (rom_length > 0) ? ((rom_length >> 10) - codek) : 0,
-	       rom_length >> 10,
-	       codek,
-	       datak
-	       );
-
+	mem_init_print_info(NULL);
+	if (rom_length > 0 && rom_length >= code_size)
+		printk("Memory available:  %luKiB/%luKiB ROM\n",
+			(rom_length - code_size) >> 10, rom_length >> 10);
 } /* end mem_init() */
 
 /*****************************************************************************/
-- 
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>

  parent reply	other threads:[~2013-05-08 15:55 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-05-08 15:50 [PATCH v5, part4 00/41] Simplify mem_init() implementations and kill num_physpages Jiang Liu
2013-05-08 15:50 ` [PATCH v5, part4 01/41] vmlinux.lds: add comments for global variables and clean up useless declarations Jiang Liu
2013-05-08 15:50 ` [PATCH v5, part4 02/41] avr32: normalize global variables exported by vmlinux.lds Jiang Liu
2013-05-08 15:51 ` [PATCH v5, part4 03/41] c6x: " Jiang Liu
2013-05-08 15:51 ` [PATCH v5, part4 04/41] h8300: " Jiang Liu
2013-05-08 15:51 ` [PATCH v5, part4 05/41] score: " Jiang Liu
2013-05-08 15:51 ` [PATCH v5, part4 06/41] tile: " Jiang Liu
2013-05-08 15:51 ` [PATCH v5, part4 07/41] UML: " Jiang Liu
2013-05-08 15:51 ` [PATCH v5, part4 08/41] mm: introduce helper function mem_init_print_info() to simplify mem_init() Jiang Liu
2013-05-08 15:51 ` [PATCH v5, part4 09/41] mm: use totalram_pages instead of num_physpages at runtime Jiang Liu
2013-05-08 15:51 ` [PATCH v5, part4 10/41] mm/hotplug: prepare for removing num_physpages Jiang Liu
2013-05-08 15:51 ` [PATCH v5, part4 11/41] mm/alpha: prepare for removing num_physpages and simplify mem_init() Jiang Liu
2013-05-08 15:51 ` [PATCH v5, part4 12/41] mm/ARC: " Jiang Liu
2013-05-29  8:41   ` Vineet Gupta
2013-05-29 13:05     ` Liu Jiang
2013-05-08 15:51 ` [PATCH v5, part4 13/41] mm/ARM: " Jiang Liu
2013-05-08 15:51 ` [PATCH v5, part4 14/41] mm/ARM64: " Jiang Liu
2013-05-08 15:51 ` [PATCH v5, part4 15/41] mm/AVR32: " Jiang Liu
2013-05-08 15:51 ` [PATCH v5, part4 16/41] mm/blackfin: " Jiang Liu
2013-05-25 13:25   ` Sonic Zhang
2013-05-26 13:55     ` Liu Jiang
2013-05-08 15:51 ` [PATCH v5, part4 17/41] mm/c6x: " Jiang Liu
2013-05-08 15:51 ` [PATCH v5, part4 18/41] mm/cris: " Jiang Liu
2013-05-08 15:51 ` Jiang Liu [this message]
2013-05-08 15:51 ` [PATCH v5, part4 20/41] mm/h8300: " Jiang Liu
2013-05-08 16:26   ` Sergei Shtylyov
2013-05-08 19:29     ` Sergei Shtylyov
2013-05-08 23:35       ` Cody P Schafer
2013-05-12 15:17         ` Liu Jiang
2013-05-08 15:51 ` [PATCH v5, part4 21/41] mm/hexagon: " Jiang Liu
2013-05-08 15:51 ` [PATCH v5, part4 22/41] mm/IA64: " Jiang Liu
2013-05-08 15:51 ` [PATCH v5, part4 23/41] mm/m32r: " Jiang Liu
2013-05-08 15:51 ` [PATCH v5, part4 24/41] mm/m68k: " Jiang Liu
2013-05-08 15:51 ` [PATCH v5, part4 25/41] mm/metag: " Jiang Liu
2013-05-08 15:51 ` [PATCH v5, part4 26/41] mm/microblaze: " Jiang Liu
2013-05-08 15:51 ` [PATCH v5, part4 27/41] mm/MIPS: " Jiang Liu
2013-05-08 15:51 ` [PATCH v5, part4 28/41] mm/mn10300: " Jiang Liu
2013-05-08 15:51 ` [PATCH v5, part4 29/41] mm/openrisc: " Jiang Liu
2013-05-08 15:51 ` [PATCH v5, part4 30/41] mm/PARISC: " Jiang Liu
2013-05-08 15:51 ` [PATCH v5, part4 31/41] mm/ppc: " Jiang Liu
2013-05-15  0:32   ` Benjamin Herrenschmidt
2013-05-15 15:49     ` Liu Jiang
2013-05-08 15:51 ` [PATCH v5, part4 32/41] mm/s390: " Jiang Liu
2013-05-08 15:51 ` [PATCH v5, part4 33/41] mm/score: " Jiang Liu
2013-05-08 15:51 ` [PATCH v5, part4 34/41] mm/SH: " Jiang Liu
2013-05-08 15:51 ` [PATCH v5, part4 35/41] mm/SPARC: " Jiang Liu
2013-05-08 19:02   ` Sam Ravnborg
2013-05-08 15:51 ` [PATCH v5, part4 36/41] mm/tile: " Jiang Liu
2013-05-08 15:51 ` [PATCH v5, part4 37/41] mm/um: " Jiang Liu
2013-05-08 15:51 ` [PATCH v5, part4 38/41] mm/unicore32: " Jiang Liu
2013-05-08 15:51 ` [PATCH v5, part4 39/41] mm/x86: " Jiang Liu
2013-05-08 15:51 ` [PATCH v5, part4 40/41] mm/xtensa: " Jiang Liu
2013-05-08 15:51 ` [PATCH v5, part4 41/41] mm: kill global variable num_physpages Jiang Liu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1368028298-7401-20-git-send-email-jiang.liu@huawei.com \
    --to=liuj97@gmail.com \
    --cc=James.Bottomley@HansenPartnership.com \
    --cc=ak@linux.intel.com \
    --cc=akpm@linux-foundation.org \
    --cc=dhowells@redhat.com \
    --cc=geert@linux-m68k.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=jiang.liu@huawei.com \
    --cc=kamezawa.hiroyu@jp.fujitsu.com \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mgorman@suse.de \
    --cc=mhocko@suse.cz \
    --cc=minchan@kernel.org \
    --cc=msalter@redhat.com \
    --cc=rientjes@google.com \
    --cc=sergei.shtylyov@cogentembedded.com \
    --cc=wency@cn.fujitsu.com \
    --cc=wujianguo@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).