hexagon: CONFIG_PAGE_SIZE_1MB?
Richard,
0) There are two checks for CONFIG_PAGE_SIZE_1MB in Linux' hexagon code. But there's no Kconfig symbol PAGE_SIZE_1MB.
1) There are two trivial solutions to this issue:
diff --git a/arch/hexagon/Kconfig b/arch/hexagon/Kconfig
index 0fd6138f6203..fe3c235930a5 100644
--- a/arch/hexagon/Kconfig
+++ b/arch/hexagon/Kconfig
@@ -148,6 +148,9 @@ config PAGE_SIZE_64KB
config PAGE_SIZE_256KB
bool "256KB"
+config PAGE_SIZE_1MB
+ bool "1MB"
+
endchoice
source "mm/Kconfig"and
diff --git a/arch/hexagon/include/asm/page.h b/arch/hexagon/include/asm/page.h
index 93f5669b4aa1..7bcec3c0447c 100644
--- a/arch/hexagon/include/asm/page.h
+++ b/arch/hexagon/include/asm/page.h
@@ -45,11 +45,6 @@
#define HEXAGON_L1_PTE_SIZE __HVM_PDE_S_256KB
#endif
-#ifdef CONFIG_PAGE_SIZE_1MB
-#define PAGE_SHIFT 20
-#define HEXAGON_L1_PTE_SIZE __HVM_PDE_S_1MB
-#endif
-
/*
* These should be defined in hugetlb.h, but apparently not.
* "Huge" for us should be 4MB or 16MB, which are both represented
diff --git a/arch/hexagon/include/asm/pgtable.h b/arch/hexagon/include/asm/pgtable.h
index d8bd54fa431e..861a993afb7e 100644
--- a/arch/hexagon/include/asm/pgtable.h
+++ b/arch/hexagon/include/asm/pgtable.h
@@ -111,10 +111,6 @@ extern unsigned long zero_page_mask;
#define PTRS_PER_PTE 16
#endif
-#ifdef CONFIG_PAGE_SIZE_1MB
-#define PTRS_PER_PTE 4
-#endif
-
/* Any bigger and the PTE disappears. */
#define pgd_ERROR(e) \
printk(KERN_ERR "%s:%d: bad pgd %08lx.\n", __FILE__, __LINE__,\2) Which trivial solution would you prefer?
Paul Bolle
Quoted 4 lines · Paul Bolle
Richard,
0) There are two checks for
CONFIG_PAGE_SIZE_1MBin Linux' hexagon code. But there's noKconfigsymbolPAGE_SIZE_1MB.
Query: did we ever get a hexagon emulator that lets civilians like myself poke at it? I haven't been able to play with this target since I lost access to the comet board...
Rob
Quoted 55 lines · Paul Bolle
Richard,
0) There are two checks for
CONFIG_PAGE_SIZE_1MBin Linux' hexagon code. But there's noKconfigsymbolPAGE_SIZE_1MB.1) There are two trivial solutions to this issue:
diff --git a/arch/hexagon/Kconfig b/arch/hexagon/Kconfig index 0fd6138f6203..fe3c235930a5 100644 --- a/arch/hexagon/Kconfig +++ b/arch/hexagon/Kconfig @@ -148,6 +148,9 @@ config PAGE_SIZE_64KB config PAGE_SIZE_256KB bool "256KB" +config PAGE_SIZE_1MB + bool "1MB" + endchoice source "mm/Kconfig"and
diff --git a/arch/hexagon/include/asm/page.h b/arch/hexagon/include/asm/page.h index 93f5669b4aa1..7bcec3c0447c 100644 --- a/arch/hexagon/include/asm/page.h +++ b/arch/hexagon/include/asm/page.h @@ -45,11 +45,6 @@ #define HEXAGON_L1_PTE_SIZE __HVM_PDE_S_256KB #endif -#ifdef CONFIG_PAGE_SIZE_1MB -#define PAGE_SHIFT 20 -#define HEXAGON_L1_PTE_SIZE __HVM_PDE_S_1MB -#endif - /* * These should be defined in hugetlb.h, but apparently not. * "Huge" for us should be 4MB or 16MB, which are both represented diff --git a/arch/hexagon/include/asm/pgtable.h b/arch/hexagon/include/asm/pgtable.h index d8bd54fa431e..861a993afb7e 100644 --- a/arch/hexagon/include/asm/pgtable.h +++ b/arch/hexagon/include/asm/pgtable.h @@ -111,10 +111,6 @@ extern unsigned long zero_page_mask; #define PTRS_PER_PTE 16 #endif -#ifdef CONFIG_PAGE_SIZE_1MB -#define PTRS_PER_PTE 4 -#endif - /* Any bigger and the PTE disappears. */ #define pgd_ERROR(e) \ printk(KERN_ERR "%s:%d: bad pgd %08lx.\n", __FILE__, __LINE__,\
Quoted 1 line
2) Which trivial solution would you prefer?
I'd go with just removing it from pgtable.h. The last time we tried anything that large, there were... adverse side effects, like overrunning one of the object counters in the slab allocator.
Thanks,
Richard Kuo
Signature · 3 lines
Sent by an employee of the Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, hosted by The Linux Foundation
PATCH 1/1 Hexagon: remove checks for CONFIG_PAGE_SIZE_1MB
There are two checks for CONFIG_PAGE_SIZE_1MB in hexagon's code. But there is no Kconfig symbol PAGE_SIZE_1MB. Remove these unneeded checks and the code they hide.
---
Untested.
Richard preferred this over the equally trivial patch to add an entry for PAGE_SIZE_1MB.
arch/hexagon/include/asm/page.h | 5 ----- arch/hexagon/include/asm/pgtable.h | 4 ---- 2 files changed, 9 deletions(-)
arch/hexagon/include/asm/page.h +0 -5
@@ -45,11 +45,6 @@#define HEXAGON_L1_PTE_SIZE __HVM_PDE_S_256KB#endif -#ifdef CONFIG_PAGE_SIZE_1MB -#define PAGE_SHIFT 20 -#define HEXAGON_L1_PTE_SIZE __HVM_PDE_S_1MB -#endif -/* * These should be defined in hugetlb.h, but apparently not. * "Huge" for us should be 4MB or 16MB, which are both represented
arch/hexagon/include/asm/pgtable.h +0 -4
@@ -111,10 +111,6 @@ extern unsigned long zero_page_mask;#define PTRS_PER_PTE 16#endif -#ifdef CONFIG_PAGE_SIZE_1MB -#define PTRS_PER_PTE 4 -#endif -/* Any bigger and the PTE disappears. */ #define pgd_ERROR (e) \ printk(KERN_ERR "%s:%d: bad pgd %08lx.\n", __FILE__, __LINE__,\
Signature · 1 line
1.9.0
Re: [PATCH] Hexagon: remove checks for CONFIG_PAGE_SIZE_1MB
Quoted 8 lines · Paul Bolle
There are two checks for
CONFIG_PAGE_SIZE_1MBin hexagon's code. But there is noKconfigsymbolPAGE_SIZE_1MB. Remove these unneeded checks and the code they hide.Signed-off-by Paul Bolle <[email protected]>---
Untested.
Quoted 7 lines
Richard preferred this over the equally trivial patch to add an entry for
PAGE_SIZE_1MB.arch/hexagon/include/asm/page.h | 5 ----- arch/hexagon/include/asm/pgtable.h | 4 ---- 2 files changed, 9 deletions(-)
Thanks!
Signature · 3 lines
Sent by an employee of the Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, hosted by The Linux Foundation