[openib-general] Re: Re: RFC: e2e credits

Sean Hefty mshefty at ichips.intel.com
Tue Mar 7 13:58:06 PST 2006


Michael S. Tsirkin wrote:
>>The only way I can find for consumers to make use of this value is for them 
>>to change their algorithms based on whether flow control is supported or 
>>not.  But it's not clear to me how the consumer determines what value to 
>>set flow control to.
> 
> Oh, if you always post receive WQE before remote side posts send WQEs, then
> you can disable flow control. SDP does this.

But as you're trying to address, there's no way to disable flow control.  I.e. 
this value doesn't get associated with the QP.  So, currently, the only use that 
this value has is for the ULP to change its algorithm based on whether or not 
it's set.

My interpretation of the spec is that the value carried in the CM message 
applies to the HCA as a whole, such that all REQs originating from the same HCA 
should have the same value.  But I don't see how to determine what that value 
should be.

>>>>9.7.7.2.4 
>>>>
>>>>Even a responder which does generate end-to-end credits may choose
>>>>to send the 'invalid' code in the AETH.
> 
> 
> So an application can't really depend on the e2e credits for correctness -
> its just an optimization hint.

Okay - I'm confused now.  Why have this value at all?  How does the statement 
above match up with C9-150.2.1: For QPs that are not associated with an SRQ, 
each HCA receive queue shall generate end-to-end flow control credits?

> Anyway, sine ULPs don't seem to need it, another approach would be an option to
> disable these flow controls globally, and probably add a module option to enable
> them back just in case.  That's much simpler, isn't it?
> 
> What do you think?

Examining the spec, it looks like flow control is defined as a per HCA feature. 
  Do we need an ib_device_cap_flag to indicate if flow control is enabled or not 
on the device?

- Sean






More information about the general mailing list