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 from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html