[openib-general] return error when rdma_listen fails

Tom Tucker tom at opengridcomputing.com
Sun Aug 13 13:22:39 PDT 2006


On Wed, 2006-08-09 at 14:07 -0700, Sean Hefty wrote:
> Pete Wyckoff wrote:
> > Calling rdma_listen() on a cm_id bound to INADDR_ANY can fail, e.g.
> > with EADDRINUSE, but report no error back to the user.  This patch
> > fixes that by propagating the error.  Success occurs only if at
> > least one of the possibly multiple devices in the system was able to
> > listen.  In the case of multiple devices reporting errors on listen,
> > only the first error value is returned.  iwarp branch.
> 
> There's a problem if the listen is done before any devices have been added to 
> the system.  In this case, the listen should succeed.

I think this behavior is an artifact of the fact that the port spaces
are not integrated. In order to fix this properly, IMO we need to use
the Linux services that globally manage IP port spaces. This was
discussed on netdev as part of our efforts to get the netdev notifier
patch accepted.

In absence of integration, we end up with this very strange behavior
wherein a listen succeeds on one set of devices, but fails on another
set. This is almost certainly not what the user expects or intends.

How is the user supposed to interpret an error back from a listen
request when the listen succeeded on device, but failed on another?
Which device succeeded? Which failed? 

So all that blather aside, I think we should:
- Implement an API into the existing Linux IP port space 
  management database,
- Use these services in the RDMA CM
- Propose the API as a patch to the kernel on netdev.

BTW, I actually think that Shawn could fix the current behavior so that
it would be consistent within the RDMA_CM, however, we would still be
inconsistent between sockets and iWARP,  and IB/SDP and sockets.

Thoughts?

> 
> - Sean
> 
> _______________________________________________
> openib-general mailing list
> openib-general at openib.org
> http://openib.org/mailman/listinfo/openib-general
> 
> To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general
> 





More information about the general mailing list