[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