MIPS: Add a CONFIG_FORCE_MAX_ZONEORDER Kconfig option.

Message ID 1286833965-27484-1-git-send-email-ddaney@caviumnetworks.com
State Accepted
Delegated to: Ralf Baechle
Headers show

Commit Message

David Daney Oct. 11, 2010, 9:52 p.m.
For huge page support with base page size of 16K or 32K, we have to
increase the MAX_ORDER so that huge pages can be allocated.

Signed-off-by: David Daney <ddaney@caviumnetworks.com>
---
 arch/mips/Kconfig |   22 ++++++++++++++++++++++
 1 files changed, 22 insertions(+), 0 deletions(-)

Comments

root Dec. 16, 2010, 6:09 p.m. | #1
On Mon, Oct 11, 2010 at 02:52:45PM -0700, David Daney wrote:

> For huge page support with base page size of 16K or 32K, we have to
> increase the MAX_ORDER so that huge pages can be allocated.

I don't think a user should have to configure obscure constants like
this but for the time being this will have to suffice.  Applied.

Thanks,

  Ralf

Patch

diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index fbaf08e..05f90d6 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -1596,6 +1596,28 @@  config PAGE_SIZE_64KB
 
 endchoice
 
+config FORCE_MAX_ZONEORDER
+	int "Maximum zone order"
+	range 13 64 if SYS_SUPPORTS_HUGETLBFS && PAGE_SIZE_32KB
+	default "13" if SYS_SUPPORTS_HUGETLBFS && PAGE_SIZE_32KB
+	range 12 64 if SYS_SUPPORTS_HUGETLBFS && PAGE_SIZE_16KB
+	default "12" if SYS_SUPPORTS_HUGETLBFS && PAGE_SIZE_16KB
+	range 11 64
+	default "11"
+	help
+	  The kernel memory allocator divides physically contiguous memory
+	  blocks into "zones", where each zone is a power of two number of
+	  pages.  This option selects the largest power of two that the kernel
+	  keeps in the memory allocator.  If you need to allocate very large
+	  blocks of physically contiguous memory, then you may need to
+	  increase this value.
+
+	  This config option is actually maximum order plus one. For example,
+	  a value of 11 means that the largest free memory block is 2^10 pages.
+
+	  The page size is not necessarily 4KB.  Keep this in mind
+	  when choosing a value for this option.
+
 config BOARD_SCACHE
 	bool