From: Doug Ledford <dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: Haggai Eran <haggaie-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Eli Cohen <eli-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>,
Matan Barak <matanb-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>,
Yevgeny Petrilin
<yevgenyp-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>,
Eran Ben Elisha <eranbe-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>,
Moshe Lazer <moshel-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>,
"Gunthorpe,
Jason"
<jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
Subject: Re: [PATCH v1 0/3] libibverbs: On-demand paging support
Date: Fri, 4 Sep 2015 16:23:05 -0400 [thread overview]
Message-ID: <55E9FDA9.3090709@redhat.com> (raw)
In-Reply-To: <1441292199-8371-1-git-send-email-haggaie-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
[-- Attachment #1: Type: text/plain, Size: 4119 bytes --]
On 09/03/2015 10:56 AM, Haggai Eran wrote:
> This series adds userspace support for on-demand paging. The first patch adds
> support for the new extended query device verb. Patch 2 adds the capability and
> interface bits related to on-demand paging, and patch 3 adds example code to
> the rc_pingpong program to use on-demand paging.
I've reviewed this series and I'm OK with it. However, it's currently
blocked. We need to fix the API mess that was created when the
create/destroy flow verbs were added. I've gone back through the code,
and I'm pretty sure I know what Jason's objection to the create/destroy
flow implementation was. In particular, we weren't supposed to have this:
struct verbs_context {
/* "grows up" - new fields go here */
+ int (*drv_ibv_destroy_flow) (struct ibv_flow *flow);
+ int (*lib_ibv_destroy_flow) (struct ibv_flow *flow);
+ struct ibv_flow * (*drv_ibv_create_flow) (struct ibv_qp *qp,
+ struct ibv_flow_attr
+ *flow_attr);
+ struct ibv_flow * (*lib_ibv_create_flow) (struct ibv_qp *qp,
+ struct ibv_flow_attr
+ *flow_attr);
There was only supposed to be ibv_create_flow and ibv_destroy_flow, not
this silly separate drv/lib versions that just amount to wasted space
and confusion.
Our choices are: 1) Leave this in place but don't do any more extensions
this way, knowing full well that this is wrong but preserving ABI or 2)
Clean this up, but break ABI. Just to be clear, neither solution breaks
user space app ABI, just the libibverbs/libmlx4 ABI. Option 2 does not
require any apps be recompile, only that libibverbs and libmlx4 *must*
be upgraded together or downgraded together around the ABI break. For
future versions beyond that, we don't have to have this requirement.
What are other people's thoughts on this? I'm of a mind to clean it up,
but it's been since May 5th of last year that this went out. Certainly
the largest portion of users are likely running this code. It will mean
that their next upgrade is required to be a joint upgrade between this
and libmlx4.
> Changes from v1:
> - Patch 1:
> * move code to revert to legacy ibv_query_device when ibv_query_device_ex
> is missing to the inline function.
> * add an input parameter to the ibv_query_device_ex verb for future
> extension.
> * add the size of the ibv_device_attr_ex struct as a parameter to the
> ibv_query_device_ex verb, to allow the verb to handle older
> applications.
> * check the validity of the input parameter and output struct size.
> * remove reserved words from ibv_query_device_resp_ex, and remove unused
> ibv_device_attr_ex_resp struct.
> - Patch 2:
> * let print_odp_caps() receive a const pointer instead of a by-value
> struct.
> * check that the application has enough space for ODP capabilities in the
> provided ibv_device_attr_ex struct.
>
> Eli Cohen (1):
> Add support for extended query device capabilities
>
> Haggai Eran (1):
> Add on-demand paging support
>
> Majd Dibbiny (1):
> libibverbs/examples: Support odp in rc_pingpong
>
> Makefile.am | 3 +-
> examples/devinfo.c | 145 +++++++++++++++++++++++++++--------------
> examples/rc_pingpong.c | 31 ++++++++-
> include/infiniband/driver.h | 10 +++
> include/infiniband/kern-abi.h | 36 ++++++++++-
> include/infiniband/verbs.h | 68 ++++++++++++++++++-
> man/ibv_query_device_ex.3 | 70 ++++++++++++++++++++
> man/ibv_reg_mr.3 | 2 +
> src/cmd.c | 147 ++++++++++++++++++++++++++++++------------
> src/libibverbs.map | 2 +
> 10 files changed, 420 insertions(+), 94 deletions(-)
> create mode 100644 man/ibv_query_device_ex.3
>
--
Doug Ledford <dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
GPG KeyID: 0E572FDD
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 884 bytes --]
next prev parent reply other threads:[~2015-09-04 20:23 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-03 14:56 [PATCH v1 0/3] libibverbs: On-demand paging support Haggai Eran
[not found] ` <1441292199-8371-1-git-send-email-haggaie-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2015-09-03 14:56 ` [PATCH v1 1/3] Add support for extended query device capabilities Haggai Eran
2015-09-03 14:56 ` [PATCH v1 2/3] Add on-demand paging support Haggai Eran
2015-09-03 14:56 ` [PATCH v1 3/3] libibverbs/examples: Support odp in rc_pingpong Haggai Eran
2015-09-04 20:23 ` Doug Ledford [this message]
[not found] ` <55E9FDA9.3090709-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2015-09-04 20:42 ` [PATCH v1 0/3] libibverbs: On-demand paging support Jason Gunthorpe
[not found] ` <20150904204244.GA20758-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2015-09-04 21:18 ` Doug Ledford
2015-09-04 23:43 ` Doug Ledford
[not found] ` <55EA2CA7.8000702-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2015-09-05 20:27 ` Or Gerlitz
[not found] ` <CAJ3xEMiyZSu4DuNhHtcwJRwTnDXS4+Dw+SXYw=LhhphUMA__Ew-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-09-06 1:09 ` Doug Ledford
2015-09-10 15:17 ` Or Gerlitz
[not found] ` <55F19F09.7000407-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2015-09-10 16:53 ` Doug Ledford
[not found] ` <55F1B571.7020808-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2015-09-11 7:14 ` Or Gerlitz
[not found] ` <55F27F51.6010406-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2015-09-11 14:28 ` Doug Ledford
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=55E9FDA9.3090709@redhat.com \
--to=dledford-h+wxahxf7alqt0dzr+alfa@public.gmane.org \
--cc=eli-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org \
--cc=eranbe-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org \
--cc=haggaie-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org \
--cc=jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org \
--cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=matanb-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org \
--cc=moshel-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org \
--cc=yevgenyp-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.