[ofa-general] Re: [GIT PULL] please pull ummunotify

Roland Dreier
2009-09-11T06:03:25Z

> Can I this version already solved fork() + COW issue? if so, could you
> please explain what happen at fork. Obviously RDMA point to either parent
> or child page, not both. but Corrent COW rule is, first touch process
> get copyed page and other process still own original page. I think it's
> unpecected behavior form RDMA.

No, ummunotify doesn't really help that much with fork() + COW. If a
parent forks and then touches pages that are actively in use for RDMA,
then of course they get COWed and RDMA goes to the wrong memory (from
the point of view of the parent).

ummunotify does deal with the case where a process forks and touches
memory that was used for RDMA but no longer is -- in that case, the MPI
library has a chance to flush its registration cache because it will get
a ummunotify event invalidating the old mapping.

The real purpose of ummunotify is to allow MPI implementations to cache
registrations, even when the MPI library is used with an application
that does funny things for allocation (mmap()/munmap() or brk(), etc).

- Roland