[ofa-general] verbs abi_compat
Jimmy Hill
jimmy at hillraiser.com
Thu May 10 15:33:08 PDT 2007
>
> abi_compat has nothing to do with __ibv_alloc_pd vs. __ibv_alloc_pd_1_0.
> Rather, that choice is made based on whether your app is linked
> against the IBVERBS_1.1 or IBVERBS_1.0 ABI. If you link against the
> new library, you should get all IBVERBS_1.1 symbols; if you link
> against libibverbs 1.0, you should get all IBVERBS_1.1 symbols.
>
> Your problem might be that your app is getting __ibv_alloc_pd_1_0, but
> it gets __ibv_open_device instead of __ibv_open_device_1_0 so the
> context passed into __ibv_alloc_pd_1_0 is wrong. Are you possibly
> relinking only part of your app or something?
>
In my makefile I was linking against ibverbs (libibverbs.so.1) and rdmacm (librdmacm.so.1). In the code, I create an RDMA CM ID and was using the context out of it to create my other IB resources (e.g., PDs, etc.). (long story why this is necessary but suffice it to say doing something similar to the uDAPL implementation). I initially thought I had a compatibility issue between the ibverbs I was linking against compared to the ibverbs the rdmacm was using. But, there was only one copy of each on my system. But, that is what pushed me down the abi_compat stuff, etc. Turns out, another module in my exe was linking with the DAT library...that apparently pulled in the 1.0 verbs and thus the compat stuff. I removed the reference to the DAT library and now my context from the RDMA CM ID gets me to the correct verbs. Thanks for your help!
More information about the general
mailing list