Re: locking user space memory in kernel

From: Manfred Spraul
Date: Mon Mar 22 2004 - 14:36:30 EST


Eli Cohen wrote:

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.

Something like that. But it should be hidden within a suitable abstraction. get_user_pages and then put_page is not stateful enough. Actually it's fundamentally broken for platform that need cache flush calls. create_page_mapping/free_page_mapping, or something like that.

And I still think that the initial implementation should copy the affected pages within fork() - it might be slow, but at least it's simple and correct. _If_ it's too slow, then it can be fixed later.

--
Manfred



-
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/