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

No idea

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

I noticed this too.  The if checks throughout the cma are becoming 
unmaintainable.  It may be cleaner if all devices adopted using the cm device 
function pointers.

> > This appears to be highlighting an architectural flaw in the iboe
> integration.
> 
> You mean iwarp?

I meant iboe.  Wildcard listens map to multiple listens, one per device.  The 
assumption being that all ports on the device are the same.  IBoE changed that 
assumption.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to