[dm-devel] [PATCH] Handle error paths.

Konrad Rzeszutek konrad at virtualiron.com
Thu Jan 8 19:25:03 UTC 2009


On memory constrained systems, where a large amount of LUNs are
assigned (say more enough to make multipath blossom to 70% of available
memory space) forking would fail returning -ENOMEM. The kernel has enough
free pages for the new process, but when it clones the new child process
from the parent process space it accounts the parent process heap space
against the child (which counts for more pages than there are free pages).

Using vfork passes a flag to clone which will inhibit this calculation
and instead check for free pages. The danger in using vfork is that the child
could use the values from the parent, but fortunatly we don't do that and
immediately call 'execve' swipping the process space free.





More information about the dm-devel mailing list