From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from d01relay04.pok.ibm.com (d01relay04.pok.ibm.com [9.56.227.236]) by e3.ny.us.ibm.com (8.13.8/8.12.11) with ESMTP id k7SFiGxd018548 for ; Mon, 28 Aug 2006 11:44:16 -0400 Received: from d01av02.pok.ibm.com (d01av02.pok.ibm.com [9.56.224.216]) by d01relay04.pok.ibm.com (8.13.6/8.13.6/NCO v8.1.1) with ESMTP id k7SFiG9E238060 for ; Mon, 28 Aug 2006 11:44:16 -0400 Received: from d01av02.pok.ibm.com (loopback [127.0.0.1]) by d01av02.pok.ibm.com (8.12.11.20060308/8.13.3) with ESMTP id k7SFiGBf025559 for ; Mon, 28 Aug 2006 11:44:16 -0400 Subject: [RFC][PATCH 4/7] mips generic PAGE_SIZE From: Dave Hansen Date: Mon, 28 Aug 2006 08:44:15 -0700 References: <20060828154413.E05721BD@localhost.localdomain> In-Reply-To: <20060828154413.E05721BD@localhost.localdomain> Message-Id: <20060828154415.59858A5A@localhost.localdomain> Sender: owner-linux-mm@kvack.org Return-Path: To: linux-mm@kvack.org Cc: Dave Hansen List-ID: This is the mips portion to convert it over to the generic PAGE_SIZE framework. * remove mips-specific Kconfig menu * add mips default of 4k pages to mm/Kconfig * replace mips Kconfig menu with plain bool variables to preserve dependencies on specific CPUs. Add to mm/Kconfig Signed-off-by: Dave Hansen --- threadalloc-dave/include/asm-mips/page.h | 23 ---------------- threadalloc-dave/arch/mips/Kconfig | 43 +++++-------------------------- threadalloc-dave/mm/Kconfig | 7 ++--- 3 files changed, 13 insertions(+), 60 deletions(-) diff -puN include/asm-mips/page.h~mips include/asm-mips/page.h --- threadalloc/include/asm-mips/page.h~mips 2006-08-25 11:34:21.000000000 -0700 +++ threadalloc-dave/include/asm-mips/page.h 2006-08-25 11:34:25.000000000 -0700 @@ -9,6 +9,7 @@ #ifndef _ASM_PAGE_H #define _ASM_PAGE_H +#include #ifdef __KERNEL__ @@ -16,25 +17,6 @@ #endif -/* - * PAGE_SHIFT determines the page size - */ -#ifdef CONFIG_PAGE_SIZE_4KB -#define PAGE_SHIFT 12 -#endif -#ifdef CONFIG_PAGE_SIZE_8KB -#define PAGE_SHIFT 13 -#endif -#ifdef CONFIG_PAGE_SIZE_16KB -#define PAGE_SHIFT 14 -#endif -#ifdef CONFIG_PAGE_SIZE_64KB -#define PAGE_SHIFT 16 -#endif -#define PAGE_SIZE (1UL << PAGE_SHIFT) -#define PAGE_MASK (~((1 << PAGE_SHIFT) - 1)) - - #ifdef __KERNEL__ #ifndef __ASSEMBLY__ @@ -130,9 +112,6 @@ typedef struct { unsigned long pgprot; } #endif /* !__ASSEMBLY__ */ -/* to align the pointer to the (next) page boundary */ -#define PAGE_ALIGN(addr) (((addr) + PAGE_SIZE - 1) & PAGE_MASK) - #define __pa(x) ((unsigned long) (x) - PAGE_OFFSET) #define __va(x) ((void *)((unsigned long) (x) + PAGE_OFFSET)) diff -puN arch/mips/Kconfig~mips arch/mips/Kconfig --- threadalloc/arch/mips/Kconfig~mips 2006-08-25 11:34:21.000000000 -0700 +++ threadalloc-dave/arch/mips/Kconfig 2006-08-25 11:34:25.000000000 -0700 @@ -1432,47 +1432,20 @@ config 64BIT endchoice -choice - prompt "Kernel page size" - default PAGE_SIZE_4KB - -config PAGE_SIZE_4KB - bool "4kB" - help - This option select the standard 4kB Linux page size. On some - R3000-family processors this is the only available page size. Using - 4kB page size will minimize memory consumption and is therefore - recommended for low memory systems. - -config PAGE_SIZE_8KB - bool "8kB" +config MIPS_PAGE_SIZE_8KB + def_bool y depends on EXPERIMENTAL && CPU_R8000 - help - Using 8kB page size will result in higher performance kernel at - the price of higher memory consumption. This option is available - only on the R8000 processor. Not that at the time of this writing - this option is still high experimental; there are also issues with - compatibility of user applications. -config PAGE_SIZE_16KB - bool "16kB" +config MIPS_PAGE_SIZE_16KB + def_bool y depends on !CPU_R3000 && !CPU_TX39XX - help - Using 16kB page size will result in higher performance kernel at - the price of higher memory consumption. This option is available on - all non-R3000 family processors. Note that you will need a suitable - Linux distribution to support this. -config PAGE_SIZE_64KB - bool "64kB" +config MIPS_PAGE_SIZE_64KB + def_bool y depends on EXPERIMENTAL && !CPU_R3000 && !CPU_TX39XX - help - Using 64kB page size will result in higher performance kernel at - the price of higher memory consumption. This option is available on - all non-R3000 family processor. Not that at the time of this - writing this option is still high experimental. -endchoice +config ARCH_GENERIC_PAGE_SIZE + def_bool y config BOARD_SCACHE bool diff -puN mm/Kconfig~mips mm/Kconfig --- threadalloc/mm/Kconfig~mips 2006-08-25 11:34:24.000000000 -0700 +++ threadalloc-dave/mm/Kconfig 2006-08-25 11:34:25.000000000 -0700 @@ -6,6 +6,7 @@ choice prompt "Kernel Page Size" depends on ARCH_GENERIC_PAGE_SIZE + default PAGE_SIZE_4KB if MIPS default PAGE_SIZE_8KB if SPARC64 default PAGE_SIZE_16KB if IA64 config PAGE_SIZE_4KB @@ -26,13 +27,13 @@ config PAGE_SIZE_4KB Otherwise, choose 4KB. config PAGE_SIZE_8KB bool "8KB" - depends on IA64 || SPARC64 + depends on IA64 || SPARC64 || MIPS_PAGE_SIZE_8KB config PAGE_SIZE_16KB bool "16KB" - depends on IA64 + depends on IA64 || MIPS_PAGE_SIZE_16KB config PAGE_SIZE_64KB bool "64KB" - depends on (IA64 && !ITANIUM) || SPARC64 + depends on (IA64 && !ITANIUM) || SPARC64 || MIPS_PAGE_SIZE_64KB config PAGE_SIZE_512KB bool "512KB" depends on SPARC64 _ -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org