Re: RFC: COW for hugepages

From: Zoltan Menyhart
Date: Thu Apr 08 2004 - 06:12:42 EST


David Gibson wrote:

> > Why not just add a flag for a VMA telling if you want / do not want to
> > copy it on "fork()" ? E.g.:
> >
> > dup_mmap():
> >
> > for (mpnt = current->mm->mmap ; mpnt ; mpnt = mpnt->vm_next) {
> >
> > if (mpnt->vm_flags & VM_HUGETLB_DONT_COPY)
> > <do nothing>
> > }
> >
>
> Um.. why would that be useful?

I think there are 2 major cases:

- A big hugepage-using program creates threads to take advantage
of all of the CPUs => use clone2(...CLONEVM...), it works today.
- Another big hugepage-using program calling a little shell function
with system() => just skip the VMA of the huge page area in
do_fork():
copy_process():
copy_mm():
dup_mmap()
The child will have no copy of the huge page area. No problem, it will
exec() soon, and the stack, the usual data, the malloc()'ed data, etc.
are not in the huge page area => exec() will will work correctly.

I do not think we need a COW of the huge pages.

Regards,

Zoltán Menyhárt
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/