Messages in this thread Patch in this message |  | | | Date | Thu, 9 Jul 2009 12:27:02 +0900 | | From | KAMEZAWA Hiroyuki <> | | Subject | [PATCH 1/2] ZERO PAGE config |
| |
Only x86 config is inculded because I can test only x86... == From: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Kconfig for using ZERO_PAGE. Using ZERO_PAGE or not is depends on - arch has pte_special() or not. - arch allows to use ZERO_PAGE or not.
In this patch, generic-config for /mm and arch-specific config for x86 is added. Other archs ? AFAIK, powerpc and s390 has pte_special().
Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> --- arch/x86/Kconfig | 3 +++ mm/Kconfig | 15 +++++++++++++++ 2 files changed, 18 insertions(+) Index: zeropage-trialv3/mm/Kconfig =================================================================== --- zeropage-trialv3.orig/mm/Kconfig +++ zeropage-trialv3/mm/Kconfig @@ -214,6 +214,21 @@ config HAVE_MLOCKED_PAGE_BIT config MMU_NOTIFIER bool +config SUPPORT_ANON_ZERO_PAGE + bool "use anon zero page" + default y if ARCH_SUPPORT_ANON_ZERO_PAGE + help + In anonymous private mapping (MAP_ANONYMOUS and /dev/zero), a read + page fault will allocate a new zero-cleared page. If the first page + fault is write, allocating a new page is necessary. But if it is + read, we can use ZERO_PAGE until a write comes. If you set this to y, + the kernel use ZERO_PAGE and delays allocating new memory in private + anon mapping until the first write. If applications use large mmap + and most of accesses are read, this reduces memory usage and cache + usage to some extent. To support this, your architecture should have + _PAGE_SPECIAL bit in pte. And this will be no help to cpu cache if + the arch's cache is virtually tagged. + config DEFAULT_MMAP_MIN_ADDR int "Low address space to protect from user allocation" default 4096 Index: zeropage-trialv3/arch/x86/Kconfig =================================================================== --- zeropage-trialv3.orig/arch/x86/Kconfig +++ zeropage-trialv3/arch/x86/Kconfig @@ -161,6 +161,9 @@ config ARCH_HIBERNATION_POSSIBLE config ARCH_SUSPEND_POSSIBLE def_bool y +config ARCH_SUPPORT_ANON_ZERO_PAGE + def_bool y + config ZONE_DMA32 bool default X86_64
|  |