Re: [PATCH v3 10/28] IB/Verbs: Reform cm related part in IB-core cma

From: Jason Gunthorpe
Date: Mon Apr 13 2015 - 15:50:55 EST


On Mon, Apr 13, 2015 at 07:25:48PM +0000, Hefty, Sean wrote:
> > @@ -1037,17 +1033,13 @@ void rdma_destroy_id(struct rdma_cm_id *id)
> > mutex_unlock(&id_priv->handler_mutex);
> >
> > if (id_priv->cma_dev) {
> > - switch (rdma_node_get_transport(id_priv->id.device-
> > >node_type)) {
> > - case RDMA_TRANSPORT_IB:
> > + if (rdma_ib_or_iboe(id_priv->id.device, id_priv->id.port_num))
>
> A listen id can be associated with a device without being associated
> with a port (see the listen_any_list). Some other check is needed
> to handle this case. I guess the code could check the first port on
> the device (replace port_num with hardcoded value 1). Then we
> wouldn't be any more broken than the code already is. (The 'break'
> is conceptual, not practical.)

Hum. So, devices on a port must have some compatibility when it comes
to these invariants. It looks like all ports must have the same
iwarpyness, for multiple reasons.

Less clear is how rocee vs ib work within a device... Can you APM
between those two kinds of ports?

All these switches are so ugly :| Function pointers setup in
iw_/ib_create_cm_id would be a lot clearer and safer.

> This appears to be highlighting an architectural flaw in the iboe integration.

You mean iwarp?

Jason
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/