Skip to contentSkip to conversation

hexagon: CONFIG_PAGE_SIZE_1MB?

PATCH In review Paul Bolle 3 participants 5 messages May 17, 2014 – May 29, 2014 Qualcomm hexagon architecture

lore
Share & tools
lore

Paul Bolle

author
#0 lore raw

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

#1 lore raw
Quoted 4 lines · Paul Bolle

Richard,

0) There are two checks for CONFIG_PAGE_SIZE_1MB in Linux' hexagon code. But there's no Kconfig symbol PAGE_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

#2 lore raw
In reply to Paul Bolle
Quoted 55 lines · Paul Bolle

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__,\
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
author
#3 lore raw

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
index 93f5669b4aa1..7bcec3c0447c 100644
@@ -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
index d8bd54fa431e..861a993afb7e 100644
@@ -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
Acked-by on v1 1/1
#4 lore raw

Re: [PATCH] Hexagon: remove checks for CONFIG_PAGE_SIZE_1MB

Quoted 8 lines · Paul Bolle

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.

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