public inbox for linux-rdma@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH V1 rdma-core 0/7] Add mlx5 direct verbs
@ 2017-02-12 14:16 Yishai Hadas
       [not found] ` <1486909012-15064-1-git-send-email-yishaih-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
  0 siblings, 1 reply; 19+ messages in thread
From: Yishai Hadas @ 2017-02-12 14:16 UTC (permalink / raw)
  To: dledford-H+wXaHxf7aLQT0dZR+AlfA
  Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA, yishaih-VPRAkNaXOzVWk0Htik3J/w,
	leonro-VPRAkNaXOzVWk0Htik3J/w,
	jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/,
	majd-VPRAkNaXOzVWk0Htik3J/w

This patchset from Leon adds direct access to mlx5 devices.
Sending V1 to mainly handle Jason's comments, details below.

The libibverbs API is an abstract API. It is agnostic to any underlying
provider specific implementation. While this abstraction has the advantage of
user applications portability it has a performance penalty. For some
applications optimizing performance is more important than portability.

The mlx5 direct verbs API introduced in this patchset is intended for such
applications. It exposes mlx5 specific low level data path
(send/receive/completion) operations, allowing the application to bypass the
libibverbs data path API.

The proposed interface consists from one hardware specific header with relevant
inline functions and conversion logic from ibverbs structures to mlx5 related
structures.

New header is going to be installed in below path location:
/usr/inlcude/infiniband/mlx5dv.h

The direct include of mlx5dv.h together with linkage to mlx5 library will
allow usage of this new interface.

Note: all Mellanox NIC devices starting from Connect-IB (Connect-IB,
ConnectX-4, ConnectX-4Lx, ConnectX-5 and more to come in the future) implement
the mlx5 API, thus using the mlx5 direct verbs does not limit the applications
to a single NIC HW device thus keeping some level of portability.

Pull request was sent:
https://github.com/linux-rdma/rdma-core/pull/63

Yishai

Changes from V0:
     * Removed mlx5 and include sub-directories from installed
       path and source code.
     * Put all DV code into one header file.
     * Renamed mlx5/dv.h to be mlx5dv.h file.
     * Added providers/mlx5/libmlx5.map file with exported functions.
     * Allowed mlx5 provider to be shared library.
     * Added manual pages for direct verbs.
     * Rebased to latest rdma-core.
     * Create symlink for libmlx5-rdmav2.so to point to libmlx5.so.
     * Dropped patch which changed INLINE_SCATTER defines.
     * Replaced ntohll functions to be64toh, followup of
       https://github.com/linux-rdma/rdma-core/commit/b21ff60e0e111e295a18cc8e3397347893c524bc
     * Added Jason's SOB tag for his debian/redhat/Cmake work.

Leon Romanovsky (7):
  mlx5: Add mlx5 direct verbs
  mlx5: Add CQE fields
  mlx5: Add WQE segments implementation
  mlx5: Use macro for CQE version 1
  mlx5: Convert to use predefined get CQE opcodes
  mlx5: Add direct verbs man pages
  mlx5: Export mlx5 direct verbs interface

 CMakeLists.txt                           |   1 +
 buildlib/rdma_functions.cmake            |  51 +++
 buildlib/relpath                         |   7 +
 debian/ibverbs-providers.install         |   4 +
 debian/ibverbs-providers.symbols         |   4 +
 providers/mlx5/CMakeLists.txt            |   7 +-
 providers/mlx5/cq.c                      |  96 +----
 providers/mlx5/libmlx5.map               |   8 +
 providers/mlx5/man/CMakeLists.txt        |   5 +
 providers/mlx5/man/mlx5dv.7              |  44 +++
 providers/mlx5/man/mlx5dv_init_obj.3     | 129 +++++++
 providers/mlx5/man/mlx5dv_query_device.3 |  48 +++
 providers/mlx5/mlx5.c                    | 111 +++++-
 providers/mlx5/mlx5.h                    |  62 +---
 providers/mlx5/mlx5dv.h                  | 588 +++++++++++++++++++++++++++++++
 providers/mlx5/qp.c                      |   2 +-
 providers/mlx5/wqe.h                     |  97 +----
 redhat/rdma-core.spec                    |   3 +
 18 files changed, 1024 insertions(+), 243 deletions(-)
 create mode 100644 buildlib/relpath
 create mode 100644 debian/ibverbs-providers.symbols
 create mode 100644 providers/mlx5/libmlx5.map
 create mode 100644 providers/mlx5/man/CMakeLists.txt
 create mode 100644 providers/mlx5/man/mlx5dv.7
 create mode 100644 providers/mlx5/man/mlx5dv_init_obj.3
 create mode 100644 providers/mlx5/man/mlx5dv_query_device.3
 create mode 100644 providers/mlx5/mlx5dv.h

-- 
1.8.3.1

--
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

^ permalink raw reply	[flat|nested] 19+ messages in thread
* Re: [PATCH V1 rdma-core 7/7] mlx5: Export mlx5 direct verbs interface
@ 2017-02-15  7:55 Talat mellanox
  0 siblings, 0 replies; 19+ messages in thread
From: Talat mellanox @ 2017-02-15  7:55 UTC (permalink / raw)
  To: Jason Gunthorpe
  Cc: Leon Romanovsky, Yishai Hadas, dledford-H+wXaHxf7aLQT0dZR+AlfA,
	linux-rdma-u79uwXL29TY76Z2rM5mHXA, majd-VPRAkNaXOzVWk0Htik3J/w,
	Benjamin Drung

We will investigate it and take care to create a new package for the libmlx5-dev
 according debian policy, and sending it as a follow up patches.

On Tue, Feb 14, 2017 at 8:05 PM, Jason Gunthorpe
<jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org> wrote:
> On Tue, Feb 14, 2017 at 07:52:19AM +0200, Leon Romanovsky wrote:
>
>> Sorry, but I'm still missing how mlx5 installation will be handled.
>>
>> The ibverbs-provider installs different *-rdmav2.so files and it should
>> install libmlx5-rdmav2.so among them.
>
> No, the symlink from -rdmav2.so needs to go to a real file not another
> symlink.
>
>> If we move libmlx5.so to libibverbs-dev, how will symlink be
>> created?
>
> libmlx5.so is the 'devel' symlink, it is only used by the compiler
> during linking which is why it must be placed in the -dev package.
>
>> What will user see after installing libibverbs + ibverbs-provider?
>
> libmlx5-rdmav2.so should be ../libmlx5.so.1.0.13
>
>> And what will be in case of libibverbs-dev + ibverbs-provider?
>
> Then you get libmlx5.so -> libmlx5.so.1.0.13 and the man pages and
> header files. libibverbs-dev will need to depend on the
> ibverbs-provider package also.
>
> This is all also true for RPM systems.
>
> Jason
> --
> 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
--
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

^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2017-02-15  7:55 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-02-12 14:16 [PATCH V1 rdma-core 0/7] Add mlx5 direct verbs Yishai Hadas
     [not found] ` <1486909012-15064-1-git-send-email-yishaih-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2017-02-12 14:16   ` [PATCH V1 rdma-core 1/7] mlx5: " Yishai Hadas
2017-02-12 14:16   ` [PATCH V1 rdma-core 2/7] mlx5: Add CQE fields Yishai Hadas
2017-02-12 14:16   ` [PATCH V1 rdma-core 3/7] mlx5: Add WQE segments implementation Yishai Hadas
2017-02-12 14:16   ` [PATCH V1 rdma-core 4/7] mlx5: Use macro for CQE version 1 Yishai Hadas
2017-02-12 14:16   ` [PATCH V1 rdma-core 5/7] mlx5: Convert to use predefined get CQE opcodes Yishai Hadas
2017-02-12 14:16   ` [PATCH V1 rdma-core 6/7] mlx5: Add direct verbs man pages Yishai Hadas
     [not found]     ` <1486909012-15064-7-git-send-email-yishaih-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2017-02-13 16:54       ` Jason Gunthorpe
     [not found]         ` <20170213165445.GC25430-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2017-02-13 18:13           ` Leon Romanovsky
     [not found]             ` <20170213181338.GB6989-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2017-02-13 18:45               ` Jason Gunthorpe
     [not found]                 ` <20170213184551.GB12224-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2017-02-13 21:52                   ` Yishai Hadas
     [not found]                     ` <156c0448-5e9b-9879-1d6b-06cbaec3ce6b-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2017-02-13 21:59                       ` Jason Gunthorpe
2017-02-12 14:16   ` [PATCH V1 rdma-core 7/7] mlx5: Export mlx5 direct verbs interface Yishai Hadas
     [not found]     ` <1486909012-15064-8-git-send-email-yishaih-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2017-02-13 16:49       ` Jason Gunthorpe
     [not found]         ` <20170213164944.GB25430-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2017-02-13 18:21           ` Leon Romanovsky
     [not found]             ` <20170213182121.GD6989-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2017-02-13 18:42               ` Jason Gunthorpe
     [not found]                 ` <20170213184250.GA12224-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2017-02-14  5:52                   ` Leon Romanovsky
     [not found]                     ` <20170214055219.GE6989-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2017-02-14 18:05                       ` Jason Gunthorpe
  -- strict thread matches above, loose matches on Subject: below --
2017-02-15  7:55 Talat mellanox

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox