![]() | |||||||||||||
Messages in this thread |
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@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
| ||||||||||||
| Last update: 2005-03-22 13:02 [W:0.315 / U:0.040 seconds] ©2003-2008 Jasper Spaans | |||||||||||||