[ofw] patch: [ibbus] Add A new function to IBAL that allows one to create a multicast group without attaching a QP to it.

Tzachi Dar tzachid at mellanox.co.il
Tue Feb 15 13:45:01 PST 2011


Hi Sean,

I now see why you need the h_mcast as an output parameter. We will add this to the function, but I don't think we will add the cancel multicast on the first stage.

We will also see how we can track the user objects from the kernel.

Thanks
Tzachi

________________________________________
From: Hefty, Sean [sean.hefty at intel.com]
Sent: Tuesday, February 15, 2011 8:07 PM
To: Tzachi Dar; ofw at lists.openfabrics.org
Subject: RE: [ofw] patch: [ibbus] Add A new function to IBAL that allows one to create a multicast group without attaching a QP to it.

> 1) On ib_join_mcast( ...,  ib_mcast_handle_t *h_mcast); the h_mcast gets
> back to the user from the call back.
> I guess that there is no problem to return the h_mcast in the call itself
> but are we sure this has a good reason?

This allows the user to cancel the join operation without destroying everything by closing their al instance.  For example, after issuing a join, they can immediately respond to an SM change, reregister, or other event by freeing the join and issuing a new one.  Without this, handling those events becomes more difficult.

Hmm... on the Linux side, the multicast module reports those types of events against the join request.  The user can receive multiple (serialized) callbacks for a single join call.  How does ibal handle errors on a multicast group after a successful join?

> 2) " Personally, I'm fine requiring the caller to handle the cleanup
> (provided the kernel cleans up after user space)."
> Doesn't this has an influence on the API which would actually force us to
> have something else in the API (for example h_al) or something similar.

Not necessarily.  The user to kernel proxy code needs to associate the h_mcast with another object, such as the file, but that doesn't have to be in the kernel API.  The proxy code must free the multicast object when the file is closed.  You can look at the winverbs kernel cleanup code as an example.

- Sean


More information about the ofw mailing list