Re: [PATCH v2 1/2] iWARP Connection Manager.

From: Steve Wise
Date: Tue Jun 13 2006 - 16:33:23 EST


<snip>

> > > +static void cm_event_handler(struct iw_cm_id *cm_id,
> > > + struct iw_cm_event *iw_event)
> > > +{
> > > + struct iwcm_work *work;
> > > + struct iwcm_id_private *cm_id_priv;
> > > + unsigned long flags;
> > > +
> > > + work = kmalloc(sizeof(*work), GFP_ATOMIC);
> > > + if (!work)
> > > + return;
> >
> > This allocation _will_ fail sometimes. The driver must recover from it.
> > Will it do so?
>
> Er...no. It will lose this event. Depending on the event...the carnage
> varies. We'll take a look at this.
>

This behavior is consistent with the Infiniband CM (see
drivers/infiniband/core/cm.c function cm_recv_handler()). But I think
we should at least log an error because a lost event will usually stall
the rdma connection.

> >
> > > +EXPORT_SYMBOL(iw_cm_init_qp_attr);
> >
> > This file exports a ton of symbols. It's usual to provide some justifying
> > commentary in the changelog when this happens.
>
> This module is a logical instance of the xx_cm where xx is the transport
> type. I think there is some discussion warranted on whether or not these
> should all be built into and exported by rdma_cm. One rationale would be
> that the rdma_cm is the only client for many of these functions (this
> being a particularly good example) and doing so would reduce the export
> count. Others would be reasonably needed for any application (connect,
> etc...)
>

Transport-dependent ULPs, in theory, are able to use the
transport-specific CM directly if they don't wish to use the RDMA CM. I
think that's the rationale for have the xx_cm modules seperate from the
rdma_cm module and exporting the various functions.

> All that said, we'll be sure to document the exported symbols in a
> follow-up patch.
>

I'll add commentary explaining this.

Steve.

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