[openib-general] Re: [PATCHv2] kDAPL: remove DAT_RETURN

James Lentini jlentini at netapp.com
Fri May 13 11:35:59 PDT 2005


caitlin> DAT_RETURN serves two distinct purposes: it is an immediate return
caitlin> to a kernel specific caller, and it is a standardized error encoding for
caitlin> clients outside of the linux kernel (loadable modules and or proxied
caitlin> user consumers).
caitlin> 
caitlin> Even if the functional return to in-kernel clients is converted to comply
caitlin> with kernel coding conventions, the information currently encoded
caitlin> in the DAT_RETURN needs to be deliverable to DAPL clients that
caitlin> are outside of the linux kernel.

DAPL clients outside the linux kernel, userspace clients, should use 
the uDAPL API. No changes are being proposed for the uDAPL API.

caitlin> Therefore the current enums need to be retained, and there should
caitlin> be some mechanism for these precise diagnostics to be relayed
caitlin> to non-kernel clients. An external shim cannot do this *after*
caitlin> the information is lost by using a standard error return. (I am
caitlin> assuming that creating a list of error returns that encompass
caitlin> everything that DAT_RETURN *Can* encode is out of the
caitlin> question, there's a reason it's multi-layer now).

Many of the DAT_RETURN values are useful for debugging (e.g. the 
ability to say that parameter number 4 is invalid). However, I can't 
imagine a DAT API consumer that would actually provide error recovery 
code for each of the 22 major * 102 minor = 2244 different possible 
error values, let alone warning values, for every API call. I think 
that some of this information can be logged or obtained during 
debugging.

caitlin> One possibility would be to add an external_client_dat_return *
caitlin> out parameter that would allow a shim to restore the full
caitlin> DAT defined error code for non-kernel clients.

Adding an additional out parameter to every API function would clutter 
the interface. 

caitlin> On 5/12/05, Tom Duffy <tduffy at sun.com> wrote:
caitlin> > On Thu, 2005-05-12 at 11:50 -0400, James Lentini wrote:
caitlin> > > Thanks for the updated patch Tom. It is committed in revision 2316.
caitlin> > >
caitlin> > > Eventually we will need to remove our dat_return_* enums and replace
caitlin> > > our return values with errno values. Correct?
caitlin> > 
caitlin> > That is right.  This is just a first pass at cleaning it up.
caitlin> > 
caitlin> > -tduffy



More information about the general mailing list