[ewg] Sharing Infiniband connection with forked child

Woodruff, Robert J robert.j.woodruff at intel.com
Thu Jan 13 16:00:37 PST 2011


No. If you call fork()/exec(), the new process would need
To re-establish a new connection, not like sockets where
an FD can be inherited.

-----Original Message-----
From: Greg Kerr [mailto:kerr.g at husky.neu.edu] 
Sent: Thursday, January 13, 2011 3:58 PM
To: Woodruff, Robert J
Cc: ewg at lists.openfabrics.org; Kapil Arya
Subject: Re: [ewg] Sharing Infiniband connection with forked child

This is really helpful, thank you.

Out of curiosity, do you know, if I call exec() can the new process still 
access the opened connection? Obviously any data structures setup (such as an 
ibv_device or ibv_context) would be destroyed from memory, but perhaps I could 
still access the connection somehow or maybe I serialized the old structures.

Thanks

On Thursday, January 13, 2011 06:45:16 pm Woodruff, Robert J wrote:
> Greg wrote,
> 
> >I've been working with Infiniband recently and am relatively unfamiliar
> >with the technology. I was hoping someone on this list could answer a
> >question for me.
> >
> >When an Infiniband connection is established between a client and
> >server, when  the client fork()s into a child process, can the child
> >process share the existing connection with the parent process
> >(as is the case with shared sockets)?
> 
> No. that is not allowed. The child can create new resources and
> establish it's own communication, but it cannot inherit the parent's
> connection.

-- 
Greg Kerr



More information about the ewg mailing list