On Thu, Aug 22, 2019 at 05:03:15PM +0000, Jason Gunthorpe wrote: > On Thu, Aug 22, 2019 at 09:58:42AM -0700, Ira Weiny wrote: > > > Add to your list "how does destruction of a MR in 1 process get communicated to > > the other?" Does the 2nd process just get failed WR's? > > IHMO a object that has been shared can no longer be asynchronously > destroyed. That is the whole point. A lkey/rkey # alone is inherently > unsafe without also holding a refcount on the MR. You meant to say "can no longer be synchronously destroyed", right? > > > I have some of the same concerns as Doug WRT memory sharing. FWIW I'm not sure > > that what SCM_RIGHTS is doing is safe or correct. > > > > For that work I'm really starting to think SCM_RIGHTS transfers should be > > blocked. > > That isn't possible, SCM_RIGHTS is just some special case, fork(), > exec(), etc all cause the same situation. Any solution that blocks > those is a total non-starter. > > > It just seems wrong that Process B gets references to Process A's > > mm_struct and holds the memory Process A allocated. > > Except for ODP, a MR doesn't reference the mm_struct. It references > the pages. It is not unlike a memfd. > > Jason