On 01/22, Oleg Nesterov wrote: > > Can't we simply add VM_NOHUGEPAGE into ->def_flags? See the (untested) > patch below, on top of this series.
And perhaps the patch below makes sense as a separate change, I dunno. ------------------------------------------------------------------------------ Subject: [PATCH] mm: introduce VM_INIT_DEF_MASK mm_init() always sets new_mm->def_flags = 0. We might want to inherit some bits like we do with mm->flags. Add the new VM_INIT_DEF_MASK (currently zero) which acts like MMF_INIT_MASK for ->def_flags. --- include/linux/mm.h | 2 ++ kernel/fork.c | 11 ++++++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/include/linux/mm.h b/include/linux/mm.h index 1cedd00..0a340c9 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -167,6 +167,8 @@ extern unsigned int kobjsize(const void *objp); */ #define VM_SPECIAL (VM_IO | VM_DONTEXPAND | VM_PFNMAP) +#define VM_INIT_DEF_MASK 0 + /* * mapping from the currently active vm_flags protection bits (the * low four bits) to a page protection mask.. diff --git a/kernel/fork.c b/kernel/fork.c index b84bef7..f6d020b 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -529,8 +529,6 @@ static struct mm_struct *mm_init(struct mm_struct *mm, struct task_struct *p) atomic_set(&mm->mm_count, 1); init_rwsem(&mm->mmap_sem); INIT_LIST_HEAD(&mm->mmlist); - mm->flags = (current->mm) ? - (current->mm->flags & MMF_INIT_MASK) : default_dump_filter; mm->core_state = NULL; atomic_long_set(&mm->nr_ptes, 0); memset(&mm->rss_stat, 0, sizeof(mm->rss_stat)); @@ -538,8 +536,15 @@ static struct mm_struct *mm_init(struct mm_struct *mm, struct task_struct *p) mm_init_aio(mm); mm_init_owner(mm, p); - if (likely(!mm_alloc_pgd(mm))) { + if (current->mm) { + mm->flags = current->mm->flags & MMF_INIT_MASK; + mm->def_flags = current->mm->def_flags & VM_INIT_DEF_MASK; + } else { + mm->flags = default_dump_filter; mm->def_flags = 0; + } + + if (likely(!mm_alloc_pgd(mm))) { mmu_notifier_mm_init(mm); return mm; } -- 1.5.5.1 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/