Re: locking user space memory in kernel

From: Eli Cohen
Date: Mon Mar 22 2004 - 08:14:52 EST


Roland Dreier wrote:

I don't think copying all the registered memory on fork() is feasible,
because it's going to kill performance (especially since exec() is
likely to immediately follow the fork() in the child). Also, there
may not be enough memory around to copy everything.



Suppose a new vma flag is introduced, VM_NOCOW and an API to apply this flag on a range of addreses, splitting or unifying vmas as necessary. A driver which registers memory with hardware would call this function. When fork takes place, the ptes of the parent belonging to such vmas will not be changed to read only thus they will not undergo COW. The kernel will copy the first and last pages of theses vmas to the child. All the pages in between will be marked read only and will undergo COW when written to. One problem would be that that child can read pages of the parent after the parent modifies them but that could be avoided if the address space of the child does not inherit the range of the moddle pages. ???
Eli
-
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/