Re: [GIT PULL] please pull ummunotify

KOSAKI Motohiro
2009-09-11T06:11:36Z

Hi

Thank you explanation.

>
> > 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).

So, Can we assume OpenMPI user process doesn't such thing?

Parhaps, madvise(DONTFORK) or vfork() avoid this issue. but I'm not
sure all program in the world do that.

> 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).

Yup, that's very worth.