[openib-general] makiing ibverb.h transport neutral -- 2nd draft

James Lentini jlentini at netapp.com
Thu Jul 14 13:06:27 PDT 2005



On Wed, 13 Jul 2005, Sean Hefty wrote:

> Caitlin Bestler wrote:
>> So would you favor changing the signature to match the largest
>> size, with  comment to the effect that you *could* use a cast
>> and a smaller object but only if you are sure.
>
> I haven't decided on what might be the best approach for this call yet, I'd 
> just like to ensure that the API provides the best performance.  If QPs and 
> CQs are both transport specific, I'm wondering now if verbs is the best place 
> to abstract RDMA functionality, or if it will result in losing some of the 
> details provided by the underlying architecture.
>
> There doesn't seem to be much to iwarp_verbs.h.  Assuming that the API is 
> complete, iWarp seems to use a subset of the structures defined by IB.  Why 
> couldn't the current data structures just be renamed from ib_blah to 
> rdma_blah, with notes that some fields apply only to IB?
>
> Some of the data structures already have fields that only apply for specific 
> completion types, work requests, QPs, etc.  So, marking them for IB only 
> doesn't seem like that much of a stretch, and transport neutral code would 
> need to allocate the space anyway.  This way we would only need to change a 
> few enums and move IB specific functions to a new file.

A "generic" consumer would never need to fill in such fields, 
correct?

>> I can see the danger of someone just using 'rdma_wc', so flipping
>> the naming convention would definitely make sense.
>> 
>> As to the size. Is there a size smaller than 256 that crosses
>> over into a significantly safer stack allocation but is still
>> *very* safe in terms of 'sure to be big enough'? Keep in mind
>> that 'struct sockaddr' has problems precisely because 'biggest
>> possible address' turned out to be too small.
>
> Work completions are used in speed path operations, so should be optimized 
> for caching, retrieving multiple completions, etc., versus optimizing it for 
> transport neutral code.  struct rdma_wc_storage isn't used anywhere in the 
> API, so why not make that a union of struct ib_wc and struct iwarp_wc?  (Of 
> course this leads us back to unions if swapping the naming convention...)
>
> - Sean
>
> _______________________________________________
> openib-general mailing list
> openib-general at openib.org
> http://openib.org/mailman/listinfo/openib-general
>
> To unsubscribe, please visit 
> http://openib.org/mailman/listinfo/openib-general
>



More information about the general mailing list