[ofa-general] verbs abi_compat

Jimmy Hill jimmy at hillraiser.com
Wed May 9 21:08:01 PDT 2007



> -----Original Message-----
>
>  > Under what conditions is the field abi_compat of struct ibv_context
>  > set to non-zero? I'm encountering a situation where it is set
>  > whencoding to verbs on a clean OFED 1.2 install. Seems odd that it
>  > would be set since I suspected that it would only occur for verbs
>  > 1.0/1.1 compatibility.
>
> Are you sure it's being set?  I think most drivers just use malloc()
> to allocate the context structure so you could just be seeing
> uninitialized memory there.
>
> Anyway I'm not sure why you're looking at the field at all.  It's
> really just internal to libibverbs.  If you want to understand how
> things work, there's only one assignment to context->abi_compat in
> libibverbs, in src/cmd.c so it shouldn't be too hard to figure out
> (and add whatever tracing info you want).
>

It is set in that it is non-zero, but I agree, it has garbage in it...and
that's part of the problem. It is not being set in src/cmd.c, and has a
non-zero value. When I call ibv_alloc_pd, I'm ending up in
__ibv_alloc_pd_1_0 and that attempts to use context->real_context which is
non-zero garbage as well and I get a segmentation violation. The abi_compat
flag was what I thought was redirecting me into __ibv_alloc_pd_1_0 instead
of __ibv_alloc_pd (where it should be going).

So, maybe I asked the wrong question. Let me try a diff approach. What
determines if ibv_alloc_pd resolves to __ibv_alloc_pd_1_0 or __ibv_alloc_pd?
If I can find out what is redirecting my call to the "compat" code, maybe I
can stop it and resolve the problem.

Thanks for the response - I appreciate your help!




More information about the general mailing list