On 5/13/08, Sean Hefty <[EMAIL PROTECTED]> wrote:
This will race with other user calls. I've found it fairly difficult for
> the
> rdma_cm to call back into its own API and avoid racing with the user
> trying to
> destroy the cm_id. None of the APIs are coded to allow calling them
> simultaneously with destroy.
I see.
> A better solution for this may be for the rdma_cm to simply notify the
> user that
> the IP mapping for their RDMA device has changed. The user can then
> disconnect,
> with the appropriate synchronization, if they want their RDMA connection
> to
> follow the IP address.
Yes, this is possible, I have tried to implement it at the rdma-cm to avoid
having each ULP do it at their code, if you think its practially impossible
for the rdma-cm to call its own API, I will can change this into delivering
disconnected event.
(If I understood correctly, the reason for this is to allow failing back to
> a repaired port.)
indeed, this is a possible use case.
>+ list_for_each_entry(cma_dev, &dev_list, list)
> >+ list_for_each_entry(id_priv, &cma_dev->id_list, list) {
> >+ dev_addr = &id_priv->id.route.addr.dev_addr;
> >+ if (!memcmp(dev_addr->src_netdev_name, ndev->name,
> IFNAMSIZ) &&
> >+ memcmp(dev_addr->src_dev_addr,
> ndev->dev_addr,ndev->addr_len)
> >+ if (id_priv->ha_mode ==
> RDMA_ALIGN_WITH_NETDEVICE)
> >+
> schedule_work(&id_priv->ha_work);
>
> As Roland mentioned, this is racy in the areas he pointed out. This will
> take
> some thought to handle correctly.
>
OK, I will try to improve things here, any hints/directions would be very
much appreciated...
Or.
_______________________________________________
general mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general
To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general