[openib-general] [PATCH 1/7] IB/ipath - performance improvements via mmap of queues

ralphc at pathscale.com ralphc at pathscale.com
Mon Aug 14 10:14:37 PDT 2006


>  >  int ibv_cmd_resize_cq(struct ibv_cq *cq, int cqe,
>  > -		      struct ibv_resize_cq *cmd, size_t cmd_size);
>  > +		      struct ibv_resize_cq *cmd, size_t cmd_size,
>  > +		      struct ibv_resize_cq_resp *resp, size_t resp_size);
>
> We can't make this change without a little more work -- as it stands
> this makes it impossible to have a low-level driver that works with
> both libibverbs 1.0 and 1.1, since there doesn't seem to be any
> autoconf way to check the number of parameters a function takes.

What we really need is a version number for the device library
plug-in to libibverbs.so interface verses the existing kernel
device driver to plug-in or application to libibverbs.so version.

> I see two ways forward: either at a new ibv_cmd_resize_cq_resp()
> function (as you did originally), or add something like
>
> #define IBV_CMD_RESIZE_CQ_HAS_RESP_PARAMS
>
> and test that in libmthca and libehca.
>
> Personally I lean towards the second solution, although neither is
> very elegant.
>
>  - R.

A #define won't help the plug-in know what parameters to pass,
only a function name change will work if the semantics change.

I can add another version argument to ibv_driver_init() if you
agree.  It seems to me that we have already made incompatible
changes by moving to libibverbs.so.2.  Couldn't we include this
as part of the transition?
Otherwise, I would vote for ibv_cmd_resize_cq_resp().






More information about the general mailing list