[openib-general] [RFC] MAD API changes to fix DMA mapping issues

Sean Hefty mshefty at ichips.intel.com
Tue Oct 18 15:56:00 PDT 2005


Roland Dreier wrote:
> I'm still a little confused as to where the data buffer actually is.
> Is it pointed to by the struct ib_mad *mad member?  If so, it seems a
> little odd to make the pointer have type struct ib_mad *, since struct
> ib_mad is exactly 256 bytes long.

Yes - it's pointed to by struct ib_mad.  This is how ib_mad_send_buf worked 
before.  I can change the pointer to void*, but then it requires casting to 
ib_mad or ib_mad_hdr where ever it is used.  I've also considered changing it to 
a pointer to a union of the different MAD types.

> Also, how will it work to post a send for a very large RMPP message?
> The next member seems to be used to chain separate transactions
> together -- I don't see a way to have multiple buffers that all
> contain data for the same message.

I've given this some thought, but don't have a decent answer yet.  The next 
member is intended for separate transactions, but isn't used by any clients at 
this point.

I guess that we could either add an sg_list or a next_buffer pointer for this 
purpose, where next_buffer points to a structure that resembles a SGE.

- Sean



More information about the general mailing list