[openib-general] RFC userspace CMA

Sean Hefty mshefty at ichips.intel.com
Mon Oct 24 17:06:01 PDT 2005


I'm soliciting any comments that anyone might have on the general design for the 
userspace CMA before I get too far into the implementation.

- The API will match the kernel API for the most part.  The exception is that 
event handling will match other userspace libraries (get/ack event).

- There will be a single CMA device exported through /sys/class/infiniband.

- 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.

- The kernel CMA will expose a new call, rdma_init_qp_attr() to initialize QP 
attributes used to modify the state of the QP.  The call will be similar to the 
infiniband CM routine.  Use of this call is optional.  The CMA will 
automatically transition QPs created by rdma_create_qp().

- The uCMA will open devices for users and return them the device context with 
related events.  The uCMA will close the device if there are no rdma_cma_id's 
associated with it.

- To support device add, the uCMA will need a new verb's call: 
ibv_open_device_by_guid().  If a connection request occurs for a device that is 
not yet known by the uCMA, it will open the device.

Comments?

- Sean



More information about the general mailing list