Martin Buchholz wrote: > I did a little research. > > The overcommitment policy on Linux is configurable > http://lxr.linux.no/linux/Documentation/vm/overcommit-accounting > Of course, almost everyone will use the default "heuristic" policy, > and in this case the COW memory after fork() is subject to overcommit > accounting, which *may* cause the fork to fail.
Sure, it *may*, but I don't think it's at all common. > http://lkml.indiana.edu/hypermail/linux/kernel/0902.1/01777.html > If a solution using clone(CLONE_VM ...) can be made to work, > subprocess creation will be a little cheaper and significantly more > reliable. Maybe, but I think that needs to be measured before any changes are made. I'm not opposed to such a change that makes a real improvement, but I'm not convinced it will. As usual, I'm happy to be proved wrong. There may be a kernel bug in the case described in the mail above: it certainly should be possible to fork a 38 GB process on a system with 64 GB RAM. If so, I expect that this will be fixed long before any Java VM change makes it into production. Andrew.