From: Jack Morgenstein <jackm-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
To: "Hefty, Sean" <sean.hefty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Cc: Or Gerlitz <or.gerlitz-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
"linux-rdma
(linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org)"
<linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Subject: Re: [PATCH 1/2] libibverbs: Allow 3rd party extensions to verb routines
Date: Mon, 1 Aug 2011 15:08:06 +0300 [thread overview]
Message-ID: <201108011508.06521.jackm@dev.mellanox.co.il> (raw)
In-Reply-To: <1828884A29C6694DAF28B7E6B8A823730218F4-P5GAC/sN6hmkrb+BlOpmy7fspsVTdybXVpNB7YpNyf8@public.gmane.org>
On Thursday 16 June 2011 22:27, Hefty, Sean wrote:
> > Basically, I wasn't referring to such new verbs as vendor extensions,
> > but rather as new verbs we want to add at this and/or future points of
> > time which didn't exist at the time the IB stack and specifically its
> > kernel/user ABIs/APIs were written (couple of years ago...).
>
> To be clear, there are 2 sides to ibverbs - the app side, and the provider library.
>
> On the app side, new functionality would be added directly to libibverbs. I would reuse what's there if possible, and provide direct API calls where needed. For example, the xrc patch adds:
>
> ibv_create_xsrq()
> ibv_open_xrcd()
> ibv_close_xrcd()
>
> as new APIs. On the provider side, the necessary calls are obtained by ibverbs calling get_ext_ops().
>
> I haven't come up with another way of extended verbs that would be as easy for an application to use, given that most of the calls and data structures are reusable.
>
> - Sean
Hi Sean,
I'm not sure about what this mechanism saves us over bumping the ABI numbers.
Actually, I think I do see a problem here, under the following situation:
- All libraries (app, libibverbs, and libmlx4) support extensions.
- A new verb (say extension "ib_new_verb" was added as an extension to the app,
to libibverbs, and to libmlx4 and everything was compiled.
- The APP is built on the full configuration, but is run on a configuration
which has the verb extension added to libmlx4, but NOT to libibverbs
(new libibverbs was installed originally, so that libmlx4 would succeed in the install,
then somehow libibverbs was rolled back to before "ib_new_verb" was added).
When the APP tries to run, it calls:
ibv_get_device_ext_ops(struct ibv_device *device, "ib_new_verb");
This call will succeed (in the current implementation).
However, the verb helper function (ibv_cmd_<new_verb>) is not present
in libibverbs, so things will crash (if, indeed, libmlx4 can be loaded at all -
In fact, I'm not sure if it will fail loading because of unresolved references).
Indeed, I am not sure that the app can run at all due to unresolved references.
The problem here is that the new additions need support in libibverbs in order
to work (this is not simply a "pass-through" by libibverbs to the lower layer).
I may be wrong about all this -- userspace is not really my expertise.
If I am not wrong, what, then, is the advantage of this methodology over simply bumping the ABI numbers?
-Jack
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2011-08-01 12:08 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-06-15 16:54 [PATCH 1/2] libibverbs: Allow 3rd party extensions to verb routines Hefty, Sean
[not found] ` <1828884A29C6694DAF28B7E6B8A8237302123C-P5GAC/sN6hmkrb+BlOpmy7fspsVTdybXVpNB7YpNyf8@public.gmane.org>
2011-06-16 15:14 ` Or Gerlitz
[not found] ` <4DFA1DDD.5020508-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2011-06-16 15:39 ` Hefty, Sean
[not found] ` <1828884A29C6694DAF28B7E6B8A823730217E1-P5GAC/sN6hmkrb+BlOpmy7fspsVTdybXVpNB7YpNyf8@public.gmane.org>
2011-06-16 18:12 ` Or Gerlitz
[not found] ` <BANLkTimwTs4EK19PiTq6yMzPCQrLt0bALw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-06-16 19:27 ` Hefty, Sean
[not found] ` <1828884A29C6694DAF28B7E6B8A823730218F4-P5GAC/sN6hmkrb+BlOpmy7fspsVTdybXVpNB7YpNyf8@public.gmane.org>
2011-08-01 12:08 ` Jack Morgenstein [this message]
[not found] ` <201108011508.06521.jackm-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2011-08-01 19:11 ` Hefty, Sean
2011-08-02 5:38 ` Jason Gunthorpe
[not found] ` <20110802053824.GA23512-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2011-08-02 7:53 ` Jack Morgenstein
[not found] ` <201108021053.05311.jackm-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2011-08-02 16:28 ` Hefty, Sean
[not found] ` <1828884A29C6694DAF28B7E6B8A82373136F935C-P5GAC/sN6hmkrb+BlOpmy7fspsVTdybXVpNB7YpNyf8@public.gmane.org>
2011-12-29 15:43 ` Or Gerlitz
[not found] ` <4EFC8A85.4020803-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2011-12-31 11:01 ` Bart Van Assche
2012-01-01 5:13 ` Or Gerlitz
2012-01-02 17:34 ` Hefty, Sean
[not found] ` <1828884A29C6694DAF28B7E6B8A8237325662BCE-P5GAC/sN6hlcIJlls4ac1rfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2012-01-03 16:08 ` Or Gerlitz
[not found] ` <4F03280A.80305-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2012-01-03 16:40 ` Hefty, Sean
2011-08-02 16:56 ` Jason Gunthorpe
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=201108011508.06521.jackm@dev.mellanox.co.il \
--to=jackm-ldsdmyg8hgv8yrgs2mwiifqbs+8scbdb@public.gmane.org \
--cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=or.gerlitz-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=sean.hefty-ral2JQCrhuEAvxtiuMwx3w@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox