[ofa-general] Re: [RFC][PATCH] last wqe event handler patch
Shirley Ma
xma at us.ibm.com
Wed Jun 25 13:01:50 PDT 2008
Roland Dreier <rdreier at cisco.com> wrote on 06/25/2008 11:47:50 AM:
> > @@ -237,9 +235,11 @@ static void ipoib_cm_rx_event_handler(struct
> ib_event *event, void *ctx)
> > return;
> >
> > spin_lock_irqsave(&priv->lock, flags);
> > - list_move(&p->list, &priv->cm.rx_flush_list);
> > - p->state = IPOIB_CM_RX_FLUSH;
> > - ipoib_cm_start_rx_drain(priv);
> > + if (p->state == IPOIB_CM_RX_LIVE) {
> > + list_move(&p->list, &priv->cm.rx_flush_list);
> > + p->state = IPOIB_CM_RX_FLUSH;
> > + ipoib_cm_start_rx_drain(priv);
> > + }
> > spin_unlock_irqrestore(&priv->lock, flags);
>
> Can you explain this change a little more? It seems quite likely that
> we would get last WQE reached events for other states, such as
> IPOIB_CM_RX_ERROR coming from ipoib_cm_dev_stop(), and I don't see how
> things work if we make this change.
>
> - R.
Hello Roland,
If it's already in ERROR status, it will be processed through
rx_error_list. In the case of ipoib_cm_dev_stop(), it will wait for 5 * HZ
to be drained and then put into reap_list. In the case of IPoIB running
status, I put a 60 * HZ timer for drain in the stale connection release
patch.
Thanks
Shirley
More information about the general
mailing list