Re: rdma-core new/old compatability

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Feb 27, 2020 at 01:11:13PM +0000, Michal Kalderon wrote:
> Hi Kamal, Jason, 
> 
> Running a version of ibv_devinfo compiled against an old rdma-core (ibv_devinfo from libibverbs-utils-16.2-3-fc28.x86_64 )
> failed to run with rdma-core release 28.0 for qedr.
> 
> The patch that caused this is commit c2841076
> https://github.com/linux-rdma/rdma-core/commit/c28410765bdfe5cbed3cb2cdb1584eac3941469c#diff-8da8bc8b2790169de557d5dee83a278e
> c28410765bdf 
> 
> libibverbs: Fix incorrect return code ...
> 
> The proper return code is EOPNOTSUPP when an operation is not supported.
> 
> Signed-off-by: Kamal Heib <kamalheib1@xxxxxxxxx>
> 
> The reason it failed is because qedr doesn't have a query_device_ex
> callback, so vctx->query_device_ex returns EOPNOTSUPP, and old
> libibverbs Compares the return code to ENOSYS

This is surprising and unfortunate

> I think applications compiled against old rdma-core should continue
> to run on new ones as well.  Can this commit be reverted?

I would prefer to only revert the little bit that might be needed for
compatability.

Perhaps we should change the dummy function to implement
query_device_ex for all providers? Zeroing the extended data should be
sufficient I think.

Unfortunately we are changing return codes inadvertantly quite often,
and the providers tend to use different codes.

Jason



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux