瀏覽代碼

sparc64: Increase vmalloc size to fix percpu regressions.

Since we now use the embedding percpu allocator we have to make the
vmalloc area at least as large as the stretch can be between nodes.

Besides some minor asm adjustments, this turned out to be pretty
trivial.

Signed-off-by: David S. Miller <davem@davemloft.net>
David S. Miller 15 年之前
父節點
當前提交
1b6b9d6247
共有 2 個文件被更改,包括 6 次插入6 次删除
  1. 2 2
      arch/sparc/include/asm/pgtable_64.h
  2. 4 4
      arch/sparc/kernel/ktlb.S

+ 2 - 2
arch/sparc/include/asm/pgtable_64.h

@@ -41,8 +41,8 @@
 #define LOW_OBP_ADDRESS		_AC(0x00000000f0000000,UL)
 #define LOW_OBP_ADDRESS		_AC(0x00000000f0000000,UL)
 #define HI_OBP_ADDRESS		_AC(0x0000000100000000,UL)
 #define HI_OBP_ADDRESS		_AC(0x0000000100000000,UL)
 #define VMALLOC_START		_AC(0x0000000100000000,UL)
 #define VMALLOC_START		_AC(0x0000000100000000,UL)
-#define VMALLOC_END		_AC(0x0000000200000000,UL)
-#define VMEMMAP_BASE		_AC(0x0000000200000000,UL)
+#define VMALLOC_END		_AC(0x0000010000000000,UL)
+#define VMEMMAP_BASE		_AC(0x0000010000000000,UL)
 
 
 #define vmemmap			((struct page *)VMEMMAP_BASE)
 #define vmemmap			((struct page *)VMEMMAP_BASE)
 
 

+ 4 - 4
arch/sparc/kernel/ktlb.S

@@ -280,8 +280,8 @@ kvmap_dtlb_nonlinear:
 
 
 #ifdef CONFIG_SPARSEMEM_VMEMMAP
 #ifdef CONFIG_SPARSEMEM_VMEMMAP
 	/* Do not use the TSB for vmemmap.  */
 	/* Do not use the TSB for vmemmap.  */
-	mov		(VMEMMAP_BASE >> 24), %g5
-	sllx		%g5, 24, %g5
+	mov		(VMEMMAP_BASE >> 40), %g5
+	sllx		%g5, 40, %g5
 	cmp		%g4,%g5
 	cmp		%g4,%g5
 	bgeu,pn		%xcc, kvmap_vmemmap
 	bgeu,pn		%xcc, kvmap_vmemmap
 	 nop
 	 nop
@@ -293,8 +293,8 @@ kvmap_dtlb_tsbmiss:
 	sethi		%hi(MODULES_VADDR), %g5
 	sethi		%hi(MODULES_VADDR), %g5
 	cmp		%g4, %g5
 	cmp		%g4, %g5
 	blu,pn		%xcc, kvmap_dtlb_longpath
 	blu,pn		%xcc, kvmap_dtlb_longpath
-	 mov		(VMALLOC_END >> 24), %g5
-	sllx		%g5, 24, %g5
+	 mov		(VMALLOC_END >> 40), %g5
+	sllx		%g5, 40, %g5
 	cmp		%g4, %g5
 	cmp		%g4, %g5
 	bgeu,pn		%xcc, kvmap_dtlb_longpath
 	bgeu,pn		%xcc, kvmap_dtlb_longpath
 	 nop
 	 nop