Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

From: Gleb Natapov (glebn_at_[hidden])
Date: 2007-05-18 05:12:13

On Thu, May 17, 2007 at 02:35:02PM -0400, Patrick Geoffray wrote:
> Brian Barrett wrote:
> > On the other hand, since the MPI standard explicitly says you're not
> > allowed to call fork() or system() during the MPI application and
> Does it ? The MPI spec says that you should not access buffers that have
> been committed to MPI (pending asynchronous send or recv buffer for
> example). It does not care about page boundary and pinning side effects.
That is exactly what I am trying to achieve by proposed change. Child
will not be bale to touch memory that was committed to MPI in time of
fork(), but all other memory will be safe. This is not the case
currently with IB (even when registration cache is _not_ in use).

> The fork() problem is due to memory registration aggravated by
> registration cache. Memory registration in itself is a hack from the OS
> point of view, and you already know a lot about the various problems
> related to registration cache.
> The right way to fix the fork problem is to fix the memory registration
> problem in the OS itself. It's not going to happen anytime soon, so it
> requires another hack (forcing VM duplication of registered pages at
> fork time).