[openib-general] MAD receive work completion
Roland Dreier
roland at topspin.com
Thu Mar 10 17:00:21 PST 2005
Sean> It could be done without an API change, likely changing 3-4
Sean> lines of code, with the result that the work completion
Sean> would be copied for all received MADs. (The copy could be
Sean> avoided with a more extensive change, but I would go with a
Sean> simpler solution for now.)
Sorry, you're right. I hadn't gone back and looked at the actual API,
and I didn't remember that ib_free_recv_mad() takes the whole
struct ib_mad_recv_wc (I thought it just took the ib_mad_recv_buf).
Sean> To me, it seems that the behavior isn't what a user would
Sean> expect given the current API. The ib_mad_recv_wc belongs to
Sean> the user until it is freed, but one of the fields in it
Sean> exists only during the callback. Is this the behavior that
Sean> we want?
I agree, this is rather ugly.
Now I'm not sure whether it makes sense to change the wc member of
struct ib_mad_recv_wc from a struct ib_wc * to just a struct ib_wc.
On the one hand it makes the API slightly cleaner, but on the other
hand it is an incompatible change that may limit the internal
implementation of handling MAD receives.
- Roland
More information about the general
mailing list