[openib-general] RFC userspace CMA

Sean Hefty mshefty at ichips.intel.com
Tue Oct 25 09:07:25 PDT 2005


Caitlin Bestler wrote:
>>- The kernel CMA will be modified to remove the requirement 
>>to use rdma_create_qp().  Users that want to allocate and 
>>manage their own QP states will be able to specify QP 
>>attributes (qpn, qp_type, srq) through the rdma_conn_param structure.
> 
> Why?

If the userspace CMA talks to the kernel CMA, then the kernel CMA cannot 
transition the QP.  There's not even a valid handle.  The alternative is to have 
the userspace CMA talk to userspace IB CM, SQ query, address translation modules.

A user of the kernel CMA can still call rdma_create_qp() and have the kernel CMA 
transition it for them.  The same is true for userspace applications.

> Why does the uCMA need to open HCAs? Why does it have to be
> anything other than a front-end to the kCMA?

The kernel CMA abstracts device addition/removal from the user.  To accomplish 
the same goals with the userspace CMA, the uCMA needs to open/close the device. 
    If the user opens and closes the device, then API changes are necessary.  I 
don't see any benefit for the user to open the device, since it requires users 
to search for devices based on some sort of identifier.

> I can see where a user-mode daemon might get a connection
> request that could only be answered with a QP on an device
> that it had not previolusly opened, and that opening that
> device based on information in the Connection Request would
> be useful -- but that still doesn't have the uCMA opening
> the device. More importantly, the problem can be solved 
> just as easily by having the listener listen only on rdma
> devices that it has already opened.

This results in the listen call operating on an RDMA device, rather than on an 
IP address, which is the intent of the API.

- Sean



More information about the general mailing list