Re: [PATCH 2/4] mm: introduce mm_forbids_zeropage function

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>

On 10/22/2014 01:09 PM, Dominik Dingel wrote:
> Add a new function stub to allow architectures to disable for
> an mm_structthe backing of non-present, anonymous pages with
> read-only empty zero pages.
> 
> Signed-off-by: Dominik Dingel <dingel@xxxxxxxxxxxxxxxxxx>
> ---
>  include/linux/mm.h | 4 ++++
>  mm/huge_memory.c   | 2 +-
>  mm/memory.c        | 2 +-
>  3 files changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/include/linux/mm.h b/include/linux/mm.h
> index cd33ae2..0a2022e 100644
> --- a/include/linux/mm.h
> +++ b/include/linux/mm.h
> @@ -56,6 +56,10 @@ extern int sysctl_legacy_va_layout;
>  #define __pa_symbol(x)  __pa(RELOC_HIDE((unsigned long)(x), 0))
>  #endif
>  
> +#ifndef mm_forbids_zeropage
> +#define mm_forbids_zeropage(X)  (0)
> +#endif
> +
>  extern unsigned long sysctl_user_reserve_kbytes;
>  extern unsigned long sysctl_admin_reserve_kbytes;
>  
> diff --git a/mm/huge_memory.c b/mm/huge_memory.c
> index de98415..357a381 100644
> --- a/mm/huge_memory.c
> +++ b/mm/huge_memory.c
> @@ -805,7 +805,7 @@ int do_huge_pmd_anonymous_page(struct mm_struct *mm, struct vm_area_struct *vma,
>  		return VM_FAULT_OOM;
>  	if (unlikely(khugepaged_enter(vma, vma->vm_flags)))
>  		return VM_FAULT_OOM;
> -	if (!(flags & FAULT_FLAG_WRITE) &&
> +	if (!(flags & FAULT_FLAG_WRITE) && !mm_forbids_zeropage(mm) &&
>  			transparent_hugepage_use_zero_page()) {
>  		spinlock_t *ptl;
>  		pgtable_t pgtable;
> diff --git a/mm/memory.c b/mm/memory.c
> index 64f82aa..f275a9d 100644
> --- a/mm/memory.c
> +++ b/mm/memory.c
> @@ -2640,7 +2640,7 @@ static int do_anonymous_page(struct mm_struct *mm, struct vm_area_struct *vma,
>  		return VM_FAULT_SIGBUS;
>  
>  	/* Use the zero-page for reads */
> -	if (!(flags & FAULT_FLAG_WRITE)) {
> +	if (!(flags & FAULT_FLAG_WRITE) && !mm_forbids_zeropage(mm)) {
>  		entry = pte_mkspecial(pfn_pte(my_zero_pfn(address),
>  						vma->vm_page_prot));
>  		page_table = pte_offset_map_lock(mm, pmd, address, &ptl);
> 

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]