[ofa-general] librdmacm feature request

Sean Hefty mshefty at ichips.intel.com
Fri Nov 9 09:11:59 PST 2007


> What if each cm_id has its own fd?  Then they could be associated with a 
> channel, which is just an object that tracks which fds are in the 
> channel and uses select()/poll() on the entire set of fds for 
> rdma_get_cm_event().

Hmm... I'll give this some thought.  This might change the kernel ABI, 
but would affect the library ABI (which exposes the event channel fd), 
bumping the major version.  I don't know without doing some research how 
to handle new connection requests, but that should be possible.

> So moving a cm_id to another channel is simple and doesn't involve 
> moving the events since they will be queued on the cm_id's fd. You just 
> move the fd from one channel to another and events keep flowing as 
> normal...

We still need to handle the window where an event is pulled from one 
channel immediately before the cm_id is migrated to a new channel. 
Maybe we do this through documentation, but it would be nice to have the 
interface behave in a way that's easy to program to.  (I don't think an 
fd per cm_id makes this any more difficult.)

What I did finally find was a kernel call fget(fd) that at least seems 
to be usable for what I need.

- Sean



More information about the general mailing list