On 09/04/2015 05:32 PM, Jason Gunthorpe wrote: > On Fri, Sep 04, 2015 at 05:17:38PM -0400, Doug Ledford wrote: >> + /* >> + * In order to maintain backward/forward binary compatibility >> + * with libmlx4-1.0.6, which has the original version of the >> + * flow steering patches, we need to set the two >> + * ABI_compat_placeholder entries to match the driver >> + * set flow entries. This is because, in the specific instance >> + * of using libmlx4-1.0.6 with the fixed version of >> + * libibvberbs, the ibv_create_flow inline function already >> + * compiled into libmlx4-1.0.6 will be loooking in the >> + * ABI_placeholder spots for the function pointer to the >> + * create and destroy flow verbs. >> */ > > This isn't quite the right comment, it has very little to do with mlx, > ibv_create_flow is the user entry point, the above applies to > everything linked to ibverbs. You're right. I'll correct that. > My suggestion was to not change the ibverbs->user ABI at all and just > mangle the driver side, ie move the ABI_placeholder to what was drv_ > instead of lib_. As you pointed out, this doesn't make the entire matrix of old/new driver/libibverbs/app work. I can think of two things that would be ugly about doing it this way if we wanted to make that matrix fully operational. With the way I did it, things are clean in the new driver and mostly clean in the new libibverbs, and the full matrix works. > Can't see anything wrong with it this way, off hand, other than the > comment. Thanks for looking at it ;-) -- Doug Ledford <dledford@xxxxxxxxxx> GPG KeyID: 0E572FDD
Attachment:
signature.asc
Description: OpenPGP digital signature