All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC/PATCH 1/7] x86, mm: Use MAX_DMA_PFN for ZONE_DMA on 32-bit
@ 2011-10-28 14:23 Pekka Enberg
  2011-10-28 14:23 ` [RFC/PATCH 2/7] x86, mm: Move zone init from paging_init() on 64-bit Pekka Enberg
                   ` (7 more replies)
  0 siblings, 8 replies; 18+ messages in thread
From: Pekka Enberg @ 2011-10-28 14:23 UTC (permalink / raw)
  To: x86
  Cc: linux-kernel, Pekka Enberg, Tejun Heo, Yinghai Lu,
	H. Peter Anvin, David Rientjes

Use MAX_DMA_PFN which represents the 16 MB ISA DMA limit on 32-bit x86 just
like we do on 64-bit.

Cc: Tejun Heo <tj@kernel.org>
Cc: Yinghai Lu <yinghai@kernel.org>
Cc: H. Peter Anvin <hpa@linux.intel.com>
Cc: David Rientjes <rientjes@google.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
---
 arch/x86/mm/init_32.c |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)

diff --git a/arch/x86/mm/init_32.c b/arch/x86/mm/init_32.c
index 29f7c6d..434c97d 100644
--- a/arch/x86/mm/init_32.c
+++ b/arch/x86/mm/init_32.c
@@ -679,8 +679,7 @@ static void __init zone_sizes_init(void)
 	unsigned long max_zone_pfns[MAX_NR_ZONES];
 	memset(max_zone_pfns, 0, sizeof(max_zone_pfns));
 #ifdef CONFIG_ZONE_DMA
-	max_zone_pfns[ZONE_DMA] =
-		virt_to_phys((char *)MAX_DMA_ADDRESS) >> PAGE_SHIFT;
+	max_zone_pfns[ZONE_DMA] = MAX_DMA_PFN;
 #endif
 	max_zone_pfns[ZONE_NORMAL] = max_low_pfn;
 #ifdef CONFIG_HIGHMEM
-- 
1.7.6.4


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [RFC/PATCH 2/7] x86, mm: Move zone init from paging_init() on 64-bit
  2011-10-28 14:23 [RFC/PATCH 1/7] x86, mm: Use MAX_DMA_PFN for ZONE_DMA on 32-bit Pekka Enberg
@ 2011-10-28 14:23 ` Pekka Enberg
  2011-10-31 22:50   ` David Rientjes
  2011-10-28 14:23 ` [RFC/PATCH 3/7] x86, mm: Use max_pfn instead of highend_pfn Pekka Enberg
                   ` (6 subsequent siblings)
  7 siblings, 1 reply; 18+ messages in thread
From: Pekka Enberg @ 2011-10-28 14:23 UTC (permalink / raw)
  To: x86
  Cc: linux-kernel, Pekka Enberg, Tejun Heo, Yinghai Lu,
	H. Peter Anvin, David Rientjes

This patch introduces a zone_sizes_init() helper function on 64-bit to make it
more similar to 32-bit init.

Cc: Tejun Heo <tj@kernel.org>
Cc: Yinghai Lu <yinghai@kernel.org>
Cc: H. Peter Anvin <hpa@linux.intel.com>
Cc: David Rientjes <rientjes@google.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
---
 arch/x86/mm/init_64.c |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c
index bbaaa00..3ddda59 100644
--- a/arch/x86/mm/init_64.c
+++ b/arch/x86/mm/init_64.c
@@ -612,7 +612,7 @@ void __init initmem_init(void)
 }
 #endif
 
-void __init paging_init(void)
+static void __init zone_sizes_init(void)
 {
 	unsigned long max_zone_pfns[MAX_NR_ZONES];
 
@@ -623,6 +623,11 @@ void __init paging_init(void)
 	max_zone_pfns[ZONE_DMA32] = MAX_DMA32_PFN;
 	max_zone_pfns[ZONE_NORMAL] = max_pfn;
 
+	free_area_init_nodes(max_zone_pfns);
+}
+
+void __init paging_init(void)
+{
 	sparse_memory_present_with_active_regions(MAX_NUMNODES);
 	sparse_init();
 
@@ -634,7 +639,7 @@ void __init paging_init(void)
 	 */
 	node_clear_state(0, N_NORMAL_MEMORY);
 
-	free_area_init_nodes(max_zone_pfns);
+	zone_sizes_init();
 }
 
 /*
-- 
1.7.6.4


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [RFC/PATCH 3/7] x86, mm: Use max_pfn instead of highend_pfn
  2011-10-28 14:23 [RFC/PATCH 1/7] x86, mm: Use MAX_DMA_PFN for ZONE_DMA on 32-bit Pekka Enberg
  2011-10-28 14:23 ` [RFC/PATCH 2/7] x86, mm: Move zone init from paging_init() on 64-bit Pekka Enberg
@ 2011-10-28 14:23 ` Pekka Enberg
  2011-10-31 22:54   ` David Rientjes
  2011-10-28 14:23 ` [RFC/PATCH 4/7] x86, mm: Wrap ZONE_DMA32 with CONFIG_ZONE_DMA32 Pekka Enberg
                   ` (5 subsequent siblings)
  7 siblings, 1 reply; 18+ messages in thread
From: Pekka Enberg @ 2011-10-28 14:23 UTC (permalink / raw)
  To: x86
  Cc: linux-kernel, Pekka Enberg, Tejun Heo, Yinghai Lu,
	H. Peter Anvin, David Rientjes

The 'highend_pfn' variable is always set to 'max_pfn' so just use the latter
directly.

Cc: Tejun Heo <tj@kernel.org>
Cc: Yinghai Lu <yinghai@kernel.org>
Cc: H. Peter Anvin <hpa@linux.intel.com>
Cc: David Rientjes <rientjes@google.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
---
 arch/x86/mm/init_32.c |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/arch/x86/mm/init_32.c b/arch/x86/mm/init_32.c
index 434c97d..6101894 100644
--- a/arch/x86/mm/init_32.c
+++ b/arch/x86/mm/init_32.c
@@ -54,7 +54,7 @@
 #include <asm/page_types.h>
 #include <asm/init.h>
 
-unsigned long highstart_pfn, highend_pfn;
+unsigned long highstart_pfn;
 
 static noinline int do_test_wp_bit(void);
 
@@ -647,14 +647,14 @@ void __init find_low_pfn_range(void)
 void __init initmem_init(void)
 {
 #ifdef CONFIG_HIGHMEM
-	highstart_pfn = highend_pfn = max_pfn;
+	highstart_pfn = max_pfn;
 	if (max_pfn > max_low_pfn)
 		highstart_pfn = max_low_pfn;
-	memblock_x86_register_active_regions(0, 0, highend_pfn);
+	memblock_x86_register_active_regions(0, 0, max_pfn);
 	sparse_memory_present_with_active_regions(0);
 	printk(KERN_NOTICE "%ldMB HIGHMEM available.\n",
-		pages_to_mb(highend_pfn - highstart_pfn));
-	num_physpages = highend_pfn;
+		pages_to_mb(max_pfn - highstart_pfn));
+	num_physpages = max_pfn;
 	high_memory = (void *) __va(highstart_pfn * PAGE_SIZE - 1) + 1;
 #else
 	memblock_x86_register_active_regions(0, 0, max_low_pfn);
@@ -683,7 +683,7 @@ static void __init zone_sizes_init(void)
 #endif
 	max_zone_pfns[ZONE_NORMAL] = max_low_pfn;
 #ifdef CONFIG_HIGHMEM
-	max_zone_pfns[ZONE_HIGHMEM] = highend_pfn;
+	max_zone_pfns[ZONE_HIGHMEM] = max_pfn;
 #endif
 
 	free_area_init_nodes(max_zone_pfns);
-- 
1.7.6.4


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [RFC/PATCH 4/7] x86, mm: Wrap ZONE_DMA32 with CONFIG_ZONE_DMA32
  2011-10-28 14:23 [RFC/PATCH 1/7] x86, mm: Use MAX_DMA_PFN for ZONE_DMA on 32-bit Pekka Enberg
  2011-10-28 14:23 ` [RFC/PATCH 2/7] x86, mm: Move zone init from paging_init() on 64-bit Pekka Enberg
  2011-10-28 14:23 ` [RFC/PATCH 3/7] x86, mm: Use max_pfn instead of highend_pfn Pekka Enberg
@ 2011-10-28 14:23 ` Pekka Enberg
  2011-10-31 22:52   ` David Rientjes
  2011-10-28 14:23 ` [RFC/PATCH 5/7] x86, mm: Use max_low_pfn for ZONE_NORMAL on 64-bit Pekka Enberg
                   ` (4 subsequent siblings)
  7 siblings, 1 reply; 18+ messages in thread
From: Pekka Enberg @ 2011-10-28 14:23 UTC (permalink / raw)
  To: x86
  Cc: linux-kernel, Pekka Enberg, Tejun Heo, Yinghai Lu,
	H. Peter Anvin, David Rientjes

In preparation for unifying 32-bit and 64-bit zone_sizes_init() make sure
ZONE_DMA32 is wrapped in CONFIG_ZONE_DMA32.

Cc: Tejun Heo <tj@kernel.org>
Cc: Yinghai Lu <yinghai@kernel.org>
Cc: H. Peter Anvin <hpa@linux.intel.com>
Cc: David Rientjes <rientjes@google.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
---
 arch/x86/mm/init_64.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c
index 3ddda59..a9214e6 100644
--- a/arch/x86/mm/init_64.c
+++ b/arch/x86/mm/init_64.c
@@ -620,7 +620,9 @@ static void __init zone_sizes_init(void)
 #ifdef CONFIG_ZONE_DMA
 	max_zone_pfns[ZONE_DMA] = MAX_DMA_PFN;
 #endif
+#ifdef CONFIG_ZONE_DMA32
 	max_zone_pfns[ZONE_DMA32] = MAX_DMA32_PFN;
+#endif
 	max_zone_pfns[ZONE_NORMAL] = max_pfn;
 
 	free_area_init_nodes(max_zone_pfns);
-- 
1.7.6.4


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [RFC/PATCH 5/7] x86, mm: Use max_low_pfn for ZONE_NORMAL on 64-bit
  2011-10-28 14:23 [RFC/PATCH 1/7] x86, mm: Use MAX_DMA_PFN for ZONE_DMA on 32-bit Pekka Enberg
                   ` (2 preceding siblings ...)
  2011-10-28 14:23 ` [RFC/PATCH 4/7] x86, mm: Wrap ZONE_DMA32 with CONFIG_ZONE_DMA32 Pekka Enberg
@ 2011-10-28 14:23 ` Pekka Enberg
  2011-10-31 22:54   ` David Rientjes
  2011-10-28 14:23 ` [RFC/PATCH 6/7] x86, mm: Prepare zone_sizes_init() for unification Pekka Enberg
                   ` (3 subsequent siblings)
  7 siblings, 1 reply; 18+ messages in thread
From: Pekka Enberg @ 2011-10-28 14:23 UTC (permalink / raw)
  To: x86
  Cc: linux-kernel, Pekka Enberg, Tejun Heo, Yinghai Lu,
	H. Peter Anvin, David Rientjes

64-bit has no highmem so max_low_pfn is always the same as 'max_pfn'.

Cc: Tejun Heo <tj@kernel.org>
Cc: Yinghai Lu <yinghai@kernel.org>
Cc: H. Peter Anvin <hpa@linux.intel.com>
Cc: David Rientjes <rientjes@google.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
---
 arch/x86/mm/init_64.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c
index a9214e6..f6b1f08 100644
--- a/arch/x86/mm/init_64.c
+++ b/arch/x86/mm/init_64.c
@@ -623,7 +623,7 @@ static void __init zone_sizes_init(void)
 #ifdef CONFIG_ZONE_DMA32
 	max_zone_pfns[ZONE_DMA32] = MAX_DMA32_PFN;
 #endif
-	max_zone_pfns[ZONE_NORMAL] = max_pfn;
+	max_zone_pfns[ZONE_NORMAL] = max_low_pfn;
 
 	free_area_init_nodes(max_zone_pfns);
 }
-- 
1.7.6.4


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [RFC/PATCH 6/7] x86, mm: Prepare zone_sizes_init() for unification
  2011-10-28 14:23 [RFC/PATCH 1/7] x86, mm: Use MAX_DMA_PFN for ZONE_DMA on 32-bit Pekka Enberg
                   ` (3 preceding siblings ...)
  2011-10-28 14:23 ` [RFC/PATCH 5/7] x86, mm: Use max_low_pfn for ZONE_NORMAL on 64-bit Pekka Enberg
@ 2011-10-28 14:23 ` Pekka Enberg
  2011-10-31 22:56   ` David Rientjes
  2011-10-28 14:23 ` [RFC/PATCH 7/7] x86, mm: Unify zone_sizes_init() Pekka Enberg
                   ` (2 subsequent siblings)
  7 siblings, 1 reply; 18+ messages in thread
From: Pekka Enberg @ 2011-10-28 14:23 UTC (permalink / raw)
  To: x86
  Cc: linux-kernel, Pekka Enberg, Tejun Heo, Yinghai Lu,
	H. Peter Anvin, David Rientjes

Make 32-bit and 64-bit zone_sizes_init() identical in preparation for
unification.

Cc: Tejun Heo <tj@kernel.org>
Cc: Yinghai Lu <yinghai@kernel.org>
Cc: H. Peter Anvin <hpa@linux.intel.com>
Cc: David Rientjes <rientjes@google.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
---
 arch/x86/mm/init_32.c |    4 ++++
 arch/x86/mm/init_64.c |    3 +++
 2 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/arch/x86/mm/init_32.c b/arch/x86/mm/init_32.c
index 6101894..12274fb 100644
--- a/arch/x86/mm/init_32.c
+++ b/arch/x86/mm/init_32.c
@@ -677,10 +677,14 @@ void __init initmem_init(void)
 static void __init zone_sizes_init(void)
 {
 	unsigned long max_zone_pfns[MAX_NR_ZONES];
+
 	memset(max_zone_pfns, 0, sizeof(max_zone_pfns));
 #ifdef CONFIG_ZONE_DMA
 	max_zone_pfns[ZONE_DMA] = MAX_DMA_PFN;
 #endif
+#ifdef CONFIG_ZONE_DMA32
+        max_zone_pfns[ZONE_DMA32] = MAX_DMA32_PFN;
+#endif
 	max_zone_pfns[ZONE_NORMAL] = max_low_pfn;
 #ifdef CONFIG_HIGHMEM
 	max_zone_pfns[ZONE_HIGHMEM] = max_pfn;
diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c
index f6b1f08..06c4360 100644
--- a/arch/x86/mm/init_64.c
+++ b/arch/x86/mm/init_64.c
@@ -624,6 +624,9 @@ static void __init zone_sizes_init(void)
 	max_zone_pfns[ZONE_DMA32] = MAX_DMA32_PFN;
 #endif
 	max_zone_pfns[ZONE_NORMAL] = max_low_pfn;
+#ifdef CONFIG_HIGHMEM
+	max_zone_pfns[ZONE_HIGHMEM] = max_pfn;
+#endif
 
 	free_area_init_nodes(max_zone_pfns);
 }
-- 
1.7.6.4


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [RFC/PATCH 7/7] x86, mm: Unify zone_sizes_init()
  2011-10-28 14:23 [RFC/PATCH 1/7] x86, mm: Use MAX_DMA_PFN for ZONE_DMA on 32-bit Pekka Enberg
                   ` (4 preceding siblings ...)
  2011-10-28 14:23 ` [RFC/PATCH 6/7] x86, mm: Prepare zone_sizes_init() for unification Pekka Enberg
@ 2011-10-28 14:23 ` Pekka Enberg
  2011-10-28 15:48   ` Tejun Heo
  2011-10-31 18:30 ` [RFC/PATCH 1/7] x86, mm: Use MAX_DMA_PFN for ZONE_DMA on 32-bit Yinghai Lu
  2011-10-31 22:50 ` David Rientjes
  7 siblings, 1 reply; 18+ messages in thread
From: Pekka Enberg @ 2011-10-28 14:23 UTC (permalink / raw)
  To: x86
  Cc: linux-kernel, Pekka Enberg, Tejun Heo, Yinghai Lu,
	H. Peter Anvin, David Rientjes

Now that zone_sizes_init() is identical on 32-bit and 64-bit, move the code to
arch/x86/mm/init.c and use it for both architectures.

Cc: Tejun Heo <tj@kernel.org>
Cc: Yinghai Lu <yinghai@kernel.org>
Cc: H. Peter Anvin <hpa@linux.intel.com>
Cc: David Rientjes <rientjes@google.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
---
 arch/x86/include/asm/init.h |    2 ++
 arch/x86/mm/init.c          |   23 +++++++++++++++++++++++
 arch/x86/mm/init_32.c       |   19 -------------------
 arch/x86/mm/init_64.c       |   19 -------------------
 4 files changed, 25 insertions(+), 38 deletions(-)

diff --git a/arch/x86/include/asm/init.h b/arch/x86/include/asm/init.h
index 8dbe353..adcc0ae 100644
--- a/arch/x86/include/asm/init.h
+++ b/arch/x86/include/asm/init.h
@@ -5,6 +5,8 @@
 extern void __init early_ioremap_page_table_range_init(void);
 #endif
 
+extern void __init zone_sizes_init(void);
+
 extern unsigned long __init
 kernel_physical_mapping_init(unsigned long start,
 			     unsigned long end,
diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c
index 87488b9..2426b60 100644
--- a/arch/x86/mm/init.c
+++ b/arch/x86/mm/init.c
@@ -3,6 +3,7 @@
 #include <linux/ioport.h>
 #include <linux/swap.h>
 #include <linux/memblock.h>
+#include <linux/bootmem.h>	/* for max_low_pfn */
 
 #include <asm/cacheflush.h>
 #include <asm/e820.h>
@@ -15,6 +16,7 @@
 #include <asm/tlbflush.h>
 #include <asm/tlb.h>
 #include <asm/proto.h>
+#include <asm/dma.h>		/* for MAX_DMA_PFN */
 
 unsigned long __initdata pgt_buf_start;
 unsigned long __meminitdata pgt_buf_end;
@@ -392,3 +394,24 @@ void free_initrd_mem(unsigned long start, unsigned long end)
 	free_init_pages("initrd memory", start, PAGE_ALIGN(end));
 }
 #endif
+
+void __init zone_sizes_init(void)
+{
+	unsigned long max_zone_pfns[MAX_NR_ZONES];
+
+	memset(max_zone_pfns, 0, sizeof(max_zone_pfns));
+
+#ifdef CONFIG_ZONE_DMA
+	max_zone_pfns[ZONE_DMA]		= MAX_DMA_PFN;
+#endif
+#ifdef CONFIG_ZONE_DMA32
+	max_zone_pfns[ZONE_DMA32]	= MAX_DMA32_PFN;
+#endif
+	max_zone_pfns[ZONE_NORMAL]	= max_low_pfn;
+#ifdef CONFIG_HIGHMEM
+	max_zone_pfns[ZONE_HIGHMEM]	= max_pfn;
+#endif
+
+	free_area_init_nodes(max_zone_pfns);
+}
+
diff --git a/arch/x86/mm/init_32.c b/arch/x86/mm/init_32.c
index 12274fb..f80e8af 100644
--- a/arch/x86/mm/init_32.c
+++ b/arch/x86/mm/init_32.c
@@ -674,25 +674,6 @@ void __init initmem_init(void)
 }
 #endif /* !CONFIG_NEED_MULTIPLE_NODES */
 
-static void __init zone_sizes_init(void)
-{
-	unsigned long max_zone_pfns[MAX_NR_ZONES];
-
-	memset(max_zone_pfns, 0, sizeof(max_zone_pfns));
-#ifdef CONFIG_ZONE_DMA
-	max_zone_pfns[ZONE_DMA] = MAX_DMA_PFN;
-#endif
-#ifdef CONFIG_ZONE_DMA32
-        max_zone_pfns[ZONE_DMA32] = MAX_DMA32_PFN;
-#endif
-	max_zone_pfns[ZONE_NORMAL] = max_low_pfn;
-#ifdef CONFIG_HIGHMEM
-	max_zone_pfns[ZONE_HIGHMEM] = max_pfn;
-#endif
-
-	free_area_init_nodes(max_zone_pfns);
-}
-
 void __init setup_bootmem_allocator(void)
 {
 	printk(KERN_INFO "  mapped low ram: 0 - %08lx\n",
diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c
index 06c4360..6fcce7d 100644
--- a/arch/x86/mm/init_64.c
+++ b/arch/x86/mm/init_64.c
@@ -612,25 +612,6 @@ void __init initmem_init(void)
 }
 #endif
 
-static void __init zone_sizes_init(void)
-{
-	unsigned long max_zone_pfns[MAX_NR_ZONES];
-
-	memset(max_zone_pfns, 0, sizeof(max_zone_pfns));
-#ifdef CONFIG_ZONE_DMA
-	max_zone_pfns[ZONE_DMA] = MAX_DMA_PFN;
-#endif
-#ifdef CONFIG_ZONE_DMA32
-	max_zone_pfns[ZONE_DMA32] = MAX_DMA32_PFN;
-#endif
-	max_zone_pfns[ZONE_NORMAL] = max_low_pfn;
-#ifdef CONFIG_HIGHMEM
-	max_zone_pfns[ZONE_HIGHMEM] = max_pfn;
-#endif
-
-	free_area_init_nodes(max_zone_pfns);
-}
-
 void __init paging_init(void)
 {
 	sparse_memory_present_with_active_regions(MAX_NUMNODES);
-- 
1.7.6.4


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* Re: [RFC/PATCH 7/7] x86, mm: Unify zone_sizes_init()
  2011-10-28 14:23 ` [RFC/PATCH 7/7] x86, mm: Unify zone_sizes_init() Pekka Enberg
@ 2011-10-28 15:48   ` Tejun Heo
  0 siblings, 0 replies; 18+ messages in thread
From: Tejun Heo @ 2011-10-28 15:48 UTC (permalink / raw)
  To: Pekka Enberg
  Cc: x86, linux-kernel, Yinghai Lu, H. Peter Anvin, David Rientjes

On Fri, Oct 28, 2011 at 05:23:21PM +0300, Pekka Enberg wrote:
> Now that zone_sizes_init() is identical on 32-bit and 64-bit, move the code to
> arch/x86/mm/init.c and use it for both architectures.
> 
> Cc: Tejun Heo <tj@kernel.org>
> Cc: Yinghai Lu <yinghai@kernel.org>
> Cc: H. Peter Anvin <hpa@linux.intel.com>
> Cc: David Rientjes <rientjes@google.com>
> Signed-off-by: Pekka Enberg <penberg@kernel.org>

For all seven patches in this series.

 Acked-by: Tejun Heo <tj@kernel.org>

Thanks.

-- 
tejun

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [RFC/PATCH 1/7] x86, mm: Use MAX_DMA_PFN for ZONE_DMA on 32-bit
  2011-10-28 14:23 [RFC/PATCH 1/7] x86, mm: Use MAX_DMA_PFN for ZONE_DMA on 32-bit Pekka Enberg
                   ` (5 preceding siblings ...)
  2011-10-28 14:23 ` [RFC/PATCH 7/7] x86, mm: Unify zone_sizes_init() Pekka Enberg
@ 2011-10-31 18:30 ` Yinghai Lu
  2011-10-31 22:50 ` David Rientjes
  7 siblings, 0 replies; 18+ messages in thread
From: Yinghai Lu @ 2011-10-31 18:30 UTC (permalink / raw)
  To: Pekka Enberg; +Cc: x86, linux-kernel, Tejun Heo, H. Peter Anvin, David Rientjes

On Fri, Oct 28, 2011 at 7:23 AM, Pekka Enberg <penberg@kernel.org> wrote:
> Use MAX_DMA_PFN which represents the 16 MB ISA DMA limit on 32-bit x86 just
> like we do on 64-bit.
>
> Cc: Tejun Heo <tj@kernel.org>
> Cc: Yinghai Lu <yinghai@kernel.org>
> Cc: H. Peter Anvin <hpa@linux.intel.com>
> Cc: David Rientjes <rientjes@google.com>
> Signed-off-by: Pekka Enberg <penberg@kernel.org>

for this patch set:

Acked-by: Yinghai Lu <yinghai@kernel.org>

Thanks

Yinghai

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [RFC/PATCH 1/7] x86, mm: Use MAX_DMA_PFN for ZONE_DMA on 32-bit
  2011-10-28 14:23 [RFC/PATCH 1/7] x86, mm: Use MAX_DMA_PFN for ZONE_DMA on 32-bit Pekka Enberg
                   ` (6 preceding siblings ...)
  2011-10-31 18:30 ` [RFC/PATCH 1/7] x86, mm: Use MAX_DMA_PFN for ZONE_DMA on 32-bit Yinghai Lu
@ 2011-10-31 22:50 ` David Rientjes
  7 siblings, 0 replies; 18+ messages in thread
From: David Rientjes @ 2011-10-31 22:50 UTC (permalink / raw)
  To: Pekka Enberg; +Cc: x86, linux-kernel, Tejun Heo, Yinghai Lu, H. Peter Anvin

On Fri, 28 Oct 2011, Pekka Enberg wrote:

> Use MAX_DMA_PFN which represents the 16 MB ISA DMA limit on 32-bit x86 just
> like we do on 64-bit.
> 
> Cc: Tejun Heo <tj@kernel.org>
> Cc: Yinghai Lu <yinghai@kernel.org>
> Cc: H. Peter Anvin <hpa@linux.intel.com>
> Cc: David Rientjes <rientjes@google.com>
> Signed-off-by: Pekka Enberg <penberg@kernel.org>

Acked-by: David Rientjes <rientjes@google.com>

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [RFC/PATCH 2/7] x86, mm: Move zone init from paging_init() on 64-bit
  2011-10-28 14:23 ` [RFC/PATCH 2/7] x86, mm: Move zone init from paging_init() on 64-bit Pekka Enberg
@ 2011-10-31 22:50   ` David Rientjes
  0 siblings, 0 replies; 18+ messages in thread
From: David Rientjes @ 2011-10-31 22:50 UTC (permalink / raw)
  To: Pekka Enberg; +Cc: x86, linux-kernel, Tejun Heo, Yinghai Lu, H. Peter Anvin

On Fri, 28 Oct 2011, Pekka Enberg wrote:

> This patch introduces a zone_sizes_init() helper function on 64-bit to make it
> more similar to 32-bit init.
> 
> Cc: Tejun Heo <tj@kernel.org>
> Cc: Yinghai Lu <yinghai@kernel.org>
> Cc: H. Peter Anvin <hpa@linux.intel.com>
> Cc: David Rientjes <rientjes@google.com>
> Signed-off-by: Pekka Enberg <penberg@kernel.org>

Acked-by: David Rientjes <rientjes@google.com>

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [RFC/PATCH 4/7] x86, mm: Wrap ZONE_DMA32 with CONFIG_ZONE_DMA32
  2011-10-28 14:23 ` [RFC/PATCH 4/7] x86, mm: Wrap ZONE_DMA32 with CONFIG_ZONE_DMA32 Pekka Enberg
@ 2011-10-31 22:52   ` David Rientjes
  2011-10-31 23:01     ` Arun Sharma
  0 siblings, 1 reply; 18+ messages in thread
From: David Rientjes @ 2011-10-31 22:52 UTC (permalink / raw)
  To: Pekka Enberg
  Cc: x86, linux-kernel, Tejun Heo, Yinghai Lu, H. Peter Anvin, Arun Sharma

On Fri, 28 Oct 2011, Pekka Enberg wrote:

> In preparation for unifying 32-bit and 64-bit zone_sizes_init() make sure
> ZONE_DMA32 is wrapped in CONFIG_ZONE_DMA32.
> 
> Cc: Tejun Heo <tj@kernel.org>
> Cc: Yinghai Lu <yinghai@kernel.org>
> Cc: H. Peter Anvin <hpa@linux.intel.com>
> Cc: David Rientjes <rientjes@google.com>
> Signed-off-by: Pekka Enberg <penberg@kernel.org>

Acked-by: David Rientjes <rientjes@google.com>

Adding Arun Sharma to the cc, he was interested in disabling 
CONFIG_ZONE_DMA32 and I believe carries this patch internally (as we do).

> ---
>  arch/x86/mm/init_64.c |    2 ++
>  1 files changed, 2 insertions(+), 0 deletions(-)
> 
> diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c
> index 3ddda59..a9214e6 100644
> --- a/arch/x86/mm/init_64.c
> +++ b/arch/x86/mm/init_64.c
> @@ -620,7 +620,9 @@ static void __init zone_sizes_init(void)
>  #ifdef CONFIG_ZONE_DMA
>  	max_zone_pfns[ZONE_DMA] = MAX_DMA_PFN;
>  #endif
> +#ifdef CONFIG_ZONE_DMA32
>  	max_zone_pfns[ZONE_DMA32] = MAX_DMA32_PFN;
> +#endif
>  	max_zone_pfns[ZONE_NORMAL] = max_pfn;
>  
>  	free_area_init_nodes(max_zone_pfns);

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [RFC/PATCH 3/7] x86, mm: Use max_pfn instead of highend_pfn
  2011-10-28 14:23 ` [RFC/PATCH 3/7] x86, mm: Use max_pfn instead of highend_pfn Pekka Enberg
@ 2011-10-31 22:54   ` David Rientjes
  2011-11-01  6:37     ` Pekka Enberg
  0 siblings, 1 reply; 18+ messages in thread
From: David Rientjes @ 2011-10-31 22:54 UTC (permalink / raw)
  To: Pekka Enberg; +Cc: x86, linux-kernel, Tejun Heo, Yinghai Lu, H. Peter Anvin

On Fri, 28 Oct 2011, Pekka Enberg wrote:

> diff --git a/arch/x86/mm/init_32.c b/arch/x86/mm/init_32.c
> index 434c97d..6101894 100644
> --- a/arch/x86/mm/init_32.c
> +++ b/arch/x86/mm/init_32.c
> @@ -54,7 +54,7 @@
>  #include <asm/page_types.h>
>  #include <asm/init.h>
>  
> -unsigned long highstart_pfn, highend_pfn;
> +unsigned long highstart_pfn;
>  
>  static noinline int do_test_wp_bit(void);
>  

This shouldn't build with a CONFIG_NUMA i386 config, highend_pfn is used 
in arch/x86/mm/numa_32.c.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [RFC/PATCH 5/7] x86, mm: Use max_low_pfn for ZONE_NORMAL on 64-bit
  2011-10-28 14:23 ` [RFC/PATCH 5/7] x86, mm: Use max_low_pfn for ZONE_NORMAL on 64-bit Pekka Enberg
@ 2011-10-31 22:54   ` David Rientjes
  0 siblings, 0 replies; 18+ messages in thread
From: David Rientjes @ 2011-10-31 22:54 UTC (permalink / raw)
  To: Pekka Enberg; +Cc: x86, linux-kernel, Tejun Heo, Yinghai Lu, H. Peter Anvin

On Fri, 28 Oct 2011, Pekka Enberg wrote:

> 64-bit has no highmem so max_low_pfn is always the same as 'max_pfn'.
> 
> Cc: Tejun Heo <tj@kernel.org>
> Cc: Yinghai Lu <yinghai@kernel.org>
> Cc: H. Peter Anvin <hpa@linux.intel.com>
> Cc: David Rientjes <rientjes@google.com>
> Signed-off-by: Pekka Enberg <penberg@kernel.org>

Acked-by: David Rientjes <rientjes@google.com>

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [RFC/PATCH 6/7] x86, mm: Prepare zone_sizes_init() for unification
  2011-10-28 14:23 ` [RFC/PATCH 6/7] x86, mm: Prepare zone_sizes_init() for unification Pekka Enberg
@ 2011-10-31 22:56   ` David Rientjes
  2011-11-01  6:32     ` Pekka Enberg
  0 siblings, 1 reply; 18+ messages in thread
From: David Rientjes @ 2011-10-31 22:56 UTC (permalink / raw)
  To: Pekka Enberg; +Cc: x86, linux-kernel, Tejun Heo, Yinghai Lu, H. Peter Anvin

On Fri, 28 Oct 2011, Pekka Enberg wrote:

> diff --git a/arch/x86/mm/init_32.c b/arch/x86/mm/init_32.c
> index 6101894..12274fb 100644
> --- a/arch/x86/mm/init_32.c
> +++ b/arch/x86/mm/init_32.c
> @@ -677,10 +677,14 @@ void __init initmem_init(void)
>  static void __init zone_sizes_init(void)
>  {
>  	unsigned long max_zone_pfns[MAX_NR_ZONES];
> +
>  	memset(max_zone_pfns, 0, sizeof(max_zone_pfns));
>  #ifdef CONFIG_ZONE_DMA
>  	max_zone_pfns[ZONE_DMA] = MAX_DMA_PFN;
>  #endif
> +#ifdef CONFIG_ZONE_DMA32
> +        max_zone_pfns[ZONE_DMA32] = MAX_DMA32_PFN;
> +#endif
>  	max_zone_pfns[ZONE_NORMAL] = max_low_pfn;
>  #ifdef CONFIG_HIGHMEM
>  	max_zone_pfns[ZONE_HIGHMEM] = max_pfn;
> diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c
> index f6b1f08..06c4360 100644
> --- a/arch/x86/mm/init_64.c
> +++ b/arch/x86/mm/init_64.c
> @@ -624,6 +624,9 @@ static void __init zone_sizes_init(void)
>  	max_zone_pfns[ZONE_DMA32] = MAX_DMA32_PFN;
>  #endif
>  	max_zone_pfns[ZONE_NORMAL] = max_low_pfn;
> +#ifdef CONFIG_HIGHMEM
> +	max_zone_pfns[ZONE_HIGHMEM] = max_pfn;
> +#endif
>  
>  	free_area_init_nodes(max_zone_pfns);
>  }

I'd just fold patch 7 into this, it doesn't make much sense to have add 
CONFIG_HIGHMEM code for 64-bit, for example, just to make the next patch 
simpler.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [RFC/PATCH 4/7] x86, mm: Wrap ZONE_DMA32 with CONFIG_ZONE_DMA32
  2011-10-31 22:52   ` David Rientjes
@ 2011-10-31 23:01     ` Arun Sharma
  0 siblings, 0 replies; 18+ messages in thread
From: Arun Sharma @ 2011-10-31 23:01 UTC (permalink / raw)
  To: David Rientjes
  Cc: Pekka Enberg, x86, linux-kernel, Tejun Heo, Yinghai Lu, H. Peter Anvin

On 10/31/11 3:52 PM, David Rientjes wrote:
> On Fri, 28 Oct 2011, Pekka Enberg wrote:
>
>> In preparation for unifying 32-bit and 64-bit zone_sizes_init() make sure
>> ZONE_DMA32 is wrapped in CONFIG_ZONE_DMA32.
>>
>> Cc: Tejun Heo<tj@kernel.org>
>> Cc: Yinghai Lu<yinghai@kernel.org>
>> Cc: H. Peter Anvin<hpa@linux.intel.com>
>> Cc: David Rientjes<rientjes@google.com>
>> Signed-off-by: Pekka Enberg<penberg@kernel.org>
>
> Acked-by: David Rientjes<rientjes@google.com>
>
> Adding Arun Sharma to the cc, he was interested in disabling
> CONFIG_ZONE_DMA32 and I believe carries this patch internally (as we do).
>

Yes we do.

Acked-by: Arun Sharma <asharma@fb.com>


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [RFC/PATCH 6/7] x86, mm: Prepare zone_sizes_init() for unification
  2011-10-31 22:56   ` David Rientjes
@ 2011-11-01  6:32     ` Pekka Enberg
  0 siblings, 0 replies; 18+ messages in thread
From: Pekka Enberg @ 2011-11-01  6:32 UTC (permalink / raw)
  To: David Rientjes; +Cc: x86, linux-kernel, Tejun Heo, Yinghai Lu, H. Peter Anvin

Hi David,

On Tue, Nov 1, 2011 at 12:56 AM, David Rientjes <rientjes@google.com> wrote:
> I'd just fold patch 7 into this, it doesn't make much sense to have add
> CONFIG_HIGHMEM code for 64-bit, for example, just to make the next patch
> simpler.

Actually, I don't agree.

Whenever I've done unification patches, I've always made sure the
patch that does the actual unification is just code shuffling. That
improves bisectability and makes reviewing easier.

                        Pekka

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [RFC/PATCH 3/7] x86, mm: Use max_pfn instead of highend_pfn
  2011-10-31 22:54   ` David Rientjes
@ 2011-11-01  6:37     ` Pekka Enberg
  0 siblings, 0 replies; 18+ messages in thread
From: Pekka Enberg @ 2011-11-01  6:37 UTC (permalink / raw)
  To: David Rientjes; +Cc: x86, linux-kernel, Tejun Heo, Yinghai Lu, H. Peter Anvin

On Tue, Nov 1, 2011 at 12:54 AM, David Rientjes <rientjes@google.com> wrote:
>> @@ -54,7 +54,7 @@
>>  #include <asm/page_types.h>
>>  #include <asm/init.h>
>>
>> -unsigned long highstart_pfn, highend_pfn;
>> +unsigned long highstart_pfn;
>>
>>  static noinline int do_test_wp_bit(void);
>>
>
> This shouldn't build with a CONFIG_NUMA i386 config, highend_pfn is used
> in arch/x86/mm/numa_32.c.

Fixed, thanks!

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2011-11-01  6:37 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-10-28 14:23 [RFC/PATCH 1/7] x86, mm: Use MAX_DMA_PFN for ZONE_DMA on 32-bit Pekka Enberg
2011-10-28 14:23 ` [RFC/PATCH 2/7] x86, mm: Move zone init from paging_init() on 64-bit Pekka Enberg
2011-10-31 22:50   ` David Rientjes
2011-10-28 14:23 ` [RFC/PATCH 3/7] x86, mm: Use max_pfn instead of highend_pfn Pekka Enberg
2011-10-31 22:54   ` David Rientjes
2011-11-01  6:37     ` Pekka Enberg
2011-10-28 14:23 ` [RFC/PATCH 4/7] x86, mm: Wrap ZONE_DMA32 with CONFIG_ZONE_DMA32 Pekka Enberg
2011-10-31 22:52   ` David Rientjes
2011-10-31 23:01     ` Arun Sharma
2011-10-28 14:23 ` [RFC/PATCH 5/7] x86, mm: Use max_low_pfn for ZONE_NORMAL on 64-bit Pekka Enberg
2011-10-31 22:54   ` David Rientjes
2011-10-28 14:23 ` [RFC/PATCH 6/7] x86, mm: Prepare zone_sizes_init() for unification Pekka Enberg
2011-10-31 22:56   ` David Rientjes
2011-11-01  6:32     ` Pekka Enberg
2011-10-28 14:23 ` [RFC/PATCH 7/7] x86, mm: Unify zone_sizes_init() Pekka Enberg
2011-10-28 15:48   ` Tejun Heo
2011-10-31 18:30 ` [RFC/PATCH 1/7] x86, mm: Use MAX_DMA_PFN for ZONE_DMA on 32-bit Yinghai Lu
2011-10-31 22:50 ` David Rientjes

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.